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.

As ações seguras rodam sozinhas; as arriscadas esperam a sua permissão.

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 | sh

Linux e macOS · MIT · cerca de um minuto

Modos de permissão

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.

aipager
bot
💬 Modo Perguntar/mode ask
Vou olhar primeiro o helper do cookie.”
🔐 Read: o helper do cookie
src/auth/cookie.ts
🔐 api · Precisa da sua permissão
✅ Permitir❌ Negar🟢 Sempre permitir⏹ Parar
✅ api · Permitido · Read: src/auth/cookie.ts

Toda ação espera por você, até uma leitura.

aipager
bot
🤖 Modo Automáticopadrão
O teste clica antes do cookie de sessão ser criado.”
✅Read: src/auth/cookie.ts
✅Bash: pnpm test e2e/login --trace on
🔐 Bash: Ver as sessões mais recentes no staging
psql $STAGING_URL -c 'select id, …'
🔐 api · Precisa da sua permissão
✅ Permitir❌ Negar🟢 Sempre permitir⏹ Parar

A leitura e os testes rodaram sem perguntar. Um comando no staging é do tipo arriscado, então esse parou.

aipager
bot
🔓 Modo Acesso total/mode full
/mode full
✅ api agora está em 🔓 Modo Acesso total.
arruma o teste e2e de login que está instável
▸ 4 ferramentas usadas
O teste clica antes do cookie de sessão ser criado. Ele dá um sleep de 5s e torce.”
✅Edit: e2e/login.spec.ts
⏳Bash: pnpm test e2e/login --repeat 10
⏳ api · Trabalhando · 4:02 · Read ×2 · Bash ×3 · Edit ×1

Sem verificação, sem botão. Só a resposta quando termina.

  • ✅ 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
/mode

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.

Modo Perguntar ⇄ Modo Automático, na mesma sessão

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.

O Modo Acesso total reinicia

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).

As perguntas chegam do mesmo jeito

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.

Onde ele vive

Três chats. O resto é a sua vida.

  • aipagerbot
    ⏳ api · Trabalhando · 3:14 · Read ×2 · Bash ×2
    Seu 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>
  • BT
    backend-teamgrupo · modo equipe
    Sara: @aipagerbot /web roda o e2e de login no staging
    O 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
  • J
    Jimo próprio chat com o bot
    🔐 web · Precisa da sua permissão
    Outra 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.

Podeowneradminuserread_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 trabalharem qualquer lugarem qualquer lugarpasta raizpasta raiz
Ler arquivos de credenciais (~/.ssh, …)✓✓✕✕
O modo equipe, por completo →
No dia a dia

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.

O Mini App

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.

aipager⋮
aipager
@aipagerbot · v1.3.7 · rodando há 141 min
1 precisa de você, 2 trabalhando, 1 pronta
$4.19 gastos · 12 encerradas
Precisam de você
@aipagerbot
Todas as sessões numa tela

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.

O que precisa de você vem primeiro

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á.

Uma página por sessão

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.

Servido pelo próprio aipager

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.

O que o app faz →
Quinze idiomas

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.

Da direita para a esquerda, do jeito certo

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.

Escrito, não traduzido

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).

Seu chat, seu idioma

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.

A documentação também

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.

aipager
bot
فارسی
Mensagem fixada
‏⏳ ⁨api⁩ منتظر شماست‏ - ‏⁨Bash: pnpm test e2e/login⁩‏
‏🔐 ⁨api⁩ · اجازه می‌خواهد‏
pnpm test e2e/login --trace on
‏✅ اجازه بده‏‏❌ رد کن‏‏🟢 همیشه اجازه بده‏‏⏹ توقف‏
‏⁨✅⁩ ⁨api⁩ · ⁨‏اجازه داده شد‏⁩ · ⁨Bash: pnpm test e2e/login⁩‏
‏⁨⏳⁩ ⁨api⁩ · ⁨‏در حال تأمل‏⁩‏ · ۳:۱۴ · Read ×۲ · Bash ×۱
‏✅ کار ۲ ایجنت تمام شد (⁨۶:۱۲⁩)‏
‏🌐 زبان: ⁨فارسی⁩‏
Por baixo do chat

O 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.

  1. Claude Code
    dentro do dtach, sem janela aberta
  2. hook
    dispara a cada etapa
  3. aipager
    um processo, com o seu usuário
  4. Telegram
    o token do seu próprio bot
  5. seus chats
    seu chat privado, o grupo da sua equipe
Sente no computador quando quiser

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.

Ele nunca lê a sua tela

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.

Nada fica esperando o chat

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.

Dezesseis hooks, mais a status line de onde ele tira o modelo, o contexto e o custo. O aipager está ligado em todos eles.
UserPromptSubmitPreToolUsePermissionRequestPostToolUsePostToolUseFailureNotificationStopStopFailureSubagentStartSubagentStopPreCompactPostCompactMessageDisplayPreModelSwitchSessionStartSessionEndstatusline
Segurança

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.

01
Não existe servidor do aipager.

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.

02
Só os seus chats são atendidos.

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.

03
Nenhuma porta aberta.

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.

04
Seu token, seu arquivo.

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.

05
Ele nunca vira root.

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ê.

06
Quem decide continua sendo o Claude Code.

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.

07
O acesso é dado no computador.

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.

08
Toda resposta fica registrada.

Cada Permitir, cada Negar e cada resposta vai para ~/.claude/aipager-audit.jsonl, que só cresce, com quem tocou quando foi num grupo.

O modelo de segurança →
Instalação

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.

Ou entregue para o agente que você já tem.

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>.

O guia que ele segue →

Prefere o seu gerenciador de pacotes? uv, pipx, Homebrew, Docker, Nix, o AUR e o Snap. todas as formas de instalar →

Mensagens Salvas
4 mensagens
FAQ

Pergunte.

aipager
bot
Qual a diferença para os apps do Claude no celular?
Os apps do Claude falam com o assistente hospedado pela Anthropic. O aipager espelha uma sessão do Claude Code rodando no seu próprio computador: o seu repo, as suas ferramentas, o seu ambiente.

Coloque o Claude nos seus chats.

Depois feche o terminal e vá viver a sua noite.

$curl -fsSL aipager.run/install | sh