@teammove/teamcode-runner
v0.2.1
Published
Roda o TeamCode na sua máquina: agentes de programação, arquivos e terminal, em segundo plano e voltando sozinho no boot.
Maintainers
Readme
TeamCode Runner
O TeamCode roda na sua máquina. A tela vive no TeamMove (menu → TeamCode), mas quem sobe o agente de programação, lê os arquivos e abre o terminal é este processo, aqui, com o seu login.
A tela monta o comando pronto em Minhas máquinas → Conectar um computador:
npx @teammove/teamcode-runner TC-7K2P-9QX4 --url wss://<seu-teammove>/teamcode-runner --installUm passo só: pareia, instala um serviço do seu usuário e sai. A partir daí o runner
fica de pé em segundo plano e volta sozinho depois de reiniciar o computador. Precisa
de Node 22+ (o WebSocket global vem de lá).
| Comando | O que faz |
| ------------- | ------------------------------------------------------------------------------- |
| --install | instala/atualiza o serviço (systemd --user no Linux, launchd no macOS) e liga |
| --status | diz se está rodando, se sobe no boot e com que nome pareou |
| --stop | encerra o processo em segundo plano (o serviço, se instalado, sobe de novo) |
| --uninstall | remove o serviço; o pareamento continua salvo |
| --bg | roda solto do terminal sem instalar serviço (não volta no boot) |
| sem flag | roda em primeiro plano; Ctrl+C encerra |
No Windows não há instalação automática: o comando imprime o caminho pra apontar uma tarefa no Agendador.
Máquina sem acesso ao registro do npm? O mesmo runner é servido pela própria API — a tela mostra este comando em "Sem npm nessa máquina?":
mkdir -p ~/.teamcode \
&& curl -fsSL https://<seu-teammove>/api/teamcode-runner/runner.mjs -o ~/.teamcode/runner.mjs \
&& curl -fsSL https://<seu-teammove>/api/teamcode-runner/caminho.mjs -o ~/.teamcode/caminho.mjs \
&& node ~/.teamcode/runner.mjs TC-7K2P-9QX4 --url wss://<seu-teammove>/teamcode-runnerAntes de parear
Tenha pelo menos um agente instalado — o runner detecta sozinho quais existem:
| Agente | Como instalar |
| ----------- | ----------------------------------------------------------------------------- |
| OpenCode | npm i -g opencode-ai e depois opencode auth login |
| Claude Code | npm i -g @agentclientprotocol/claude-agent-acp (precisa do claude logado) |
| Codex | npm i -g codex-acp (login do Codex ou OPENAI_API_KEY) |
| Gemini CLI | npm i -g @google/gemini-cli |
Nenhuma chave de provedor sai daqui: o servidor não guarda credencial de modelo, e a assinatura usada é a que você já tem.
O que ele faz
- sobe um agente por conversa — o TeamCode abre até seis conversas ao mesmo tempo, e cada uma é um processo próprio nesta máquina, na pasta que a conversa apontar;
- responde perguntas sobre arquivos — listar pasta, ler arquivo e
git diff HEADda pasta do projeto, que é o que alimenta o explorador e a revisão de alterações; - abre terminal — shell com entrada por linha (sem pty: build, teste e git funcionam;
vimehtop, não).
Cerca de arquivos
Explorador e leitura ficam presos à sua HOME. O agente em si não tem essa cerca (ele roda com o seu usuário, como rodaria no terminal) — a cerca existe para que um token vazado não vire "leia qualquer arquivo desta máquina".
TEAMCODE_ROOT=/home/eu/projetos npx @teammove/teamcode-runner # cerca em outra pasta
TEAMCODE_ALLOW_ALL=1 npx @teammove/teamcode-runner # sem cerca (opt-in)Variáveis
| Variável | Para quê |
| --------------------- | --------------------------------------------- |
| TEAMCODE_RUNNER_URL | endereço do gateway (mesma coisa que --url) |
| TEAMCODE_ROOT | raiz da cerca de arquivos (padrão: sua HOME) |
| TEAMCODE_ALLOW_ALL | 1 derruba a cerca |
Conferindo a cerca
node caminho.selfcheck.mjsOnde ficam as coisas
- Pareamento (token, tenant, URL):
~/.config/teammove-teamcode/runner.json, modo 0600. - Pasta padrão das conversas sem pasta escolhida:
~/teamcode. - Cópia estável usada pelo serviço:
~/.config/teammove-teamcode/{runner,caminho}.mjs(rodando pornpx, o arquivo original vive num cache que o npm limpa). - Log:
~/.config/teammove-teamcode/runner.log. - Serviço:
~/.config/systemd/user/teammove-teamcode.service(Linux) ou~/Library/LaunchAgents/com.teammove.teamcode.plist(macOS). No Linux o--installtambém tentaloginctl enable-linger— sem linger, serviço de usuário não sobe no boot, só quando você faz login.
Perdeu o token ou trocou de computador? Gere um código novo na tela (ícone de recarregar ao lado da máquina) — o código anterior e o token antigo deixam de valer na hora.
