0.8.0 • Published 5d agoCLI
@justmpm/term-manager
Licence
MIT
Version
0.8.0
Deps
4
Size
480 kB
Vulns
0
Weekly
958
@justmpm/term-manager
MCP Server para terminais Windows sem timeout. Permite que agentes de IA executem scripts predefinidos (run_{script}) em terminais persistentes — comandos longos continuam rodando mesmo enquanto a IA faz outras tarefas.
Novidades da v0.8.0
- Tools
run_codexeask_codexremovidas. A funcionalidade de delegação a coding agents (Codex CLI em modo headless) migrou completamente para@justmpm/agent-runner(que é auto-suficiente desde a sua v0.2.0). Para delegar ao Codex CLI, useagent-runner.run_agent({ provider: "codex", agent: "...", prompt: "...", cwd: "...", owner: "..." }). Veja a tabela de migração noAGENTS.md§11.6. - API mais enxuta. Total de tools cai de 11 → 9:
run_{script}(N ferramentas dinâmicas),list_scripts,stop_terminal,wait_for_completion,list_terminals,close_terminal,read_output,search_output. - Código morto removido. Campo
visible?: boolean(era específico para terminais codex) e parâmetrovisibleemmanager.create()foram removidos. A assinatura volta a 4 args:create(command, cwd, name?, owner?). - BREAKING para quem usava
run_codex/ask_codex. Clientes MCP que ainda chamam essas tools vão receber erro "tool not found". Migre para@justmpm/agent-runner.
Arquitetura
- node-pty (ConPTY) — Gerencia os processos reais, capturando output e enviando input
- Spawn via
pwsh -Command/bash -c— Shell executa o comando direto e morre quando ele termina (status confiável, exit code propagado) - Buffer de 2000 linhas por terminal, texto limpo sem códigos ANSI
Tools
| Tool | Descrição |
|---|---|
run_{script} |
Executa script do package.json num terminal persistente |
list_scripts |
Lista scripts disponíveis para execução |
wait_for_completion |
Aguarda término do comando (com timeout, até 15min) — ideal para lint/test/build |
stop_terminal |
Envia Ctrl+C para parar gracefully |
list_terminals |
Lista terminais criados (filtrável por owner e status) |
close_terminal |
Finaliza um terminal e libera recursos |
read_output |
Lê as últimas N linhas do output (inclui status + exit code) |
search_output |
Busca texto no output (substring, case-insensitive, classificado como [ERRO]/[WARN]/[INFO]) |
Isolamento entre agents (owner)
Todas as tools que criam/manipulam terminais aceitam um parâmetro opcional owner. Quando informado, marca a sessão como pertencente àquele agent e as demais tools filtram/validam por owner.
// Criar terminal como "nexus"
{ "pm": "npm", "owner": "nexus" }
// Listar apenas os meus terminais
{ "owner": "nexus" }Isolamento soft — evita acidentes (agent A fecha terminal do B por engano). Para isolamento real, cada agent deve ter seu próprio processo MCP.
Quando usar qual pacote
| Caso | Pacote | Tool |
|---|---|---|
Rodar npm run build, vitest, tsc --noEmit, dev server, lint |
@justmpm/term-manager |
run_{script} |
| Delegar tarefa de IA (auditoria, fix, brainstorming) ao Codex CLI | @justmpm/agent-runner |
run_agent, ask_agent |
| Delegar a outros providers (Antigravity, futuros) | @justmpm/agent-runner |
mesma API, provider: "antigravity" |
Instalação
npx (sem instalar)
{
"mcpServers": {
"term-manager": {
"command": "npx",
"args": ["-y", "@justmpm/term-manager"]
}
}
}Desenvolvimento local
cd mcps-ai/term-manager
npm install && npm run build{
"mcpServers": {
"term-manager": {
"command": "node",
"args": ["D:/Pictures/Pacotes-Pessoais/mcps-ai/term-manager/dist/index.js"]
}
}
}Requisitos
- Node.js >= 18
- Windows 10 1809+ (para ConPTY)
Stack
| Dependência | Versão | Uso |
|---|---|---|
| TypeScript | ^5.9.3 | Linguagem principal (strict mode) |
| node-pty | ^1.0.0 | Gerenciamento de terminais (ConPTY) |
| @modelcontextprotocol/sdk | ^1.26.0 | MCP server e transporte stdio |
| zod | ^3.24.0 | Validação de schemas de input |
Licença
MIT Koda AI Studio