Blog

Claude Code mit Telegram verbinden: Channels und Bot-Allowlist

Markdown

Schritt für Schritt: Erstelle einen Telegram-Bot, installiere das Claude Code Channels-Plugin, sichere ihn mit einer Allowlist und betreibe ihn rund um die Uhr auf einem VPS. Eine Anleitung zum direkten Nachvollziehen mit Befehlen.

Vollständigen Artikel lesen

Das Wichtigste

Claude Code Channels ist seit dem 20. März 2026 ein offizielles Plugin von Anthropic. Erstelle über BotFather einen Bot, installiere das Plugin mit einem Befehl, starte Claude mit dem Flag --channels neu und sende deinem Bot Nachrichten von deinem Smartphone. Claude liest sie direkt in deiner lokalen Sitzung, schreibt Code in deine Dateien und antwortet auf Telegram. Damit es rund um die Uhr funktioniert, verlegst du die Sitzung mit systemd auf deinen eigenen VPS.

Weitere Materialien zur Konfiguration von Tools findest du in der Ailoot-Dokumentation.

Was Claude Code Channels ist und warum du es brauchst

Das Wichtigste

Channels ist ein MCP-Plugin, das Nachrichten von Telegram, Discord oder iMessage an eine bereits laufende Claude Code-Sitzung weiterleitet. Die Sitzung sieht die Nachricht als normale Nutzeranfrage, arbeitet mit deinen lokalen Dateien und antwortet im selben Chat. Dein Laptop bleibt geöffnet, während du dich mit deinem Smartphone um deine anderen Dinge kümmerst.

Am 20. März 2026 veröffentlichte Anthropic Claude Code Channels, ein offizielles Plugin, um eine Claude-Sitzung mit Messaging-Apps zu verbinden. Unterstützt werden Telegram, Discord und iMessage. Die Funktion befindet sich in der Research Preview: Die Dokumentation findest du unter code.claude.com/docs/en/channels, und der Plugin-Quellcode liegt im offenen Repository anthropics/claude-plugins-official.

Kurz gesagt: Es ist eine „Chat-Brücke“ zwischen deinem Smartphone und deiner Claude Code-Sitzung. Ich schreibe dem Bot: „Mach mit der Überarbeitung des Preisrasters weiter; aktualisiere in business/products/practicum/README.md die Termine für den nächsten Jahrgang“, und der Bot leitet die Nachricht an die Sitzung auf meinem VPS weiter. Claude ruft den Kontext ab, bearbeitet die Datei, committet die Änderungen und antwortet auf Telegram: „Erledigt, sieh dir den Commit an.“ Der Laptop bleibt zu Hause zugeklappt.

⚠️ Die wichtigste Einschränkung der Research Preview: Channels ist eine MCP-Brücke. Die Sitzung muss auf deinem Rechner oder VPS laufen. Wenn die Sitzung geschlossen ist, empfängt niemand Nachrichten. Deshalb musst du den 24/7-Betrieb separat einrichten (siehe den VPS-Abschnitt weiter unten).

Wie sich Channels von anderen Möglichkeiten zur Fernarbeit unterscheidet

In seiner offiziellen Dokumentation stellt Anthropic eine direkte Vergleichstabelle bereit. Hier ist eine angepasste Version:

FunktionWas sie machtWann du sie wählen solltest
Claude Code im WebFührt eine Aufgabe in einer neuen Cloud-Sandbox aus und klont ein Repository von GitHubEine unabhängige Hintergrundaufgabe delegieren und später nachsehen
Slack-IntegrationStartet eine Web-Sitzung in einem Thread, wenn @Claude erwähnt wirdAufgaben direkt aus Teamgesprächen starten
MCP-Server (regulär)Claude ruft ihn während einer Aufgabe auf; er übermittelt nichts an die SitzungClaude bei Bedarf Zugriff auf externe Systeme geben
Remote ControlDu steuerst eine lokale Sitzung über claude.ai oder die mobile AppEine bestehende Sitzung über den Smartphone-Bildschirm bedienen
Channels ⭐Übermittelt Ereignisse aus Quellen außerhalb von Claude an eine bereits laufende lokale SitzungVom Smartphone aus etwas fragen und eine Antwort im Chat erhalten; einen Webhook von CI abfangen

Der wichtigste Unterschied zwischen Channels und Remote Control: Remote Control bedeutet „Dein Smartphone als Fenster ins Terminal“ – du siehst tatsächlich den Cursor und drückst Tasten. Channels ist ein Chatbot, dessen Gehirn deine lokale Claude-Sitzung ist. Mit Remote Control schaue ich aufs Terminal. Mit Channels schreibe ich jemandem, der meine Dateien liest.

Wenn du die volle Kontrolle über den Bildschirm brauchst, verwende Remote Control. Wenn du „eine Frage senden, den Tag weitergehen lassen und eine Antwort erhalten“ möchtest, verwende Channels. Ich nutze beides: Remote Control, wenn ich kritische Änderungen freigeben muss, und Channels, wenn ich der Aufgabe vertraue und meinen Abend zurückhaben möchte.

Was du vor dem Start brauchst

Das Wichtigste

Claude Code v2.1.80 oder neuer, unterstützte claude.ai-Anmeldung oder Anthropic-Console-API-Schlüssel, installiertes Bun und Zugriff auf Telegram. Für den 24/7-Betrieb brauchst du einen VPS mit Ubuntu oder Debian. Auf macOS, Linux und WSL funktioniert alles gleich.

Bevor du mit den Befehlen loslegst, prüfe diese Liste:

  1. Anthropic-Konto. Du brauchst Pro, Max, Team oder Enterprise. Channels ist im kostenlosen Tarif nicht verfügbar. Ein Anthropic-Console-API-Schlüssel funktioniert ebenfalls. Verwendet die Console-Organisation verwaltete Einstellungen, prüfe die dortige Channelfreigabe.
  2. Claude Code v2.1.80 oder neuer. Prüfe die Version mit claude --version. Ist sie älter, aktualisiere mit claude update oder npm install -g @anthropic-ai/claude-code@latest.
  3. Bun. Channels-Plugins sind Bun-Skripte, keine Node-Skripte. Prüfe mit bun --version. Falls Bun nicht installiert ist, führe curl -fsSL https://bun.sh/install | bash und anschließend source ~/.bashrc aus.
  4. Telegram-Konto. Jedes Konto ist geeignet; wichtig ist nur, dass du auf deinem Smartphone angemeldet bist.
  5. Wenn du einen Team-/Enterprise-Tarif hast, bitte deinen Admin, channelsEnabled in den verwalteten Einstellungen oder unter admin-settings/claude-code zu aktivieren. Bei Organisationen ist es standardmäßig deaktiviert.

Mach dir keine Gedanken über Bun, falls du den Namen zum ersten Mal siehst. Bun ist eine alternative JavaScript-Laufzeitumgebung, ähnlich wie Node. Anthropic hat sie für Channels-Plugins ausgewählt, weil sie schneller startet und sich leichter in eine einzelne Binärdatei verpacken lässt. Einmal installieren und dann vergessen.

⚠️ Channels funktioniert noch nicht mit Corporate Bedrock / Google Vertex / Azure Foundry. Es funktioniert nur mit claude.ai-Authentifizierung oder Anthropic Console.

Schritt 1. Erstelle über BotFather einen Telegram-Bot

Das Wichtigste

Öffne @BotFather in Telegram, sende den Befehl /newbot, wähle einen Namen und Benutzernamen (der Benutzername muss mit bot enden) und erhalte ein Token im Format 12345678:AAH.... Bewahre das Token sicher auf: Es ist das Passwort für deinen Bot. Wer es sieht, kann als Bot schreiben und möglicherweise deine Nachrichten an Claude abfangen.

BotFather erledigt die ganze Arbeit für dich – du musst nur fünfmal tippen. So gehst du vor:

  1. Öffne @BotFather in Telegram (du kannst dein Smartphone verwenden; auch die restliche Einrichtung lässt sich dort erledigen).
  2. Tippe auf „Start“, falls du BotFather zum ersten Mal verwendest.
  3. Sende den Befehl /newbot.
  4. BotFather fragt: „Alright, a new bot. How are we going to call it?“ Gib den Anzeigenamen ein, zum Beispiel Mein Assistent - Claude Code.
  5. Als Nächstes fragt BotFather nach einem Benutzernamen. Er muss in ganz Telegram eindeutig sein und mit bot enden. Zum Beispiel my_claude_bot oder my_dev_bot.
  6. BotFather antwortet mit einer Nachricht wie dieser:
Done! Congratulations on your new bot. You will find it at
'<OFFICIAL_URL>'.

Use this token to access the HTTP API:
1234567890:AAHzlAU...

Keep your token secure and store it safely, it can be used by anyone to control your bot.

Kopiere das Token. Du brauchst es in zwei Minuten.

⚠️ Token-Sicherheit. Das Bot-Token gibt die vollständige Kontrolle über den Bot. Wenn es bekannt wird, kann jeder als dein Bot schreiben und (möglicherweise) die Nachrichten abfangen, die du an Claude sendest. Veröffentliche es nicht in Repositories, füge es nicht in Code ein und sende es nicht in Chats. Ich speichere Tokens unter ~/.claude/channels/telegram/.env; das Plugin legt die Datei im nächsten Schritt dort ab.

Schritt 2. Installiere das Telegram-Plugin in Claude Code

Das Wichtigste

Starte Claude Code wie gewohnt und gib dann in der Sitzung /plugin install telegram@claude-plugins-official ein. Wenn das Plugin nicht gefunden wird, füge zuerst den offiziellen Marketplace mit /plugin marketplace add anthropics/claude-plugins-official hinzu. Führe nach der Installation /reload-plugins aus, damit die Plugin-Befehle in der aktuellen Sitzung aktiviert werden.

Öffne ein Terminal in einem beliebigen Ordner, in dem du üblicherweise mit Claude arbeitest, und führe Folgendes aus:

claude

Gib in der Sitzung den Slash-Befehl ein:

/plugin install telegram@claude-plugins-official

Wenn Claude mit „Plugin not found in any marketplace“ antwortet, kennt dein Client den offiziellen Marketplace nicht. Füge ihn hinzu:

/plugin marketplace add anthropics/claude-plugins-official

Oder aktualisiere ihn, falls du ihn bereits früher hinzugefügt hast:

/plugin marketplace update claude-plugins-official

Lade nach erfolgreicher Installation die Plugins neu, um ihre Befehle zu aktivieren:

/reload-plugins

Nun solltest du Slash-Befehle wie /telegram:configure und /telegram:access haben. Gib zur Überprüfung /help ein; die Liste sollte einen Telegram-Abschnitt enthalten.

Schritt 3. Verknüpfe das Token mit dem Plugin

Das Wichtigste

Gib in der Claude-Sitzung /telegram:configure <token> mit dem Token aus Schritt 1 ein. Der Befehl speichert es unter ~/.claude/channels/telegram/.env (nur für deinen Benutzer zugänglich). Alternativ kannst du die Umgebungsvariable TELEGRAM_BOT_TOKEN in der Shell setzen, bevor du Claude startest. In der Produktionsumgebung verwende ich die zweite Option: Sie lässt sich einfacher über systemd verwalten und vermeidet, dass ~/.claude/ ins Repository übernommen wird.

In der Claude-Sitzung:

/telegram:configure 1234567890:AAHzlAU...

Der Befehl legt das Token unter ~/.claude/channels/telegram/.env ab. Die Datei ist nur für deinen Benutzer zugänglich (chmod 600), du musst dir also keine Sorgen machen.

Alternativ kannst du das Token über eine Umgebungsvariable setzen. Das ist nützlich, wenn du Claude mit systemd oder Docker bereitstellst und keine interaktiven Befehle verwenden möchtest:

export TELEGRAM_BOT_TOKEN="1234567890:AAHzlAU..."
claude --channels plugin:telegram@claude-plugins-official

⚠️ In der Produktionsumgebung verwende ich immer Umgebungsvariablen statt einer .env-Datei in meinem Home-Verzeichnis ~/. So lassen sich Geheimnisse einfacher über systemd verwalten (Environment=TELEGRAM_BOT_TOKEN=...), und du vermeidest, dass ~/.claude/ versehentlich ins Repository übernommen wird.

Schritt 4. Starte Claude mit dem Flag --channels neu

Das Wichtigste

Beende die Sitzung (exit oder Ctrl+D) und starte Claude anschließend erneut mit dem Flag --channels plugin:telegram@claude-plugins-official. Dieses Flag aktiviert das Plugin und weist Claude an, die Telegram-API auf neue Nachrichten abzufragen. Ohne das Flag existiert der Bot, bleibt aber stumm – das Plugin ist inaktiv und die Abfragen haben noch nicht begonnen.

Das ist der wichtigste Punkt und der, über den alle beim ersten Versuch stolpern. Das Plugin allein zu installieren, reicht nicht. Damit der Bot tatsächlich Nachrichten empfängt, musst du Claude mit einem expliziten Flag starten:

claude --channels plugin:telegram@claude-plugins-official

Ohne das Flag funktioniert die Sitzung wie gewohnt, aber das Telegram-Plugin ist inaktiv. Mit dem Flag startet Claude den MCP-Server des Plugins, beginnt die Telegram-API abzufragen und antwortet auf Nachrichten, die an den Bot gesendet werden.

Nach dem Start solltest du im Terminal ungefähr Folgendes sehen:

✻ Welcome to Claude Code 2.1.80
  Channels: telegram@claude-plugins-official (active)
  Polling for messages...

Wenn keine Zeile zu Channels erscheint, wurde das Flag nicht erkannt. Prüfe, ob Claude Code Version 2.1.80+ hat und das Plugin tatsächlich installiert ist (/plugin list innerhalb der Sitzung).

⚠️ Praktischer Tipp. Ich habe in ~/.zshrc einen Alias angelegt:

alias claude-tg="claude --channels plugin:telegram@claude-plugins-official"

Dann führe ich einfach claude-tg aus. Du kannst mehrere Plugins durch Leerzeichen getrennt angeben: --channels plugin:telegram@... plugin:discord@....

Schritt 5. Kopple das Konto und sperre alle anderen aus

Das Wichtigste

Öffne deinen Bot in Telegram und sende eine beliebige Nachricht. Der Bot antwortet mit einem sechsstelligen Kopplungscode. Wechsle zurück zum Terminal und gib /telegram:access pair <code> ein. Beschränke danach unbedingt den Zugriff mit einer Allowlist: /telegram:access policy allowlist. Bestätige nur Kopplungscodes der vorgesehenen Personen. Die Absender-Allowlist steuert, wer deine Sitzung erreichen kann.

Hier geht es um Sicherheit: Ein genehmigter Absender kann Claude um Aktionen mit den verfügbaren Dateien und Tools bitten. Kopple nur das vorgesehene Konto und begrenze die Absenderpolitik, bevor du dich auf den Bot verlässt.

Die Schritte:

  1. Öffne deinen Bot in Telegram. Suche ihn über den Benutzernamen @my_claude_bot oder über den Link in BotFathers Antwort. Tippe auf „Start“.
  2. Sende dem Bot eine beliebige Nachricht. Zum Beispiel hi.
  3. Der Bot antwortet mit einem Kopplungscode. Er sieht ungefähr so aus:
Hi! To pair this account, run in your Claude Code session:
/telegram:access pair 847291

This code is valid for 5 minutes.
  1. Wechsle zurück zum Terminal. Gib in deiner Claude-Sitzung den Befehl aus der Antwort ein:
/telegram:access pair 847291

Claude antwortet: „Account paired.“ Nun kann dein Telegram-Konto Befehle senden.

  1. Aktiviere die Allowlist-Richtlinie. Damit werden alle Konten ausgeschlossen, die nicht bereits gekoppelt wurden:
/telegram:access policy allowlist

Danach werden Nachrichten von anderen Konten still ignoriert. Sie erscheinen nicht im Terminal und der Bot antwortet nicht – als hätten sie nie existiert.

⚠️ Aktiviere und prüfe die Absender-Allowlist direkt beim Aufbau. Bestätige keine unbekannten Kopplungsanfragen. Eine erfolgreiche Antwort allein belegt keine korrekte Absenderpolitik.

Wenn du jemand anderen hinzufügen musst (zum Beispiel einen Projektpartner):

/telegram:access pair <code vom konto der anderen person>

Die Person sollte dem Bot zuerst schreiben, einen Code erhalten und ihn an dich weitergeben. Nur so kannst du sie hinzufügen.

Weitere Anleitungen findest du in der Ailoot-Dokumentation.

So betreibst du Claude rund um die Uhr auf deinem eigenen VPS

Das Wichtigste

Eine lokale Sitzung läuft, solange dein Laptop geöffnet ist; schließt du den Deckel, verstummt der Bot. Damit Claude jederzeit antwortet, verlegst du die Sitzung auf deinen eigenen VPS: Installiere Claude Code und Bun, melde dich als derselbe Dienstbenutzer an, installiere und kopple dort das Plugin und richte systemd ein. Ein Coolify-Server bewältigt das problemlos.

Wenn der Bot „rund um die Uhr leben“ soll, statt „Laptop eine Stunde aufklappen und damit herumspielen“, muss die Sitzung dauerhaft laufen. Lokal kannst du dafür tmux nutzen, aber ein VPS ist einfacher und zuverlässiger.

Ein Beispiel-Setup nutzt einen Coolify-VPS, auf dem auch eine Website gehostet wird (Details in der Anleitung zum Veröffentlichen über Coolify). Du kannst denselben Server nutzen – Claude braucht wenig Speicher. Wenn du keinen VPS hast, nimm den günstigsten für 4–5 Euro im Monat, zum Beispiel Hetzner CX11 / Yandex Cloud / Selectel.

Schritt 1: Installiere das System auf dem VPS

Erstelle als Administrator zuerst ein eigenes Unix-Konto samt Arbeitsverzeichnis. Verwende ein bestehendes Konto erst nach Prüfung von Home und Eigentümern:

sudo useradd --create-home --shell /bin/bash claude
sudo install -d -o claude -g claude /home/claude/workspace
sudo -iu claude

Fahre in dieser claude-Login-Shell fort, nicht im Root-Home. Installiere Bun offiziell und Claude Code über den nativen Installationsweg:

curl -fsSL https://bun.sh/install | bash
curl -fsSL https://claude.ai/install.sh | bash

Öffne eine frische Login-Shell desselben Benutzers, damit PATH-Änderungen gelten. Prüfe Konto und Programmdateien:

whoami
printf '%s\n' "$HOME"
command -v bun
command -v claude
bun --version
claude --version
cd /home/claude/workspace
claude

whoami muss claude, HOME muss /home/claude anzeigen. Erfasse absolute command -v-Pfade: Der echte Claude-Pfad gehört in ExecStart, der Bun-Ordner in den Dienst-PATH. Stoppe bei fehlender Programmdatei.

Schritt 2: Als Dienstbenutzer anmelden, installieren und koppeln

Schließe in derselben interaktiven claude-Sitzung die Anmeldung ab. Wiederhole die obigen Schritte 2–5 unter diesem Unix-Benutzer: Telegram-Plugin im Benutzerbereich installieren, Token konfigurieren, mit --channels neu starten, Telegram-Konto koppeln und policy allowlist setzen. Prüfe Nachricht und Antwort vor dem Dienst. Kopiere keine Root-Konfiguration oder Zugangsdaten in dieses Home.

Sowohl claude.ai-Aboanmeldung als auch Anthropic-Console-API-Schlüssel sind unterstützt. Team/Enterprise brauchen Organisationsfreigabe; verwaltete Console-Organisationen müssen ebenfalls passende Channeleinstellungen erfüllen. Console-Zugang wird über die API abgerechnet, nicht über das claude.ai-Abo. Behalte Konto und Anmeldung beim Wechsel von Shell zum Dienst bei.

Schritt 3: Richte die Sitzung mit systemd ein

Verlasse die Dienstbenutzer-Shell und erstelle als Administrator die Unit. Das Beispiel setzt die geprüften Pfade /home/claude/.local/bin/claude und /home/claude/.bun/bin/bun voraus. Ersetze sie bei abweichenden tatsächlichen Ausgaben. Übergib dieselbe gewählte Authentifizierungsumgebung und das Bottoken. Halte die Unit nur für ihren Administrator lesbar und committe keine Geheimnisse. Erstelle die Datei für automatischen Start und Neustart:

cat > /etc/systemd/system/claude-code.service <<'EOF'
[Unit]
Description=Claude Code with Telegram channel
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=claude
WorkingDirectory=/home/claude/workspace
Environment="HOME=/home/claude"
Environment="TELEGRAM_BOT_TOKEN=1234567890:AAH..."
Environment="PATH=/home/claude/.local/bin:/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"
ExecStart=/home/claude/.local/bin/claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable claude-code
systemctl start claude-code

Folgende Einstellungen habe ich aktiviert:

  • Type=simple – einfacher Modus; systemd betrachtet den Prozess direkt nach dem Start als gestartet.
  • User=claude – läuft unter einem eigenen Benutzer statt als root. Das ist sicherer.
  • WorkingDirectory=/home/claude/workspace – vorbereitetes Arbeitsverzeichnis des Dienstbenutzers. Lege das beabsichtigte Repository dort vor dem Start ab. Hinterlasse keinen Root-eigenen Klon und starte nicht aus dem Root-Home.
  • Environment=TELEGRAM_BOT_TOKEN=... – das Token wird direkt an den Prozess übergeben. Eine .env-Datei ist nicht nötig.
  • --dangerously-skip-permissions – entscheidend für den unbeaufsichtigten Betrieb. Ohne dieses Flag wartet Claude vor jeder Aktion im Terminal auf dein „Ja/Nein“, und die Sitzung bleibt hängen. Die Allowlist identifiziert Absender, macht deren Befehle aber nicht sicher. Nutze diesen Bypass nur isoliert mit bewusst begrenzten Dateien, Zugangsdaten und Netzwerkzugriff.
  • Restart=on-failure – falls der Prozess abstürzt (Claude stürzt ab oder das Netzwerk fällt aus), startet systemd ihn nach 10 Sekunden erneut.

Protokolle kannst du so ansehen:

journalctl -u claude-code -f

Wenn etwas schiefläuft, zeigt journalctl -u claude-code -n 100 die letzten 100 Zeilen.

Schritt 4: Prüfe, ob der Bot erreichbar ist

Starte den Dienst erst nach einer tatsächlichen Telegram-Antwort im interaktiven Aufbau. Sende dann demselben Bot vom gekoppelten Konto eine harmlose Nachricht und prüfe Antwort und Dienstprotokolle. Klappt es interaktiv, aber nicht unter systemd, vergleiche zuerst Unix-Benutzer, HOME, Arbeitsverzeichnis, Programmpfad, PATH und Anmeldungsumgebung.

Für spätere Kopplungsänderungen stoppe den Dienst, führe sudo -iu claude aus, gehe nach /home/claude/workspace und starte denselben Channel interaktiv. Kopple das Konto und aktiviere die Allowlist dort, beende die Sitzung und starte den Dienst erneut. Starte keinen zweiten Poller desselben Bots zugleich. journalctl liest Logs und stellt keinen interaktiven Claude-Prompt bereit.

5 Stolperfallen auf einem Produktionsserver und wie du sie vermeidest

Das Wichtigste

Ich habe die Stolperfallen aus einer Woche Produktionskonfiguration gesammelt: Bun ist für systemd nicht sichtbar, Long Polling bricht nach langer Inaktivität ab, die Limits des Max-Tarifs sind mitten am Tag ausgeschöpft, --dangerously-skip-permissions kann Daten preisgeben und nach einer Neuinstallation wird die Allowlist vergessen. Jede Falle lässt sich mit einer einzigen Einstellung beheben. Wenn du sie aber nicht kennst, wirst du innerhalb weniger Tage darüber stolpern.

1. Bun ist nicht im PATH von systemd

systemd startet Prozesse mit einer minimalen Umgebung: Variablen aus ~/.bashrc sind darin nicht verfügbar. Ist Bun nur im Root-Home installiert, während die Unit User=claude nutzt, erbt der Dienst weder diese Installation noch Roots Shell-PATH.

Lösung. Installiere Bun entweder systemweit (/usr/local/bin/bun) oder gib PATH explizit an:

Environment="PATH=/home/claude/.bun/bin:/usr/local/bin:/usr/bin:/bin"

2. Die TCP-Verbindung der Sitzung zur Telegram-API geht nach langer Inaktivität verloren

Nach 6–12 Stunden Inaktivität kann der Bot „verstummen“ – Nachrichten werden an Telegram gesendet, aber das Plugin empfängt sie nicht. Das ist eine Eigenheit von Long Polling.

Lösung. Füge systemd einen regelmäßigen Neustart hinzu (alle 24 Stunden):

Restart=always
RuntimeMaxSec=86400

Oder richte einen Cron-Job ein: 0 5 * * * systemctl restart claude-code (Neustart um 5 Uhr morgens).

3. Die Claude-Max-Limits sind mitten am Tag ausgeschöpft

Wenn du Claude intensiv über Telegram nutzt, kann das Limit bei einem Max-5x-Tarif (~$100/Monat) nach 4–6 Stunden erreicht sein. Telegram-Anfragen unterscheiden sich nicht von Anfragen in einem normalen Terminal; sie werden aus demselben Kontingent bezahlt.

Lösung. Richte eine Erinnerung ein: „Der Bot antwortet nicht – prüfe /stats.“ Wenn du das Limit erreichst, warte entweder auf die Zurücksetzung oder wechsle zu Max 20x ($200/Monat). Die Anleitung zum Tokensparen und die Anleitung zu Sonnet- und Opus-Modellen könnten helfen.

4. --dangerously-skip-permissions ist auch mit einer Allowlist gefährlich

Dieses Flag deaktiviert alle Bestätigungen. Jeder Befehl von dir auf Telegram wird ohne Rückfrage ausgeführt: Dateien löschen, externe Anfragen senden, alles. Einmal bat ich Claude, „unnötige console.log-Anweisungen zu entfernen“, und beim eifrigen Aufräumen löschte Claude die Hälfte der Debug-Protokolle in einem Produktionsskript. Ich stellte sie über git wieder her, aber der Schaden war angerichtet.

Lösung. Aktiviere --dangerously-skip-permissions nicht, wenn du an einem kritischen Projekt arbeitest. Verwende stattdessen Remote Control, um Sitzungen auszuführen – Berechtigungsanfragen kommen auf dein Smartphone, und du kannst sie manuell freigeben. Channels mit --dangerously-skip-permissions eignet sich für Entwürfe, Refactoring und Tests.

5. Die Allowlist „funktioniert“ nach einer Neuinstallation nicht mehr

Die Allowlist wird unter ~/.claude/channels/telegram/ gespeichert. Wenn du auf einen neuen VPS wechselst, Claude neu installierst oder Benutzer änderst, werden die alten Kopplungsdaten nicht übernommen. Die alte Absender-Allowlist fehlt. Unterstelle nicht dieselbe Zugriffspolitik der neuen Instanz.

Lösung. Sichere vor dem Umzug ~/.claude/channels/telegram/. Verschiebe den Ordner danach zurück. Oder kopple nach der Neuinstallation erneut und lass zwischen dem Start des Bots und der Einstellung von policy allowlist keine einzige Minute vergehen.

Channels oder Remote Control – was solltest du wählen?

Das Wichtigste

Mit Channels antwortet deine Claude-Sitzung im Chat, und du sendest Prompts von deinem Smartphone. Mit Remote Control ist dein Terminalbildschirm auf deinem Smartphone, und du bedienst die Sitzung mit Schaltflächen. Channels ist bequemer für „fragen und weitermachen“, während Remote Control für kritische Schritte gedacht ist, bei denen du sehen musst, was Claude tut, und jede riskante Aktion freigeben möchtest.

Anthropic veröffentlichte beide Funktionen fast gleichzeitig: Remote Control am 25. Februar 2026 und Channels am 20. März 2026. Sie sind keine Duplikate, sondern lösen unterschiedliche Probleme.

SzenarioChannelsRemote Control
Unterwegs fragen: „Welche Commits gab es gestern?“✅ IdealÜbertrieben – du brauchst den ganzen Bildschirm
Eine Dateiänderung freigeben⚠️ Blinde Freigabe über --dangerously-skip-permissions✅ Du siehst, was Claude tun möchte
Claude rund um die Uhr ausführen✅ VPS + systemd-Einrichtung⚠️ Erfordert einen geöffneten Laptop
Nur ein paar Prompts vom Smartphone senden⚠️ Übertrieben – Bot, Token, Plugin✅ Ein QR-Code
Einen Webhook von CI / Sentry abfangen✅ Nativer Anwendungsfall❌ Dafür ungeeignet
Team mit mehreren Personen✅ Allowlist für mehrere Konten⚠️ Nur der Sitzungsinhaber
Dateien aus der Anthropic-Cloud heraushalten✅ Nur Text über MCP✅ Ebenfalls nur Text

So teile ich die Funktionen für mich ein: Channels für asynchrone Arbeit, wenn ich nicht am Laptop bin, für CI-Benachrichtigungen und Integrationen. Remote Control, wenn ich sehen muss, was Claude tut, oder einen riskanten Schritt freigeben möchte.

Du kannst beides gleichzeitig verwenden. Der Telegram-Bot bietet dir einen schnellen Kanal zum „Fragen und Antworten bekommen“; Remote Control ist für die „Steuerung kritischer Dinge“. Beide verwenden dasselbe Claude-Limit.

FAQ

Das Wichtigste

Sieben häufige Fragen zu Channels: mehrere Bots verbinden, was passiert, wenn du das Terminal schließt, Webhooks von CI, Telegram im Vergleich zu Discord, Einschränkungen beim Team-Tarif, was Claude von deinem Smartphone aus sehen kann und der kostenlose Tarif. Weitere Materialien findest du in der Ailoot-Dokumentation.

Kann ich mehrere Bots gleichzeitig verbinden?

Ja. Das Flag --channels akzeptiert eine durch Leerzeichen getrennte Liste: --channels plugin:telegram@claude-plugins-official plugin:discord@claude-plugins-official. Eine Claude-Sitzung antwortet in beiden Chats.

Was passiert, wenn ich das Terminal schließe?

Die Sitzung wird beendet, das Plugin stoppt und der Bot verstummt. Auf einem VPS läuft die Sitzung in systemd weiter. Auf einem lokalen Rechner schließe den Laptop, und claude wird nach wenigen Sekunden durch SIGHUP getrennt.

Kann ich Benachrichtigungen von CI oder Sentry erhalten?

Ja. Channels ist ein bidirektionaler Kanal. Du kannst dein eigenes Plugin schreiben, um Webhooks mit der Channels-Referenz an die Sitzung weiterzuleiten. Claude sieht Ereignisse in Echtzeit und antwortet.

Ist Telegram in irgendeiner Hinsicht stärker eingeschränkt als Discord?

Die grundlegenden Funktionen sind gleich. Für Discord muss Message Content Intent in den Bot-Einstellungen aktiviert sein. iMessage funktioniert nur auf macOS und liest die Datenbank ~/Library/Messages/chat.db direkt aus. Telegram funktioniert überall.

Was muss ich tun, wenn ich einen Team-Tarif habe?

Der Admin der Organisation muss channelsEnabled: true in den verwalteten Einstellungen oder unter admin-settings/claude-code aktivieren. Andernfalls verbindet sich das Plugin zwar, aber Nachrichten werden nicht durchgeleitet – im Terminal erscheint eine Warnung beim Start.

Was kann Claude von meinem Smartphone aus sehen – etwa den Telegram-Chat selbst?

Nein. Claude sieht nur die Nachricht, die du dem Bot gesendet hast. Dein Telegram-Unterhaltungsverlauf, deine Chatliste und deine Kontakte sind nicht zugänglich. Das MCP-Plugin liest ausschließlich Nachrichten an den Bot über die Telegram-Bot-API.

Kann ich Claude über Channels ohne Pro-/Max-Abonnement ausführen?

Ja, auch ein Anthropic-Console-API-Schlüssel ist unterstützt und wird der Console-Organisation als API-Nutzung berechnet. Der kostenlose claude.ai-Tarif ist nicht der hier beschriebene Aboweg. Team/Enterprise und verwaltete Console-Organisationen müssen Channelfreigaben erfüllen.

Wie geht es weiter?

Das Wichtigste

Der Bot ist eingerichtet, die Allowlist aktiviert und die Sitzung läuft auf einem VPS. Als Nächstes integrierst du Channels in deinen Alltag: Verbinde Webhooks von GitHub Actions und Sentry, kombiniere Channels mit Routines für regelmäßige Aufgaben und richte eine Zustandsüberwachung für den Bot ein. Jeder Schritt dauert 15–30 Minuten und schließt eine Lücke bei der Überwachung.

Sobald der Bot zuverlässig läuft, kannst du mit den folgenden Schritten das meiste aus Channels herausholen:

  1. Verbinde Webhooks von CI. Wenn du GitHub Actions / GitLab CI nutzt, kannst du das Channels-Plugin so konfigurieren, dass es Build-Ergebnisse direkt an die Sitzung weiterleitet. Claude sieht „Test fehlgeschlagen“ direkt nach einem Push und schlägt eine Lösung vor. Siehe die Dokumentation zur channels-reference.
  2. Kombiniere es mit Routines. Du kannst Routines für regelmäßige Aufgaben in derselben Sitzung ausführen. Am Morgen sendet der Bot von selbst „Guten Morgen, hier ist die Projektzusammenfassung“, und du antwortest von deinem Smartphone aus: „Erstelle einen Umsatzbericht.“
  3. Richte eine Bot-Überwachung ein. Wenn der Bot verstummt, möchte ich davon erfahren. Ein kleines Cron-Skript auf dem VPS pingt den Telegram-Bot einmal pro Stunde an. Wenn der Bot nicht antwortet, sendet es eine Warnung an einen separaten Kanal. Ohne diese Überwachung könnte der Bot um 4 Uhr morgens ausfallen, ohne dass du es bis Mittag bemerkst.
  4. Ziehe Hooks in Betracht. Hooks reagieren auf Claude-Ereignisse (Tool gestartet, Nachricht beendet). Hooks und Channels zusammen ermöglichen automatische Telegram-Benachrichtigungen wie „Claude hat Aufgabe N beendet.“

Versuche nicht, Channels überall einzubauen. Es ist eine bequeme Möglichkeit, unterwegs oder im Café den Stand einer Aufgabe einzuholen. Wenn du richtig nachdenken musst, klappe den Laptop auf und setz dich hin. Channels befreit deinen Kopf von dem Gedanken „Oh, ich muss Claude noch darum bitten; dafür muss ich den Laptop aufklappen“, wenn du unterwegs bist.

Weitere Materialien zur Arbeit mit Tools findest du in der Ailoot-Dokumentation.

Weitere Details

Fragen und Antworten

Warum funktioniert der Telegram-Bot manuell, aber nicht als Dienst?

Vergleiche Unix-Benutzer, HOME, Arbeitsverzeichnis, Claude-Programmpfad, Bun-PATH und Authentifizierungsumgebung mit dem erfolgreichen interaktiven Lauf. Installiere, konfiguriere und kopple unter demselben Dienstbenutzer. Roots Plugin- und Kopplungszustand sind eine andere Konfiguration.

Kann ein Console-API-Schlüssel Pro- oder Max-Anmeldung für Channels ersetzen?

Ja. Anthropic-Console-API-Anmeldung wird unterstützt und über Console-API-Abrechnung bezahlt. Prüfe erforderliche Organisationsfreigaben und erledige Tokenkonfiguration, Kopplung und Absender-Allowlist unter dem tatsächlich ausführenden Konto.

Alle Artikel