Telegram + GitHub + Docker

Controle Claude Code e Codex de qualquer lugar

Um servidor Node/Docker que conecta Telegram e GitHub a agentes de código (Claude Code ou Codex), com sessões que sobrevivem a restart, repositórios clonados sob demanda e comandos versionados no seu próprio codebase.

Ilustração abstrata representando controle remoto de agentes de código via Telegram e GitHub
O que é

Um orquestrador entre você e o agente de código

rAgentic-cs (Remote Agentic Coding System) roda como servidor Docker e faz a ponte entre plataformas de mensagem/issue e assistentes de IA de código — sem você precisar de um terminal aberto.

💬 Multi-plataforma

Fale com o agente pelo Telegram (chat) ou por menções em issues/PRs do GitHub. Mais plataformas planejadas no roadmap.

🧠 Claude Code ou Codex

Escolha o assistente por codebase — detectado automaticamente pela pasta .claude/commands/ ou .codex/ do repositório clonado.

🗂️ Sessões persistentes

Conversa, codebase ativo e diretório de trabalho ficam salvos no Postgres — sobrevivem a reinício do container.

Como funciona

Da mensagem ao comando executado

Uma mensagem chega por um adapter de plataforma, passa pelo orquestrador (roteamento + contexto), é resolvida como comando slash ou prompt livre, e vai pro assistente de IA configurado — tudo registrado em 3 tabelas Postgres.

Telegram / GitHub Orquestrador Comando (/slash) ou prompt livre Claude Code / Codex Resposta na mesma plataforma
Pré-requisitos

O que precisa estar pronto antes

Sistema + pelo menos uma conta de IA + pelo menos uma plataforma de interação.

Docker & Docker Compose

Pra rodar o servidor (app + Postgres, se optar pelo banco local).

# checar instalação
docker --version
docker compose version

Node.js 20+

Só necessário se for rodar localmente sem Docker (npm run dev).

# checar versão
node --version

Contas necessárias

GitHub (clonar repos), Claude Pro/Max ou conta Codex, e Telegram ou GitHub pra interação.

# gerar token GitHub em
https://github.com/settings/tokens # scope: repo
Guia de uso · passo a passo

Subindo o rAgentic-cs

Setup local com Docker. Para deploy 24/7 numa VPS, veja o docs/cloud-deployment.md do repositório.

1

Clone e configure o .env

Copie o repositório e o arquivo de ambiente de exemplo.

git clone https://github.com/inematds/rAgentic-cs
cd rAgentic-cs
cp .env.example .env
2

Configuração core (obrigatória)

Defina DATABASE_URL e o token de GitHub para clonar repositórios.

# .env
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/remote_coding_agent
GH_TOKEN=ghp_seu_token_aqui
GITHUB_TOKEN=ghp_seu_token_aqui  # mesmo valor
3

Configure ao menos um assistente de IA

Claude Code via claude setup-token (recomendado p/ assinantes Pro/Max) ou Codex via codex login.

# .env — Claude Code
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-xxxxx

# .env — alternativa via API key
CLAUDE_API_KEY=sk-ant-xxxxx
4

Configure ao menos uma plataforma

Telegram é o caminho mais simples: crie o bot com @BotFather e cole o token.

# .env
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHI...
TELEGRAM_STREAMING_MODE=stream  # stream (default) | batch
5

Suba a aplicação

Escolha o profile do Docker Compose de acordo com o banco (local ou remoto).

# Opção A: Postgres remoto (Supabase, Neon...)
docker compose --profile external-db up -d --build

# Opção B: Postgres local via Docker
docker compose --profile with-db up -d --build
6

Clone um repositório e carregue comandos

No Telegram (ou numa issue do GitHub), clone o repo alvo e carregue os comandos slash dele.

/clone https://github.com/user/repo
/load-commands .claude/commands
7

Converse e invoque comandos

Pergunte livremente ou invoque um comando carregado, com argumentos.

/command-invoke plan "Add retry logic to API calls"
/status  # mostra plataforma, assistente, codebase e sessão ativa
8

Verifique saúde do serviço

Endpoints de health check para monitoramento e debug.

curl http://localhost:3000/health
curl http://localhost:3000/health/db
curl http://localhost:3000/health/concurrency
Exemplos

Fluxo real de uso

Dois caminhos de interação cobertos pelo projeto: chat no Telegram e menções em issues/PRs do GitHub.

💬 Telegram

Clone um repo, carregue .claude/commands/, e invoque /command-invoke prime pra pesquisar o codebase ou /command-invoke plan "Add dark mode" pra gerar um plano de implementação — tudo na conversa.

🐙 GitHub

Mencione @remote-agent numa issue: @remote-agent can you analyze this bug?. Na primeira menção o bot clona o repositório e injeta o contexto completo da issue/PR; nas seguintes, resume a conversa mantendo o histórico.

Roadmap

Arquitetura e próximos passos

O projeto já está funcional (adapters, orquestrador, comandos genéricos, Docker); o roadmap descrito no README é sobre expandir plataformas e assistentes suportados.

Hoje
Adapters + orquestradorTelegram e GitHub Webhooks funcionando, roteamento de mensagens, gerenciador de concorrência (lock manager) e 3 tabelas Postgres (remote_agent_codebases, _conversations, _sessions).
Hoje
Assistentes plugáveisClaude Code e Codex via IAssistantClient, com detecção automática do assistente pela pasta de comandos do codebase clonado.
Extensível
Mais plataformasArquitetura de adapter (IPlatformAdapter) preparada para novas plataformas além de Telegram e GitHub, conforme o README descreve ("e mais no futuro").