O Claude é mais um chat.
O aipager coloca suas sessões do Claude Code no Telegram, entre sua família, seus amigos e sua equipe. Roda no seu computador.
Uma sessão do Claude Code pronta no seu notebook, no Modo Automático, onde toda sessão nova começa.
curl -fsSL aipager.run/install | shLinux e macOS · MIT · cerca de um minuto
Três modos. Você começa no Modo Automático.
Cada sessão está em um dos três, escolhido por sessão e mudado quando você quiser com /mode. No Modo Perguntar, tudo para antes de cada ação. O Modo Automático, onde toda sessão nova começa, deixa a própria verificação de segurança do Claude Code rodar as ações seguras e parar as arriscadas para você. O Modo Acesso total roda tudo sem nenhuma verificação. Um modo mexe só nos pedidos de permissão do Claude Code: num grupo, uma ferramenta que a função de um membro não pode usar continua sendo recusada, não importa o modo.
- ✅ Permitir · só desta vez
- ❌ Negar · o Claude bloqueia a ação
- 🟢 Sempre permitir · adiciona a regra que o Claude oferece, quando ele oferece uma
- ⏹ Parar · interrompe a tarefa em vez de responder
Mostra um botão para cada um dos outros modos; /mode ask, /mode auto e /mode full mudam na hora. Sessões novas começam no Modo Automático, a não ser que o chat tenha escolhido outra coisa em /settings → Novas sessões.
Sem reiniciar, mesmo com o Claude trabalhando: o aipager aperta Shift+Tab na sessão, e o cartão diz que está mudando até o Claude Code confirmar o novo modo.
Entrar ou sair do Modo Acesso total reinicia a sessão e mantém a conversa. Só um admin pode criar uma sessão nele ou mudar uma para ele (ou você, no seu chat privado com o bot).
Um modo manda nos pedidos de permissão, não nas decisões: quando o Claude pergunta algo a você, os botões chegam no seu chat em qualquer modo.
Três chats. O resto é a sua vida.
- aipagerbot⏳ api · Trabalhando · 3:14 · Read ×2 · Bash ×2Seu chat com o Claude
Um chat para todas as sessões. Um cartão ao vivo por tarefa que se edita sozinho, pedidos que você responde com um toque e uma barra fixada que diz o que precisa de você. Uma mensagem comum vai para a sessão que a barra mostra; o /web manda a próxima para outra e continua a conversa lá.
/status/new/mode/stop/app/<sessão> <mensagem> - BTbackend-teamgrupo · modo equipeSara: @aipagerbot /web roda o e2e de login no stagingO grupo da sua equipe
Coloque o bot num grupo e quem estiver na lista de pessoas permitidas pode mencioná-lo. Cada mensagem roda com a função de quem enviou; uma ferramenta que a função não pode usar é recusada antes de rodar, e cada decisão vai para o log de auditoria com o nome de quem tocou.
owneradminuserread_only - JJimo próprio chat com o bot🔐 web · Precisa da sua permissãoOutra pessoa, no chat dela
Adicione o chat privado de alguém da equipe com o bot e essa pessoa comanda as próprias sessões, com a função dela e a pasta raiz dela: as tarefas do Claude começam dentro dessa pasta e não leem nada da sua pasta pessoal fora dela. Quem só deve acompanhar ganha read_only no seu grupo.
pasta raiz dos membros~/aipager-users/<label>read_only/new
Quatro funções, e uma regra de ferramentas por função.
A função que vale é a que você tem no chat onde está agindo, e uma ferramenta que a função não pode usar é recusada antes de rodar, sem perguntar. Nada no Telegram nem no Mini App muda quem está na lista: só o aipager config, no computador.
| Pode | owner | admin | user | read_only |
|---|---|---|---|---|
| Mandar mensagens para uma sessão | ✓ | ✓ | ✓ | ✕ |
| Permitir, Negar, responder às perguntas do Claude | ✓ | ✓ | ✓ | ✕ |
| Bash, e tudo mais que roda código | ✓ | ✓ | ✕ | ✕ |
| Modo Acesso total, o /settings de um grupo, /update | ✓ | ✓ | chat próprio | ✕ |
| Onde as sessões podem trabalhar | em qualquer lugar | em qualquer lugar | pasta raiz | pasta raiz |
| Ler arquivos de credenciais (~/.ssh, …) | ✓ | ✓ | ✕ | ✕ |
Use como um chat.
Não é um console fantasiado de chat: tudo o que você já faz no Telegram funciona aqui. Fale com ele na volta para casa, jogue o print nele, mande a próxima ideia antes da anterior terminar.
- 🎙️Fale em vez de escrever
Mande um áudio: o aipager transcreve no seu próprio computador (nunca na nuvem de ninguém), devolve o que ouviu para você conferir e digita na sessão como se você tivesse escrito.
0:07🎙️ Ouvi: arruma o teste e2e de login que está instável - 📎Um print do bug
Fotos e arquivos caem numa pasta do seu computador e o Claude recebe o caminho, com a sua legenda como mensagem, ou “check this: …” quando não tem legenda. Mande vários de uma vez e eles vão como uma mensagem só.
- 📤Ele te manda arquivos
Peça com suas próprias palavras, “me manda o print”, e o arquivo chega no chat daquela sessão logo depois da resposta: imagens como fotos, vídeos e áudios do jeito que são, qualquer outra coisa como arquivo, e vários de uma vez como um álbum só. Nunca as configurações do aipager, as credenciais do Claude ou as suas chaves: isso é recusado antes de qualquer envio.
me manda o print - 👀Mande a próxima agora
Sua mensagem chega no Claude no instante em que você envia, mesmo no meio de uma tarefa: 👀 enquanto ela espera na fila do próprio Claude, 👍 quando o Claude pega. O ⚡ Enviar agora entrega a mensagem sem esperar a etapa terminar.
- ⏸Nunca lida como a resposta
Uma mensagem que você manda com um pedido de permissão aberto fica esperando, não entra como resposta ao pedido, e vai para a sessão assim que você responder.
- 🤖Agentes e comandos em segundo plano, contados
Cada agente em segundo plano que o Claude inicia ganha a própria linha no cartão com o que está fazendo, e um comando deixado rodando em segundo plano mantém o próprio relógio até terminar.
- 🔔Ele avisa antes
Um aviso de contexto, uma compactação, uma sessão encerrada ou que ficou quieta, uma tarefa que demorou demais: o chat conta para você sem você precisar ir olhar.
- ⌨️Os botões já estão ali
Um teclado fica embaixo da caixa de mensagem: um botão por sessão ativa, depois status, stop e new, e então Templates para as mensagens que você vive redigitando e Comandos para as que o próprio Claude Code resolve sozinho.
- 📋/status, o chat inteiro de uma vez
Todas as sessões numa lista em que você pode agir: o que cada uma está fazendo, o modelo, o contexto que sobrou, o quanto já custou, o que está na fila atrás dela, com Parar, Responder e o resto do menu em cada uma.
Um painel, ainda dentro do Telegram.
O /app abre todas as sessões de uma vez: um bloco para cada, com o anel de contexto, a pasta, o modelo e o quanto já gastou. O chat continua sendo onde você responde, e o app serve para ver todas juntas e para o que é desajeitado num chat, como ler um diff ou mudar uma configuração.
Um bloco para cada, com o anel de contexto, de quem ela é, o modelo e o quanto já gastou, e em cima deles uma linha que diz como está o chat: quantas estão trabalhando, quantas estão prontas, quanto custou o dia, quantas já estão encerradas. O + cria outra: um nome, uma pasta entre as que você já usa, um modelo.
Uma sessão esperando sua resposta a um pedido de permissão ou a uma pergunta fica no topo, com o que ela está pedindo. O Responder no chat manda esse pedido de volta para o fim do chat, com botões e tudo, e você responde lá.
A linha de estado, “Trabalhando (3:12)” ou “Pronta, última atividade há 5 min”, e um toque para Parar ou Continuar. Embaixo, as últimas ferramentas usadas, a última resposta, o controle do modelo, o diff dos arquivos que a tarefa mudou, e as configurações daquela sessão.
Vem ligado, cada requisição é conferida com a assinatura do próprio Telegram, e a página não carrega nada de fora: nem fontes, nem scripts. Para desligar, use aipager miniapp disable.
No seu idioma, até nos dígitos.
Só as palavras do próprio aipager mudam: cartões, pedidos, botões, a barra fixada, o /status, o Mini App, a documentação. Suas sessões não: o Claude responde no idioma em que você escreve para ele, e o que o aipager manda para o Claude vai do jeito que estava. Escolha um com /language, ou deixe o aipager seguir o idioma do seu Telegram.
O persa e o árabe se leem da direita para a esquerda, com os dígitos do persa (۰-۹) ou do árabe (٠-٩) e os separadores de cada um, no Telegram e no Mini App. Nomes de sessão, caminhos, comandos e código mantêm a direção deles.
Cada idioma foi escrito do jeito que fala quem usa apps nele, estrangeirismos incluídos, com as formas de plural de cada língua (o árabe tem seis).
Um chat privado pode seguir o seu Telegram. Um grupo tem um idioma só, escolhido por um admin, e o aviso que aparece depois de um toque sai no idioma de quem tocou.
O README e todas as páginas dentro de docs/ são traduzidos. Quando uma tradução e a página em inglês não batem, quem vale é a página em inglês.
pnpm test e2e/login --trace onO terminal continua sendo a fonte da verdade.
O Claude Code roda num terminal de verdade, dentro do dtach, então ninguém precisa deixar uma janela aberta. Cada etapa dispara um hook que manda um datagrama para o aipager por um socket local, e o aipager edita uma mensagem no seu chat. Suas respostas voltam pelo mesmo caminho: um veredito para o hook que está segurando a ação, ou teclas digitadas na sessão.
- Claude Codedentro do dtach, sem janela aberta
- hookdispara a cada etapa
- aipagerum processo, com o seu usuário
- Telegramo token do seu próprio bot
- seus chatsseu chat privado, o grupo da sua equipe
O aipager session api se conecta à sessão em andamento a partir de qualquer terminal. Digite lá, digite no chat: é a mesma sessão. Feche a janela e ela segue, e a conexão acompanha a sessão mesmo quando ela reinicia.
O aipager digita na sessão e escuta os eventos do próprio Claude Code. O que aparece no seu chat vem dos hooks e da conversa salva, não de ler o que aparece no terminal.
Um hook manda um datagrama e volta: uns 20 ms do tempo do Claude Code. Sem o aipager escutando, o evento é simplesmente descartado e o Claude segue; o aipager se atualiza depois pelos próprios arquivos da sessão.
Nada no meio do caminho.
O aipager nunca fala com a Anthropic. Quem fala é só o próprio Claude Code, com o seu login, no seu computador. O aipager inicia o Claude Code num terminal e escuta os hooks que ele publica. Nenhum endpoint descoberto por engenharia reversa, nenhum proxy, nenhuma conta além da sua: a sessão que você comanda pelo celular é a mesma que você comandaria no teclado.
O aipager fala com a Bot API do Telegram usando o token do seu próprio bot. Não existe conta do aipager nem serviço do aipager, e não tem o computador de mais ninguém entre o seu celular e o seu computador.
O aipager só responde nos chats que estão na sua configuração. Um desconhecido que achar o bot recebe uma linha dizendo que o bot não está configurado para falar com essa pessoa; nada do que ela mandar chega a uma sessão.
Ele escuta só no loopback. O Mini App sai por um túnel da Cloudflare onde toda requisição precisa levar a assinatura do Telegram. Para desligar, use aipager miniapp disable.
O token do bot e os ids dos chats ficam em ~/.config/aipager/aipager.yaml com permissão 600. Eles ficam fora do log do aipager, e são ocultados em todo lugar onde poderiam acabar aparecendo.
Nada de sudo, nada de setuid. Tudo o que ele escreve fica na sua pasta pessoal, em /tmp ou na pasta de sockets dele, e todo processo que ele inicia (claude, dtach, os instaladores) roda como você.
O seu settings.json diz o que precisa de permissão. O aipager repassa a pergunta; ele nunca decide o que pode rodar, e um botão que sobrou de uma tarefa que já terminou se recusa a agir em vez de mexer no trabalho que está rodando agora.
Membros e funções só mudam com o aipager config, no computador. Nada no Telegram e nada no Mini App pode adicionar uma pessoa ou ampliar uma função.
Cada Permitir, cada Negar e cada resposta vai para ~/.claude/aipager-audit.jsonl, que só cresce, com quem tocou quando foi num grupo.
Quatro linhas. Guarde nas Mensagens Salvas.
Toque numa linha para copiar. Antes, duas coisas: um bot seu do @BotFather (toque em Iniciar nele) e o Claude Code logado neste computador. O assistente da segunda linha pede o resto.
Coloque o token do bot num arquivo que o agente nunca precisa ler, e então dê isto ao Claude Code:
Install aipager for me by following https://aipager.run/agent.md. My Telegram bot token is in ~/.config/aipager/bot-token and my Telegram user id is <your id>.
Prefere o seu gerenciador de pacotes? uv, pipx, Homebrew, Docker, Nix, o AUR e o Snap. todas as formas de instalar →
Pergunte.
Coloque o Claude nos seus chats.
Depois feche o terminal e vá viver a sua noite.