REA
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Descripción del creador (original en inglés)
Hands work to another coding agent over ACP: Claude Code, Codex, OpenCode, Gemini CLI and others
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"throng": {
"command": "npx",
"args": [
"-y",
"throng-mcp"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add throng -- npx -y throng-mcpPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"throng": {
"command": "npx",
"args": [
"-y",
"throng-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"throng": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"throng-mcp"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 10 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub agent-runbooks, dueña del repo
Último cambio de código: anteayer
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 2 de 2 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez anteayer, y la última versión (0.9.1) llegó al registro anteayer.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: REA, Netdata, Front-End Checklist
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
Review frontend code and live pages against 386 quality-gated web development rules.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
An MCP server that lets your agent hand work to another one. Any MCP client can call it, and the task goes to any supported harness.
Supported harnesses: Claude Code, Codex, OpenCode (and every model it can reach), Gemini CLI, Cursor CLI, GitHub Copilot CLI. Setup for each is under Install.
Any other ACP agent can be described in the config as a custom harness: its command, and the mode or options that make it auto-approve or ask. throng installs nothing for it and guesses nothing; see Custom harnesses.
You're in Claude Code and have just changed the payment flow.
Ask Codex to find a way this payment flow could charge someone twice. Don't change any files.
Claude calls run_thronglet with agent: "codex/gpt-6-sol:high", a self-contained prompt, the repository path and a schema, so the findings come back as data: file, line, steps to reproduce.
Give the findings to Opus. Have it fix each one, add a test for it and run the tests.
A second run_thronglet, with agent: "claude/opus". Codex's findings go into its prompt; Opus edits the code and runs the tests.
Now show the same Codex session what changed. Can it still make a customer pay twice?
That is send_message into the first session: Codex still has its findings in context and checks the fixes against them instead of starting over.
Any of these calls takes background: true: it returns at once and wait_thronglet collects the result later, which is how several agents work while you carry on.
Three parts, in order: the server, the agents it may run, and the client it is called from. The skill at the end is optional.
Claude Code: the plugin, server and skill in one go
The plugin covers parts 1, 3 and 4; the agents from part 2 you still install yourself.
claude plugin marketplace add agent-runbooks/throng-mcp
claude plugin install throng@throng-mcp
The npm package throng-mcp. Needs node ^22.13 || >=24. Tested with node 24.11.1, claude 2.1.282, codex 0.156.1, opencode 1.18.30.
Two ways to run it:
npx -y throng-mcp straight in the client config, below. Nothing to install: npx fetches the package on the first start and caches it. The package has no dependencies, so that is one tarball and nothing else.throng-mcp. Starts faster than going through npx. npm i -g throng-mcp
Each agent needs its own CLI installed and logged in. throng talks to agents over ACP (Agent Client Protocol); Claude Code and Codex need an ACP adapter, and throng ships none. Install only the agents you want to delegate to.
Claude Code
npm i -g @agentclientprotocol/claude-agent-acp
claude auth status
throng passes the path of the claude it finds on PATH to the adapter (CLAUDE_CODE_EXECUTABLE), so the nested agent runs your installed, logged-in CLI. If claude auth status says not logged in, put CLAUDE_CODE_OAUTH_TOKEN into the config, see docs/configuration.md.
Codex
npm i -g @agentclientprotocol/codex-acp
codex login
The adapter gets the path of your codex the same way (CODEX_PATH).
OpenCode
OpenCode speaks ACP itself (opencode acp), so there is no adapter. Install it per https://opencode.ai/docs, then:
opencode auth login
Custom providers live in your ~/.config/opencode/opencode.json; throng doesn't touch it.
Gemini CLI
Gemini CLI speaks ACP itself (gemini --acp), so there is no adapter.
npm i -g @google/gemini-cli
gemini
Gemini CLI needs a Gemini API key (Google AI Studio) or Vertex: run gemini once, choose "Use Gemini API Key" and paste the key, or set GEMINI_API_KEY. The nested agent uses that key. Signing in with a personal Google account no longer works for Gemini CLI. Its limits under throng: docs/harnesses.md.
Cursor CLI
Cursor CLI speaks ACP itself (cursor-agent acp), so there is no adapter.
curl https://cursor.com/install -fsS | bash
agent login
throng finds cursor-agent on PATH and authenticates with the login agent login saved; without that login every run fails with harness_unavailable and Cursor's message asking to run agent login. Its limits under throng: docs/harnesses.md.
GitHub Copilot CLI
Copilot CLI speaks ACP itself (copilot --acp), so there is no adapter.
npm i -g @github/copilot
copilot login
throng finds copilot on PATH; the nested agent uses the login copilot login saved, or the GitHub CLI's. With a login from the GitHub CLI only, Copilot offers no model choice and every run fails with model_rejected; run copilot login. Its limits under throng: docs/harnesses.md.
The client is the session that calls throng. It may be the same program as one of the agents above, or a different one. The server speaks stdio and the command is npx -y throng-mcp, or throng-mcp after a global install.
Claude Code
claude mcp add --scope user throng -- npx -y throng-mcp
--scope user registers it for every project; without it, for the current project only. claude mcp list shows the result.
Codex
codex mcp add throng -- npx -y throng-mcp
OpenCode
In ~/.config/opencode/opencode.json:
{
"mcp": { "throng": { "type": "local", "command": ["npx", "-y", "throng-mcp"], "enabled": true } } }
Any other MCP client: register a stdio server with that command.
skills/throng tells the calling agent how to use the server: when to delegate, how to write the prompt, background runs, follow-ups, structured output, what a refused permission means. It is a file for the agent and does not install the server.
skills CLI: Claude Code, Codex, opencode and others
npx skills add agent-runbooks/throng-mcp --skill throng -g -a claude-code -y
-g installs into the agent's user directory, for every project; without it, into the current project. -a codex or -a opencode for the other agents. npx skills update pulls later changes.
By hand
Copy skills/throng into your agent's skills directory: ~/.claude/skills, ~/.codex/skills, ~/.config/opencode/skills. A global install also leaves it under the installed package, $(npm root -g)/throng-mcp/skills/throng.
Agents pick skills up at session start, so open a new session after installing.
In a new session, ask the agent to call list_harnesses. It starts each installed adapter without a prompt (seconds, no tokens) and lists the installed harnesses with their models and effort levels; unavailable holds the ones that are configured or installed but broken, with the reason. A built-in harness you haven't installed is not listed, and run_thronglet on it says what to install. If a run then fails during the handshake, the usual cause is auth: claude auth status, codex login, opencode auth login, gemini (set the API key once), agent login (Cursor), copilot login (Copilot). More in troubleshooting.
Before the first run, two things to know. The agent edits the directory you name, with your user's rights; throng adds no isolation and rolls nothing back. Give it only trees you would let an agent edit unattended, and give parallel writers a worktree each.
agent names harness, model and effort in one string, / [: ]:
claude/opus:max
codex/gpt-6-sol:xhigh opencode/openrouter/z-ai/glm-5.3-flash gemini/gemini-2.5-pro cursor/gpt-5.4-nano copilot/auto
The model is one of the harness's own values; list_harnesses has the current list. Effort is low | medium | high | xhigh | max; omitted means the harness default.
A call:
{
"agent": "codex/gpt-6-sol:high", "prompt": "In this repository, add a --verbose flag to the CLI in src/cli.ts and a test for it. Run pnpm test. Leave the changes uncommitted and end with the list of files you changed.", "cwd": "/work/my-app", "description": "add --verbose flag" }
The prompt is self-contained: the nested session sees nothing of the calling conversation. The call returns the agent's final message, a session_id for follow-ups, and why the turn stopped.
| tool | what it does |
|---|---|
run_thronglet | starts a session and runs the first turn |
send_message | runs the next turn in an existing session; steer: true interrupts the running turn instead of waiting for it |
wait_thronglet | collects the result of a turn started with background: true |
list_thronglets | the sessions and what each is doing |
cancel_thronglet | stops a session's running turn |
list_harnesses | the installed harnesses, their models and effort levels |
background: true on run_thronglet or send_message returns as soon as the turn is running; wait_thronglet collects the result later, which is how several agents run at once. schema asks for structured output: the agent ends with a JSON value matching the JSON Schema, and the result comes back as structured instead of text.
A failure is an MCP tool error with code, message and, when the session exists, session_id and the partial text. Every field, error code and stop reason of every tool is in DESIGN §3.
What a nested agent may do comes from the config file, never from a tool parameter, so the calling model cannot grant itself more than you allowed. Optional ~/.config/throng/config.yaml:
harness_mode: auto # auto | ask
permission_answers: deny # auto | allow | deny | elicit
harness_mode is the mode the harness runs in: auto (the default) is its own auto-approve mode (Claude auto, Codex agent, OpenCode as configured, Gemini yolo, Cursor --force, Copilot allow_all), ask its asking mode.permission_answers is how throng answers what the harness still asks: deny (the default) refuses, allow allows once, elicit shows you a dialog in the MCP client (needs elicitation support; Claude Code has it), auto shows the dialog when the client can and refuses otherwise.-