Outro Context Code daqui
O seu terminal pode falar com o Context Code de outra máquina: o de casa a partir do escritório, o do servidor a partir do notebook. É exatamente o que o celular faz quando escaneia o QR, mas a partir de um console.
O turno não é executado pelo seu computador: ele entra na fila de lá, com os arquivos e os projetos de lá. Você vê o que acontece e decide o que for preciso decidir.
Colocar em funcionamento
Seção intitulada “Colocar em funcionamento”# No OUTRO computador (o que tem o agente e os projetos):contextcode serve --print-qr --public
# Aqui, com a URL que ele imprimiu (leva o ?t=…):contextcode remoto agregar casa "https://algo.trycloudflare.com/?t=TOKEN"contextcode remoto listarcontextcode remoto probar casacontextcode chat --remoto casaTambém aceita o endereço e o token separados, ou sem esquema:
contextcode remoto agregar vps 192.168.1.5:8787 --token TOKENO que acontece ao adicionar
Seção intitulada “O que acontece ao adicionar”- É chamada a
/api/version, a única rota pública. Serve para separar dois problemas que se parecem e têm remédios opostos: «não chego a essa máquina» e «chego, mas o token não vale». - A credencial é validada com uma chamada que não muda nada.
- O token do link é trocado por um de dispositivo. A partir daí, o token do QR não é guardado: mantê-lo deixaria no seu disco uma credencial viva que sobreviveria à revogação.
O registro vive em ~/.context/remotos.json, com permissões 0600 onde o sistema permite. contextcode conexion diz o caminho exato.
As duas credenciais
Seção intitulada “As duas credenciais”| Credencial | De onde vem | Quanto dura | Como é retirada |
|---|---|---|---|
| Token do link | Gerado pelo serve; é o que vai dentro do QR | De 1 minuto a 30 dias | Rotacionando-o: caem todos de uma vez |
| Token de dispositivo | Pedido uma vez, apresentando o do link | Não expira | Um a um, sem mexer nos demais |
O QR é a porta, não a chave. Por isso o link pode ser efêmero sem obrigar você a reescanear todo dia, e por isso perder um celular não expulsa os demais.
O chat remoto
Seção intitulada “O chat remoto”contextcode chat --remoto casa # cria um chat novocontextcode chat --remoto casa --proyecto "Meu app" # nesse projeto (id ou nome)contextcode chat --remoto casa --chat chat-a1b2 # continua um existentecontextcode chat --remoto # o remoto ativoVocê verá o mesmo que em um chat local — texto ao vivo, ferramentas, resultado — porque são os mesmos eventos do motor, acompanhados por sondagem da linha do tempo do outro lado.
As aprovações são respondidas pelo seu terminal
Seção intitulada “As aprovações são respondidas pelo seu terminal”Quando o agente da outra máquina pede permissão para usar uma ferramenta, a pergunta sai no seu console ([s/N/siempre]) e a sua resposta o desbloqueia. Sem isso, o turno esperaria indefinidamente por alguém sentado na frente daquele computador — que é justamente o que você está evitando.
Se a rede cair
Seção intitulada “Se a rede cair”O agente continua trabalhando lá. O comando diz com qual linha voltar a entrar (--chat <id>) para recuperar a resposta quando você voltar.
remoto frente aos workspaces SSH do desktop
Seção intitulada “remoto frente aos workspaces SSH do desktop”Não competem: resolvem casos diferentes.
contextcode remoto | Workspace SSH (janela do desktop) | |
|---|---|---|
| Quem usa | O terminal, em qualquer sistema | O aplicativo de desktop |
| Transporte | HTTP direto contra o serve | ssh -L e HTTP pelo túnel |
| Credencial | Token do QR → token de dispositivo | As suas chaves SSH |
| Precisa no servidor | contextcode serve já rodando | Acesso SSH e o binário instalado |
| Atravessa a internet | Sim, com serve --public | Sim, se o SSH for acessível |
Em um VPS próprio com SSH, o desktop usa o workspace SSH. Para chegar a partir de um terminal — ou de uma máquina onde as suas chaves não estão — o caminho é remoto contra serve --public.
Túneis SSH que já não caem
Seção intitulada “Túneis SSH que já não caem”Se você usava um workspace SSH e ele cortava toda hora, era isto: os NAT domésticos e algumas VPN só contam o tráfego TCP visível e reciclam as sessões ociosas, mesmo com o SSH mandando as suas próprias sondas criptografadas por dentro.
Agora a conexão leva keep-alive nas duas camadas (ServerAliveInterval=15 com ServerAliveCountMax=3 no SSH, e TCPKeepAlive=yes no TCP). E se mesmo assim cortar:
- O aplicativo detecta que o túnel está morto e volta sozinho a trabalhar em local, em vez de encadear esperas de três segundos por cada comando contra uma conexão que já não existe.
- Os chats remotos toleram cortes de mais de dois minutos, tentando de novo com esperas crescentes, antes de se darem por perdidos.
Quando o emparelhamento falha
Seção intitulada “Quando o emparelhamento falha”| O que você vê | O que acontece e o que fazer |
|---|---|
| «O seu computador recusou este link: já expirou» | O link venceu ou foi regenerado. Gere um novo e escaneie de novo. |
| «O seu acesso foi revogado» | Esse dispositivo foi revogado do outro lado. Escaneie um QR novo. |
| «Não foi possível contatar» e o PC está ligado | O QR de rede local aponta para um IP interno. Fiquem na mesma rede, ou peça o QR do túnel com --public. |
| O QR de um VPS não funciona | Sem --public, o link aponta para um IP do data center que o seu celular não alcança. |
conexion diz que «o chaveiro não devolveu o token» | Servidor sem chaveiro do sistema: use serve --token-file <caminho> para ter um token estável. |