subpool
Allows delegating coding tasks to multiple Codex (ChatGPT) accounts, managing usage quotas, cooldowns, and automatic failover across accounts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@subpooldelegate implement the login form in /Users/me/app and wait"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
subpool
Várias assinaturas de IA, um pool só. O Codex e o Claude Code delegam tarefas para a conta que ainda tem cota.
nasmac.app · English · npm
Grátis, sem conta, sem servidor. Um MCP server e uma CLI que guardam um pool de assinaturas — Claude Code (via claude) e ChatGPT (via codex) — e mandam cada tarefa de código para a conta menos usada. Bateu no limite, a conta entra em cooldown e a tarefa segue na próxima.
codex ──▶ subpool (MCP) ──▶ claude -p perfil claude-work
├─▶ claude -p perfil claude-personal
├─▶ codex exec perfil codex-team
└─▶ codex exec perfil codex-altCada conta vive num diretório de perfil isolado e roda pelo CLI oficial do fornecedor. O subpool não fala com a API da Anthropic nem da OpenAI, não lê o cofre de credenciais de ninguém e não copia nada de ~/.claude ou ~/.codex.
Por que existe
Uma assinatura acaba no meio da tarefa. Duas assinaturas viram troca manual de conta, CLAUDE_CONFIG_DIR na mão e a pergunta "qual ainda tem cota?". Eu queria abrir o Codex, pedir a tarefa e deixar a escolha da conta com quem sabe o número: um roteador que conta tokens por janela de 5 horas e 7 dias, igual aos limites dos dois serviços.
Related MCP server: Claude Code Orchestrator MCP
Instalar
npm i -g subpoolNode 20+ e o claude e/ou o codex no PATH. macOS, Linux e WSL.
Vincular contas
subpool link claude work # abre o login do Claude no navegador
subpool link claude personal
subpool link codex team # abre o login do ChatGPT para o Codex
subpool link codex alt --device-auth
subpool lsCada link cria ~/.subpool/profiles/<provider>-<id> e roda o login oficial ali dentro (claude auth login ou codex login). O login que você já tem em ~/.claude e ~/.codex continua intacto.
Máquina sem navegador, ou Keychain do macOS atrapalhando: gere um token de longa duração com claude setup-token em qualquer lugar e cole com
subpool link claude ci --token # pede o token, grava em profiles/claude-ci/token com modo 0600subpool check mostra quem está logado. subpool unlink <id> remove a conta e o perfil.
Registrar no Codex e no Claude Code
subpool install codex # grava [mcp_servers.subpool] em ~/.codex/config.toml
subpool install claude # roda `claude mcp add subpool --scope user -- …`Dentro do Codex ou do Claude Code, é uma tool:
Use
delegatepara implementar o formulário de login em/Users/eu/appe aguarde o resultado.
O delegate escolhe a conta, roda a tarefa naquele CLI dentro do diretório informado, registra os tokens e devolve a mensagem final do worker. O worker começa sem memória: a tarefa precisa ser autocontida.
Tools MCP
Tool | O que faz |
| Roda uma tarefa de código na melhor conta. |
| Acompanham tarefas longas. Se o |
| Tokens por conta nas janelas de 5h e 7d, utilização, cooldown, totais por fornecedor. |
| Liga/desliga conta, peso, orçamento, modelo; estratégia de roteamento. |
| Os comandos exatos para vincular outra conta. |
Resources: subpool://accounts e subpool://usage.
Distribuição de tokens
subpool strategy least-used # padrão: menor utilização primeiro
subpool strategy weighted # tokens das últimas 5h / peso
subpool strategy round-robin
subpool strategy priority # ordem do config, próxima conta ao bater limite
subpool set work --tokens-5h 400000 --tokens-7d 2500000
subpool set alt --weight 2
subpool set personal --disable
subpool set personal --clear-cooldownUtilização é usado / orçamento nas janelas que têm orçamento, ou tokens das últimas 5h / peso quando não tem. Empate vai para a conta usada há mais tempo.
Quando o CLI reporta limite de uso, a conta entra em cooldown até o horário de reset que ele imprimiu (ou 30 minutos, sem horário) e a tarefa é refeita na próxima conta elegível, até maxAttempts (3). Erro de login vale 6 horas de cooldown; sobrecarga do serviço, 2 minutos. Falha comum da tarefa não faz failover: o erro volta para quem pediu.
Permissões
| claude | codex |
|
|
|
|
|
|
|
|
|
CLI
subpool serve servidor MCP em stdio
subpool link <claude|codex> <id> [--token] [--device-auth] [--weight N] [--tokens-5h N] [--tokens-7d N] [--model M]
subpool unlink <id> [--keep-profile]
subpool ls [--json]
subpool usage [--json]
subpool check [id]
subpool set <id> [--enable|--disable] [--weight N] [--tokens-5h N] [--tokens-7d N] [--model M] [--clear-cooldown]
subpool strategy [name]
subpool run <task...> [-C dir] [--provider p] [--account id] [--permission p] [--model m] [--timeout s] [--json]
subpool jobs [--json]
subpool install <codex|claude> [--scope user|local|project] [--tool-timeout s]
subpool uninstall <codex|claude>
subpool doctorsubpool run "escreva testes para src/router.ts" -C ~/app roteia direto do terminal, sem cliente MCP. subpool doctor confere binários, pasta, config e o login de cada conta.
Privacidade
Não existe servidor. Nada seu sai da máquina além do que os próprios CLIs já mandam para a Anthropic e a OpenAI.
Credencial é dos CLIs. O login acontece no
claudee nocodex, dentro do perfil da conta. O subpool só guarda o token de longa duração se você escolher--token, e aí em arquivo com modo 0600.O que ele grava:
usage.jsonlcom tokens, custo e resultado de cada execução;state.jsoncom cooldowns;jobs/*.jsoncom o texto da tarefa e a resposta do worker, para ojobse ojob_result. Nenhum deles tem token de acesso.Ambiente limpo. Antes de rodar um worker,
ANTHROPIC_API_KEY,OPENAI_API_KEY,CLAUDE_CODE_OAUTH_TOKENe afins são removidos do ambiente, para que a conta do perfil seja a usada e nenhuma conta veja a credencial da outra.
Vincule apenas contas suas ou autorizadas e siga os termos de cada fornecedor.
Arquivos
~/.subpool/config.json contas, estratégia, padrões
~/.subpool/usage.jsonl uma linha por execução, compactado para 8 dias a cada serve
~/.subpool/state.json cooldowns, cursor do round-robin, último uso
~/.subpool/jobs/<id>.json snapshot de cada job
~/.subpool/profiles/<p>-<id> CLAUDE_CONFIG_DIR ou CODEX_HOME daquela contaSUBPOOL_HOME muda a pasta. SUBPOOL_CLAUDE_BIN e SUBPOOL_CODEX_BIN apontam para outros binários.
Detalhes que evitam susto
Chamada de tool no Codex expira em
tool_timeout_sec; osubpool install codexgrava 3600. No Claude Code o limite éMCP_TOOL_TIMEOUT(ms) no ambiente do próprioclaude.Tarefa longa:
delegatecomwait: falsee depoisjob_wait. O worker não é morto quando a espera acaba, só quandotimeout_secacaba.Vários servidores ao mesmo tempo (um por sessão do Codex) compartilham o mesmo ledger e os mesmos cooldowns, com lock de arquivo.
Os dois fornecedores mudam mensagem de limite sem avisar. Se uma conta ficou em cooldown sem motivo,
subpool set <id> --clear-cooldowne uma issue com a mensagem ajudam.
Compilar do código
git clone https://github.com/vprotti/subpool.git
cd subpool
npm install
npm run build
npm testOs testes não chamam o claude nem o codex reais: usam fixtures dos formatos de saída e binários falsos. docs/ARCHITECTURE.md descreve cada módulo e os fatos verificados sobre os dois CLIs.
Estrutura
src/server.ts MCP server: tools e resources
src/cli.ts comandos
src/core/router.ts escolha da conta e failover
src/core/ledger.ts ledger de uso, janelas 5h/7d, cooldowns
src/core/limits.ts detecção de limite e horário de reset
src/providers/claude.ts adapter do claude -p (stream-json)
src/providers/codex.ts adapter do codex exec --json
src/install/ registro no config.toml do Codex e no Claude CodeDependências: @modelcontextprotocol/sdk, zod, commander.
Contribuir
Bug, ideia ou dúvida: abra uma issue. Pull requests são bem-vindos — leia o CONTRIBUTING antes.
Se o subpool te poupou uma troca de conta, uma ⭐ no repositório ajuda outras pessoas a encontrarem o projeto.
Licença
MIT. Use, modifique e redistribua à vontade, inclusive comercialmente.
Não tem relação com a Anthropic nem com a OpenAI. Os nomes e marcas são de cada empresa.
This server cannot be deployed
Maintenance
Related MCP Connectors
- AxisOAuthdev.useaxis
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
Build and supervise fleets of agents from Claude Code, Codex or Cursor. Connects over OAuth.
AI routing, memory, guardrails, and governance. Routes across Claude, GPT, Gemini.
One identity across Claude Code, Codex, Cursor, Gemini, Windsurf: shared inbox and handoffs.
Related MCP Servers
- AlicenseCqualityAmaintenanceRoutes coding tasks across multiple AI CLIs (Copilot, Claude Code, Gemini, etc.) with cost-aware tier routing and parallel wave orchestration.552Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables Codex to orchestrate multi-agent coding by routing tasks to local Claude Code workers via CCSwitch, managing cost and model selection for planning, execution, and review.7MIT
- AlicenseNot gradedqualityAmaintenanceMCP control plane for Claude Code, Codex, Cursor, and OpenCode. Supports opt-in quota-aware rotation across multiple native Claude Code or Codex subscription accounts of the same harness, with isolated credentials, separate quotas, and bounded task handoffs.490MIT
- AlicenseNot gradedqualityBmaintenanceCoordinates parallel Claude Code agents on shared repositories and orchestrates multiple Claude subscriptions, enabling live session handoff, conflict detection, and remote terminal control.9 npmMIT