Como rodar o Cursor Agent no terminal do Mac com vários painéis

Você pode abrir o Cursor Agent no terminal com o template Cursor Agent do MXterm Pro no Mac: ele digita cursor-agent, a CLI de agente do Cursor, em um painel de terminal de verdade (um PTY). O comando cursor é o launcher do editor e abre a janela do Cursor. Existe também uma build para Windows x64. O MXterm acrescenta detecção de status em tempo real a cada 300 milissegundos, além de isolamento opcional com git worktree.
O que é e para quem serve
O MXterm Pro não intercepta o que o cursor-agent faz. É um app desktop de vários terminais e vários agentes (feito com Tauri 2 e Rust, não com Electron) que digita cursor-agent em um painel de terminal de verdade pelo template Cursor Agent.
Por cima disso, ele acrescenta duas coisas que um terminal comum não tem. Uma é um indicador de status que mostra num relance se o agente precisa de você. A outra é o isolamento opcional com git worktree, para quando mais de um agente mexe no mesmo repositório.
Isso é para quem já usa o agente do Cursor pela linha de comando e quer deixá-lo ao lado de um segundo terminal, ou de um segundo e um terceiro agente. Claude Code, Codex, Gemini CLI, OpenCode e outros funcionam no mesmo espaço de trabalho, cada um em uma parte do mesmo código. Você não precisa vigiar várias janelas do sistema para ver quem travou.
Como configurar um painel do Cursor Agent
Para abrir um painel do Cursor Agent você precisa de uma coisa: um executável cursor-agent no seu PATH ou em pastas bin comuns, como /opt/homebrew/bin e ~/.local/bin. Essa é a CLI do agente; cursor é o launcher do editor e abre a janela do Cursor. Se o MXterm não encontrar o cursor-agent, a linha Cursor Agent na tela de configuração (o MXterm chama essa tela de Composer) mostra "Não instalado" no lugar do seletor de quantidade.
1. Na primeira abertura, ou quando nenhuma aba salva volta, o MXterm Pro abre no Composer; nos outros casos, aperte ⌘T para abrir um novo.
2. Escolha a pasta do projeto. Ela vira o diretório de trabalho de todos os painéis que você criar.
3. Use o seletor abaixo de "Cursor Agent" para atribuir um ou mais painéis a ele. Deixe os outros como shells comuns, ou divida entre Claude Code, Codex e as outras CLIs de agente que o MXterm detecta.
4. Se você roda mais de um agente, ative "Isolar funcionalidades em git worktrees" (explicado abaixo).
5. Aperte ⌘/Ctrl+Enter. O MXterm então digita cursor-agent no shell desse painel.
A detecção de agentes roda de novo toda vez que você reabre o Composer. Se você instalar a CLI com o MXterm aberto, feche e reabra o Composer. Não precisa reiniciar o app.
Suas abas e o layout dos painéis são salvos e restaurados ao reabrir, mas os processos dentro deles não são retomados. Cada painel ganha um terminal novo no seu diretório. Um painel do Cursor Agent restaurado executa cursor-agent de novo, do zero, sem retomada e sem o briefing que recebeu no início.
Detecção de status em tempo real: como o MXterm sabe o que o Cursor está fazendo
Isso não é uma integração com a API do Cursor: o MXterm nunca fala com o backend do Cursor para isso. Ele procura padrões no texto que já está sendo exibido no painel. Um ciclo de leitura da tela roda a cada 300 milissegundos, mais ou menos, e pula a leitura enquanto o painel está parado e nada novo foi impresso.
Três regras definem o estado. Uma linha que bate com permission, allow…? ou do you want to conta como bloqueado. Uma linha com thinking…, generating…, working… ou analyzing conta como trabalhando. Uma linha terminada em cursor> conta como ocioso, e uma tela que não bate com nada também cai em ocioso.
O próprio código-fonte do MXterm diz que esses padrões do Cursor foram escritos à mão e não foram verificados contra uma sessão real do Cursor. Trate a bolinha como uma dica.
Logo depois que um painel é criado, o estado fica desconhecido por cerca de três segundos, enquanto a tela de inicialização é ignorada. Se o processo do terminal do painel terminar, o estado continua desconhecido: o painel mostra só a bolinha de atividade comum (e só enquanto imprime) até ser recriado. Uma recriação começa um novo período de espera de três segundos.
O mesmo motor de regras roda para Claude Code, Codex, Gemini, OpenCode e as outras CLIs de agente que o MXterm aceita. Por isso, o cabeçalho de um painel do Cursor usa as mesmas cores de bolinha que qualquer um deles: vermelho para bloqueado, amarelo para trabalhando, verde para concluído e a bolinha de atividade comum quando o estado é desconhecido.
Abas inativas na barra de abas mostram até duas marcas: uma marca de ocupado enquanto um agente trabalha e uma bolinha vermelha (bloqueado) ou verde (concluído). A barra lateral lista os terminais da aba ativa, cada um com a sua bolinha.
Um painel em segundo plano também toca um aviso cerca de um segundo e meio depois de bloquear ou terminar. Em Configurações → Notificações você pode desligar os alertas só do Cursor (som e banner) sem mexer nos do Claude Code nem nos do Codex.
Retomar uma sessão do Cursor: o que é automático e o que você faz
A descoberta automática cobre sessões do Claude Code, do Codex e do Gemini/OpenCode, mas não do Cursor. O Composer do MXterm tem uma lista Retomar sessões que lê o histórico em disco de cada CLI e reabre uma conversa antiga como um painel novo com um clique. O armazenamento de sessões do próprio Cursor ainda não é varrido, então ele não aparece nessa lista.
O MXterm não tem uma lista de sessões do Cursor nem um campo para o ID de uma sessão do Cursor. Para retomar uma conversa específica do Cursor, execute à mão, no shell do painel, a CLI de agente do próprio Cursor (cursor-agent). Todo o resto (o painel, a bolinha de status, o worktree em que ele está) é o mesmo espaço de trabalho do MXterm nos dois casos.
Cursor ao lado do Claude Code ou do Codex: isolamento com git worktree
Ative Isolar funcionalidades em git worktrees no Composer e todo painel de agente que ele criar, o do Cursor inclusive, ganha o seu próprio worktree em <repo>/.worktrees/<slug>. O slug é o nome do branch com a barra trocada por hífen. Para o branch swarm/azure-falcon, a pasta é .worktrees/swarm-azure-falcon.
O branch é novo e tem nome aleatório, como swarm/azure-falcon. O MXterm também adiciona .worktrees/ ao seu .gitignore automaticamente, então esses checkouts descartáveis nunca vão parar num commit por acidente. Painéis de shell comuns, e qualquer painel que você não isolou, ficam na raiz do repositório.
O efeito é concreto, mas não é um sandbox. O Cursor trabalhando em swarm/azure-falcon e o Claude Code trabalhando em swarm/mint-otter editam dois diretórios diferentes em dois branches diferentes. É bem menos provável que uma edição pela metade de um agente caia num arquivo em que o outro está trabalhando.
Um git worktree por agente reduz a chance de o erro de um agente atingir a cópia de trabalho de outro. Ele faz isso dando a cada agente um checkout separado, não restringindo o que cada um pode fazer.
Duas regras protegem o resultado. Fechar um painel ou um espaço de trabalho nunca apaga o worktree dele, e um agente não consegue remover um worktree que tenha alterações não commitadas. Depois que um branch for mesclado, limpe-o pela lista de worktrees do painel Git.
Free vs. Pro: o que realmente tem limite
Ativar o isolamento com worktree não custa nada: ele não depende do plano Pro. O que tem limite é a escala. Por padrão, o plano Free não tem limite de painéis. Ele permite 2 terminais compartilhando uma Control Room (antes War Room), 5 hosts SSH salvos e 1 Máquina salva. O plano Pro remove o limite da Control Room.
Numa configuração com Cursor e outros agentes, o número da Control Room é o que merece atenção. Coloque Cursor, Claude Code e Codex na mesma sala e o terceiro membro precisa do Pro.
Os painéis não têm limite no Free, então um painel do Cursor, um do Claude Code e cinco shells comuns podem rodar lado a lado.
MXterm Pro vs. iTerm2, Warp e um terminal comum para este trabalho
O iTerm2 e o Terminal.app são terminais excelentes e maduros, e rodar o cursor-agent em qualquer um deles funciona tão bem quanto em qualquer outro lugar. Nenhum dos dois foi feito para acompanhar se um agente está bloqueado, trabalhando ou ocioso, automatizar worktrees ou coordenar um segundo agente em outra aba. Você recebe a saída bruta e a lê por conta própria.
O Warp é outra comparação: um terminal construído principalmente em torno do próprio agente de IA e de blocos de comando. Você ainda pode iniciar o cursor-agent dentro de um bloco do Warp como qualquer outro comando. Consulte a documentação do Warp para saber o que as ferramentas de agente dele cobrem hoje.
Se o trabalho é rodar o Cursor ao lado do Claude Code e do Codex e ver num relance qual deles precisa de você, o MXterm Pro foi feito para isso. Ele é uma alternativa a rodar o cursor-agent sozinho numa janela de terminal comum.
Solução de problemas e limites atuais
O Cursor Agent aparece como "Não instalado" no Composer: o MXterm não encontrou um executável cursor-agent no seu PATH nem nas pastas bin comuns. Instale-o e reabra o Composer. Não precisa reiniciar o app.
O painel não mostra cor logo depois de iniciar: é normal. A detecção fica desconhecida por cerca de três segundos depois da criação, antes da primeira leitura de verdade.
Nenhuma entrada do Cursor em "Retomar sessões": é o esperado hoje, como explicado na seção sobre retomada acima.
O painel voltou, mas a sessão antiga não: depois de reabrir o app, as abas e o layout voltam com um terminal novo em cada painel. Um painel do Cursor Agent executa cursor-agent de novo como uma sessão nova, sem o briefing original. O MXterm não reabre a conversa anterior do Cursor para você.
Pular o briefing é uma escolha deliberada: reenviá-lo para um worktree que já avançou faria o agente refazer a tarefa inteira.
Linux: o MXterm Pro tem um build Linux beta (um .deb e um AppImage para Ubuntu 22.04 ou mais recente), mas esse fluxo é descrito para macOS e Windows, então considere-o não testado no Linux.
SSH com vários painéis, Command Recipes (Cmd+J) e uma Control Room (antes War Room) multiagente: comece grátis.
Já tem o MXterm Pro? Leia o guia de configuração →
Novo no MXterm Pro? Veja os preços →
Perguntas frequentes
Não. O MXterm Pro inicia um PTY de verdade e digita no shell dele o comando do template Cursor Agent (cursor-agent). Ele não encapsula esse comando. A detecção de status só lê a saída já renderizada do painel e não intercepta nem altera o que o comando imprime ou recebe.
Sim. Cada um roda no seu painel, com o seu próprio git worktree se o isolamento estiver ativado. O MXterm não configura as ferramentas da Control Room para o Cursor, então um painel do Cursor não se conecta a uma sala como o Claude Code ou o Codex.
Ainda não de forma automática. A lista "Retomar sessões" do Composer hoje só lê o histórico do Claude Code, do Codex, do Gemini e do OpenCode. O armazenamento de sessões do próprio Cursor não entrou nessa varredura. Você ainda pode retomar à mão, no shell do painel, com a CLI de agente do Cursor (cursor-agent). Segundo a documentação da CLI do Cursor, cursor-agent ls lista os chats anteriores e cursor-agent resume reabre o mais recente. cursor-agent --resume recebe o ID de um chat.
O Windows x64 oferece PowerShell, cmd, Git Bash (e PowerShell 7 ou WSL, se instalados), por painel ou como padrão em Configurações. A detecção de status e o isolamento com worktree não foram verificados lá. No Windows, uma Control Room não detecta um agente que você iniciou à mão em um painel de shell comum. A 1.1.0 é a primeira build pública para Windows.
O isolamento com worktree em si é gratuito. O que tem limite é a escala: por padrão, o plano Free não tem limite de painéis, mas limita uma Control Room a 2 terminais, além de hosts SSH salvos e Máquinas. O plano Pro pago remove esses limites. Uma sala com três agentes, Cursor, Claude Code e Codex juntos, precisa do Pro.