# Claude Code in 2026 via Telegram vanaf je telefoon bedienen

> Stap voor stap: maak een Telegram-bot aan, installeer de Claude Code Channels-plug-in, beveilig deze met een toelatingslijst en laat hem 24/7 draaien op een VPS. Een handleiding die je direct met de opdrachten kunt volgen.

Source: https://ailoot.ai/blog/nl/claude-code-telegram-channels/
Canonical: https://ailoot.ai/blog/nl/claude-code-telegram-channels/
Language: nl
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-054
Revision: sha256-ee684d52973b52eb66639cf1f5965ce814d988f048e938e15e468510bfa4ab4c


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Claude Code Channels is vanaf 20 maart 2026 de officiële plug-in van Anthropic. Maak een bot aan via BotFather, installeer de plug-in met één opdracht, start Claude opnieuw met de vlag `--channels` en stuur vanaf je telefoon berichten naar de bot. Claude leest ze rechtstreeks in je lokale sessie, schrijft code naar je bestanden en antwoordt in Telegram. Als je het 24/7 wilt laten werken, verplaats je de sessie met systemd naar je eigen VPS.

</div>

Meer materiaal over het configureren van tools vind je in de [Ailoot-documentatie](https://ailoot.ai/docs/).

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Ailoot Guides">

[Ailoot Guides](https://ailoot.ai/docs/)

</div>

## Wat Claude Code Channels is en waarom je het nodig hebt

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Channels is een MCP-plug-in die berichten van Telegram, Discord of iMessage doorstuurt naar een al actieve Claude Code-sessie. De sessie ziet het bericht als een gewone gebruikersvraag, werkt met je lokale bestanden en antwoordt in dezelfde chat. Je laptop blijft aan terwijl jij met je telefoon je eigen gang gaat.

</div>

Op 20 maart 2026 bracht Anthropic Claude Code Channels uit, een officiële plug-in om een Claude-sessie met berichtenapps te verbinden. Telegram, Discord en iMessage worden ondersteund. De functie is beschikbaar als onderzoeksvoorvertoning: de documentatie staat op [code.claude.com/docs/en/channels](https://code.claude.com/docs/en/channels) en de broncode van de plug-in staat in de openbare repository [anthropics/claude-plugins-official](https://github.com/anthropics/claude-plugins-official).

Kort gezegd is het een ‘chatbrug’ tussen je telefoon en je Claude Code-sessie. Ik stuur de bot een bericht: “Ga verder met het herschrijven van de prijstabel; werk in `business/products/practicum/README.md` de datums voor de volgende lichting bij,” en de bot stuurt het bericht door naar de sessie op mijn VPS. Claude haalt de context op, bewerkt het bestand, commit de wijzigingen en antwoordt in Telegram: “Klaar, controleer de commit.” De laptop blijft thuis dicht.

⚠️ **De belangrijkste beperking van de onderzoeksvoorvertoning:** Channels is een MCP-brug. De sessie moet op je computer of VPS actief zijn. Als de sessie is afgesloten, ontvangt niemand berichten. Daarom moet je 24/7-beschikbaarheid apart configureren (zie het VPS-gedeelte hieronder).

### Waarin Channels verschilt van andere manieren om op afstand te werken

Anthropic geeft in de [officiële documentatie](https://code.claude.com/docs/en/channels) een directe vergelijkingstabel. Hieronder staat een bewerking daarvan:

| Functie | Wat doet het | Wanneer kies je het |
|----|----|----|
| **Claude Code on the web** | Voert een taak uit in een nieuwe cloudsandbox en kloont een repository van GitHub | Een zelfstandige achtergrondtaak delegeren en later bekijken |
| **Slack-integratie** | Start een websessie in een thread wanneer `@Claude` wordt genoemd | Taken rechtstreeks vanuit teamgesprekken starten |
| **MCP-server (standaard)** | Claude roept de server tijdens een taak aan; deze stuurt niets naar de sessie | Claude op aanvraag toegang geven tot externe systemen |
| **Remote Control** | Je bedient een lokale sessie via claude.ai of de mobiele app | Een bestaande sessie vanaf je telefoonscherm bedienen |
| **Channels** ⭐ | Stuurt gebeurtenissen van bronnen buiten Claude naar een al actieve lokale sessie | Iets vragen vanaf je telefoon en antwoord krijgen in de chat; een webhook van CI ontvangen |

Het belangrijkste verschil tussen Channels en Remote Control: **Remote Control** is ‘je telefoon als venster op de terminal’ — je ziet letterlijk de cursor en drukt op knoppen. **Channels** is een chatbot waarvan de hersenen je lokale Claude-sessie zijn. Met Remote Control kijk ik naar de terminal. Met Channels stuur ik een bericht naar iemand die mijn bestanden leest.

Als je volledige controle vanaf het scherm nodig hebt, gebruik dan Remote Control. Wil je ‘een vraag sturen, verdergaan met je dag en later antwoord krijgen’, gebruik dan Channels. Ik gebruik ze allebei: Remote Control wanneer ik kritieke wijzigingen moet goedkeuren, en Channels wanneer ik vertrouwen heb in de taak en mijn avond terug wil.

## Wat je nodig hebt voordat je begint

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Claude Code v2.1.80 of hoger, ondersteunde claude.ai-authenticatie of een Anthropic Console-API-sleutel, geïnstalleerde Bun en toegang tot Telegram. Voor 24/7-gebruik heb je een VPS met Ubuntu of Debian nodig. Alles werkt hetzelfde op macOS, Linux en WSL.

</div>

Controleer deze lijst voordat je aan de opdrachten begint:

1. **Anthropic-account.** Voor de claude.ai-abonnementsroute gebruik je Pro, Max, Team of Enterprise; de gratis chatlaag biedt die route niet. Console-API-toegang is een aparte ondersteunde route. Een Anthropic Console-API-sleutel werkt ook; gebruikt de Console-organisatie beheerde instellingen, controleer dan of kanalen daar zijn ingeschakeld.
2. **Claude Code v2.1.80 of hoger.** Controleer dit met `claude --version`. Is je versie ouder, werk dan bij met `claude update` of `npm install -g @anthropic-ai/claude-code@latest`.
3. **Bun.** Channels-plug-ins zijn Bun-scripts, geen Node-scripts. Controleer dit met `bun --version`. Is Bun niet geïnstalleerd, voer dan `curl -fsSL https://bun.sh/install | bash` uit en daarna `source ~/.bashrc`.
4. **Telegram-account.** Elk account is geschikt; het belangrijkste is dat je op je telefoon bent ingelogd.
5. **Gebruik je een Team/Enterprise-abonnement,** vraag dan je beheerder om `channelsEnabled` in de beheerde instellingen of via [admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) in te schakelen. Voor organisaties staat dit standaard uit.

Maak je geen zorgen over Bun als je er voor het eerst van hoort. Bun is een alternatief voor de JavaScript-runtime Node. Anthropic heeft het gekozen voor Channels-plug-ins omdat het sneller start en eenvoudiger als één binair bestand kan worden verpakt. Installeer het één keer en je hebt er geen omkijken meer naar.

⚠️ **Channels werkt nog niet met zakelijke Bedrock / Google Vertex / Azure Foundry.** Het werkt alleen met claude.ai-authenticatie of Anthropic Console.

## Stap 1. Maak via BotFather een Telegram-bot aan

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Open @BotFather in Telegram, stuur de opdracht `/newbot`, kies een naam en gebruikersnaam (de gebruikersnaam moet eindigen op `bot`) en ontvang een token in de vorm `12345678:AAH...`. Bewaar het token veilig: het is het wachtwoord van je bot. Iedereen die het ziet, kan namens de bot schrijven en mogelijk je berichten aan Claude onderscheppen.

</div>

BotFather doet al het werk voor je — je hoeft alleen vijf knoppen in te drukken. Dit zijn de stappen:

1. Open [@BotFather](https://t.me/BotFather) in Telegram (je kunt je telefoon gebruiken; de rest van de installatie kan ook op je telefoon).
2. Druk op ‘Start’ als je BotFather voor het eerst gebruikt.
3. Stuur de opdracht `/newbot`.
4. BotFather vraagt: “Alright, a new bot. How are we going to call it?” Voer de weergavenaam in, bijvoorbeeld `Mijn assistent - Claude Code`.
5. Daarna vraagt BotFather om een gebruikersnaam. Die moet uniek zijn op Telegram en eindigen op `bot`. Bijvoorbeeld `my_claude_bot` of `my_dev_bot`.
6. BotFather antwoordt met een bericht zoals dit:

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

Kopieer het token. Je hebt het over twee minuten nodig.

⚠️ **Tokenbeveiliging.** Met het bot-token krijg je volledige controle over de bot. Als het uitlekt, kan iedereen namens je bot schrijven en mogelijk de berichten onderscheppen die je naar Claude stuurt. Publiceer het niet in repositories, plak het niet in code en stuur het niet in chats. Ik bewaar tokens in `~/.claude/channels/telegram/.env`; de plug-in plaatst het daar in de volgende stap.

## Stap 2. Installeer de Telegram-plug-in in Claude Code

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Start Claude Code zoals gewoonlijk en voer daarna in de sessie `/plugin install telegram@claude-plugins-official` in. Wordt de plug-in niet gevonden, voeg dan eerst de officiële marketplace toe met `/plugin marketplace add anthropics/claude-plugins-official`. Voer na installatie `/reload-plugins` uit om de plug-inopdrachten in de huidige sessie te activeren.

</div>

Open een terminal in een map waarin je gewoonlijk met Claude werkt en voer dit uit:

```bash
claude
```

Voer deze slash-opdracht in de sessie in:

```
/plugin install telegram@claude-plugins-official
```

Als Claude antwoordt met “Plugin not found in any marketplace”, kent je client de officiële marketplace niet. Voeg deze toe:

```
/plugin marketplace add anthropics/claude-plugins-official
```

Of werk de marketplace bij als je die eerder hebt toegevoegd:

```
/plugin marketplace update claude-plugins-official
```

Laad na een geslaagde installatie de plug-ins opnieuw om de opdrachten te activeren:

```
/reload-plugins
```

Je zou nu slash-opdrachten zoals `/telegram:configure` en `/telegram:access` moeten hebben. Controleer dit door `/help` in te voeren; de lijst moet een Telegram-sectie bevatten.

## Stap 3. Koppel het token aan de plug-in

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Voer in de Claude-sessie `/telegram:configure <token>` in met het token uit stap 1. De opdracht slaat het op in `~/.claude/channels/telegram/.env` (alleen toegankelijk voor jouw gebruiker). Je kunt ook vóór het starten van Claude de omgevingsvariabele `TELEGRAM_BOT_TOKEN` in de shell instellen. In productie gebruik ik de tweede optie: die is eenvoudiger te beheren via systemd en voorkomt dat `~/.claude/` in de repository terechtkomt.

</div>

In de Claude-sessie:

```
/telegram:configure 1234567890:AAHzlAU...
```

De opdracht plaatst het token in `~/.claude/channels/telegram/.env`. Alleen jouw gebruiker heeft toegang tot het bestand (`chmod 600`), dus je hoeft je er geen zorgen over te maken.

Je kunt het token ook via een omgevingsvariabele instellen. Dat is handig als je Claude met systemd of Docker uitrolt en geen interactieve opdrachten wilt gebruiken:

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

⚠️ In productie gebruik ik altijd omgevingsvariabelen in plaats van een `.env`-bestand in mijn thuismap, `~/`. Zo zijn geheimen eenvoudiger te beheren via systemd (`Environment=TELEGRAM_BOT_TOKEN=...`) en voorkom ik dat `~/.claude/` per ongeluk in de repository terechtkomt.

## Stap 4. Start Claude opnieuw met de vlag --channels

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Sluit de sessie af (`exit` of `Ctrl+D`) en start Claude vervolgens opnieuw met de vlag `--channels plugin:telegram@claude-plugins-official`. Deze vlag schakelt de plug-in in en laat Claude de Telegram API controleren op nieuwe berichten. Zonder de vlag bestaat de bot wel, maar blijft hij stil: de plug-in is inactief en het ophalen van berichten is niet gestart.

</div>

Dit is het belangrijkste punt en de stap waar de meeste mensen de eerste keer over struikelen. **Alleen de plug-in installeren is niet genoeg.** Om de bot daadwerkelijk berichten te laten ontvangen, moet je Claude met een expliciete vlag starten:

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

Zonder de vlag werkt de sessie zoals gewoonlijk, maar is de Telegram-plug-in inactief. Met de vlag start Claude de MCP-server van de plug-in, begint het de Telegram API te controleren en reageert het op berichten die naar de bot worden gestuurd.

Na het starten zou je ongeveer dit in de terminal moeten zien:

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

Staat er geen regel over channels, dan is de vlag niet opgepikt. Controleer of Claude Code versie 2.1.80+ is en of de plug-in daadwerkelijk is geïnstalleerd (`/plugin list` in de sessie).

⚠️ **Handige tip.** Ik heb een alias toegevoegd aan `~/.zshrc`:

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

Daarna voer ik gewoon `claude-tg` uit. Je kunt meerdere plug-ins door spaties scheiden: `--channels plugin:telegram@... plugin:discord@...`.

## Stap 5. Koppel het account en blokkeer iedereen anders

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Open je bot in Telegram en stuur een bericht. De bot antwoordt met een koppelcode van zes cijfers. Ga terug naar de terminal en voer `/telegram:access pair <code>` in. Beperk vervolgens de toegang met een toelatingslijst: `/telegram:access policy allowlist`. Keur alleen koppelcodes goed van mensen die je wilt toelaten; de afzendertoelatingslijst bepaalt wie de sessie kan bereiken.

</div>

Deze stap gaat over beveiliging. **Een goedgekeurde afzender kan Claude vragen te handelen met de bestanden en tools van de sessie.** Koppel alleen het bedoelde account en leg het afzenderbeleid vast voordat je op de bot vertrouwt.

Stappen:

1. **Open je bot in Telegram.** Zoek hem op gebruikersnaam `@my_claude_bot` of via de link in het antwoord van BotFather. Druk op ‘Start’.
2. **Stuur de bot een bericht.** Bijvoorbeeld `hi`.
3. **De bot antwoordt met een koppelcode.** Die ziet er ongeveer zo uit:

```
Hi! To pair this account, run in your Claude Code session:
/telegram:access pair 847291

This code is valid for 5 minutes.
```

4. **Ga terug naar de terminal.** Voer in je Claude-sessie de opdracht uit het antwoord in:

```
/telegram:access pair 847291
```

Claude antwoordt met “Account paired.” Nu kan je Telegram-account opdrachten sturen.

5. **Schakel het toelatingslijstbeleid in.** Hiermee blokkeer je iedereen behalve accounts die al zijn gekoppeld:

```
/telegram:access policy allowlist
```

Daarna worden berichten van andere accounts **stilzwijgend genegeerd**. Ze verschijnen niet in de terminal en de bot antwoordt niet — alsof ze nooit zijn verstuurd.

⚠️ **Het is heel belangrijk** dat je de toelatingslijst meteen na het koppelen inschakelt. **Stel dit niet uit.** Keur tijdens inrichting geen onbekende koppelverzoeken goed en neem niet aan dat een geslaagd antwoord bewijst dat het afzenderbeleid correct is. De eerste keer draaide mijn bot tien minuten zonder toelatingslijst en stuurden twee willekeurige Telegram-gebruikers in die tijd “hi”. Gelukkig liet ik opdrachten toen geen bestanden wijzigen.

Als je iemand anders wilt toevoegen (bijvoorbeeld een projectpartner):

```
/telegram:access pair <code from their account>
```

Die persoon moet eerst de bot een bericht sturen, een code ontvangen en die aan jou doorgeven. Alleen op die manier kun je iemand toevoegen.

Meer handleidingen vind je in de [Ailoot-documentatie](https://ailoot.ai/docs/).

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Ailoot Guides">

[Ailoot Guides](https://ailoot.ai/docs/)

</div>

## Claude 24/7 op je eigen VPS laten draaien

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Een lokale sessie draait zolang je laptop openstaat; sluit je de klep, dan wordt de bot stil. Als Claude op elk moment moet kunnen antwoorden, verplaats je de sessie naar je eigen VPS: installeer Claude Code en Bun, meld je aan en installeer/koppel de plugin als dezelfde eigen Unix-gebruiker en gebruik systemd met automatische herstarts. Een Coolify-server kan dit zonder problemen aan.

</div>

Als je wilt dat de bot ‘dag en nacht actief’ is in plaats van ‘de laptop een uur openzetten om ermee te prutsen’, moet de sessie actief blijven. Lokaal kan dat met tmux, maar een VPS is eenvoudiger en betrouwbaarder.

Een voorbeeldopstelling gebruikt een Coolify VPS waarop ook een website wordt gehost ([details in de gids over publiceren via Coolify](https://ailoot.ai/blog/nl/coolify-claude-code-deploy/)). Je kunt dezelfde server gebruiken — Claude gebruikt weinig geheugen. Heb je geen VPS, neem dan de goedkoopste voor 4–5 euro per maand, bijvoorbeeld een Hetzner CX11 / Yandex Cloud / Selectel.

### Stap 1: Installeer het systeem op de VPS

Maak eerst als beheerder het eigen Unix-account en de werkmap. Hergebruik een bestaand account pas nadat home en eigendom zijn gecontroleerd:

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

Ga verder in die `claude`-loginshell, niet in roots home. Installeer Bun met het officiële installatieprogramma en Claude Code via de [native installatieroute](https://code.claude.com/docs/en/setup):

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

Open voor dezelfde gebruiker een verse loginshell zodat de PATH-wijzigingen gelden. Controleer account en uitvoerbare paden:

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

`whoami` moet `claude` tonen en `HOME` moet `/home/claude` zijn. Noteer de absolute paden van `command -v`; gebruik het echte Claude-pad in `ExecStart` en neem de Bun-map in de service-PATH op. Stop als een uitvoerbaar bestand ontbreekt.

### Stap 2: Meld aan, installeer en koppel als servicegebruiker

Voltooi in dezelfde interactieve `claude`-sessie de aanmelding en herhaal stappen 2–5 hierboven onder die Unix-gebruiker: installeer de Telegram-plugin in **gebruikersscope**, stel het token in, herstart met `--channels`, koppel je Telegram-account en stel `policy allowlist` in. Test bericht en antwoord voordat je de dienst instelt. Kopieer roots Claude-configuratie of inloggegevens niet naar deze home.

Zowel claude.ai-abonnementsaanmelding als een Anthropic Console-API-sleutel worden ondersteund. Team/Enterprise vereisen organisatie-inschakeling; beheerde Console-organisaties moeten ook aan hun kanaalinstellingen voldoen. Console-toegang wordt als API-gebruik afgerekend en valt niet onder een claude.ai-abonnement. Houd gekozen account en authenticatiemethode gelijk bij de overgang van interactieve shell naar dienst.

### Stap 3: Plaats de sessie in systemd

Verlaat de servicegebruikersshell en maak de unit als beheerder. De unit hieronder veronderstelt dat de padcontroles `/home/claude/.local/bin/claude` en `/home/claude/.bun/bin/bun` opleverden; vervang ze door echte uitvoer als die afwijkt. Lever dezelfde gekozen authenticatieomgeving en hetzelfde bottoken, maak de unit alleen leesbaar voor zijn beheerder en commit nooit geheimen. Maak een servicebestand voor automatisch starten en herstart na een crash:

```bash
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
```

Ik heb het volgende ingesteld:

- **`Type=simple`** — eenvoudige modus; systemd beschouwt het proces als gestart zodra het wordt opgestart.
- **`User=claude`** — het proces draait onder een aparte gebruiker, niet als root. Dat is veiliger.
- **`WorkingDirectory=/home/claude/workspace`** — de voorbereide werkmap van de servicegebruiker. Plaats de bedoelde repository daar vóór de start; laat geen root-eigendom achter en draai niet vanuit roots home.
- **`Environment=TELEGRAM_BOT_TOKEN=...`** — het token wordt rechtstreeks aan het proces doorgegeven. Een `.env`-bestand is niet nodig.
- **`--dangerously-skip-permissions`** — noodzakelijk voor onbemande werking. Zonder deze vlag wacht Claude vóór elke actie op je antwoord met ‘ja/nee’ in de terminal en blijft de sessie hangen. De toelatingslijst identificeert afzenders en maakt hun gevraagde opdrachten niet veilig. Gebruik deze bypass alleen in een geïsoleerde omgeving met bewust beperkte bestanden, inloggegevens en netwerktoegang.
- **`Restart=on-failure`** — als het proces crasht (Claude crasht of het netwerk uitvalt), start systemd het na 10 seconden opnieuw.

Bekijk de logs met:

```bash
journalctl -u claude-code -f
```

Gaat er iets mis, dan toont `journalctl -u claude-code -n 100` de laatste 100 regels.

### Stap 4: Controleer of de bot actief is

Start de dienst pas nadat de interactieve inrichting een echt Telegram-antwoord heeft opgeleverd. Stuur daarna vanuit het gekoppelde account dezelfde bot een onschuldig bericht en controleer antwoord en servicelogs. Werkt het interactief maar niet onder systemd, vergelijk dan eerst Unix-gebruiker, HOME, werkmap, uitvoerbaar pad, PATH en authenticatieomgeving.

Stop voor latere pairingwijzigingen de dienst, voer `sudo -iu claude` uit, ga naar `/home/claude/workspace` en start hetzelfde kanaal interactief. Koppel en schakel daar de toelatingslijst in, sluit af en start de dienst opnieuw. Draai niet tegelijk een tweede poller voor dezelfde bot. `journalctl` leest logs en biedt geen interactieve Claude-prompt.

## 5 valkuilen op een productieserver en hoe je ze vermijdt

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Ik heb de valkuilen verzameld tijdens een week met installatiepogingen in productie: systemd kan Bun niet vinden, long polling valt uit na een lange periode zonder activiteit, Max-abonnementslimieten raken midden op de dag op, `--dangerously-skip-permissions` kan tot lekken leiden en de toelatingslijst wordt vergeten na een herinstallatie. Je kunt elk probleem met één regel configuratie aanpakken, maar als je er niet van weet, loop je er binnen een paar dagen tegenaan.

</div>

### 1. Bun staat niet in het PATH van systemd

systemd start processen met een minimale omgeving: het ziet de variabelen uit `~/.bashrc` niet. Heb je Bun alleen in roots home geïnstalleerd terwijl het servicebestand `User=claude` bevat, dan erft de dienst die installatie of roots shell-PATH niet.

**Oplossing.** Installeer Bun systeemwijd (`/usr/local/bin/bun`) of geef PATH expliciet door:

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

### 2. De TCP-verbinding met de Telegram API valt weg na lang inactief te zijn geweest

Na 6–12 uur zonder activiteit kan de bot ‘stilvallen’: berichten worden naar Telegram gestuurd, maar de plug-in ontvangt ze niet. Dit is een eigenaardigheid van long polling.

**Oplossing.** Voeg een regelmatige herstart toe aan systemd (elke 24 uur):

```ini
Restart=always
RuntimeMaxSec=86400
```

Of stel een cron-taak in: `0 5 * * * systemctl restart claude-code` (herstart om 5 uur ’s ochtends).

### 3. De Claude Max-limieten raken midden op de dag op

Als je Claude intensief via Telegram gebruikt, kun je met een Max 5x-abonnement (~\$100 per maand) de limiet binnen 4–6 uur bereiken. Telegram-verzoeken verschillen niet van verzoeken in een gewone terminal; ze gebruiken hetzelfde budget.

**Oplossing.** Stel een herinnering in: “Bot antwoordt niet — controleer `/stats`.” Heb je de limiet bereikt, wacht dan tot deze wordt gereset of stap over op Max 20x (\$200 per maand). De [gids om tokens te besparen](https://ailoot.ai/blog/nl/claude-code-token-limits-saving/) en de [gids over Sonnet- en Opus-modellen](https://ailoot.ai/blog/nl/claude-code-model-effort-sonnet-opus/) kunnen helpen.

### 4. `--dangerously-skip-permissions` is gevaarlijk, zelfs met een toelatingslijst

Deze vlag schakelt alle bevestigingen uit. Elke opdracht die je via Telegram stuurt, wordt zonder vragen uitgevoerd: bestanden verwijderen, externe verzoeken versturen, alles. Ik vroeg Claude eens om “onnodige `console.log`-regels te verwijderen” en in zijn ijver om op te ruimen, verwijderde Claude de helft van de debuglogs in een productiescript. Ik heb ze via git teruggezet, maar de schade was al aangericht.

**Oplossing.** Schakel `--dangerously-skip-permissions` niet in als je aan een kritiek project werkt. Gebruik in plaats daarvan [Remote Control](https://code.claude.com/docs/en/remote-control) om sessies te starten — machtigingsverzoeken komen dan op je telefoon binnen en je keurt ze handmatig goed. Channels met `--dangerously-skip-permissions` is bedoeld voor ruwe versies, refactoring en tests.

### 5. De toelatingslijst ‘werkt niet meer’ na een herinstallatie

De toelatingslijst staat in `~/.claude/channels/telegram/`. Als je naar een nieuwe VPS verhuist, Claude opnieuw installeert of van gebruiker wisselt, worden de oude koppelgegevens niet meegenomen. De oude afzendertoelatingslijst ontbreekt; neem niet aan dat de nieuwe instantie hetzelfde toegangsbeleid heeft.

**Oplossing.** Maak vóór de verhuizing een back-up van `~/.claude/channels/telegram/`. Zet die daarna terug. Of koppel direct na de herinstallatie opnieuw en laat **zelfs geen minuut verstrijken tussen het starten van de bot en het instellen van `policy allowlist`**.

## Channels of Remote Control — welke kies je?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Met Channels antwoordt je Claude-sessie in de chat en stuur je prompts vanaf je telefoon. Met Remote Control staat je terminalscherm op je telefoon en bedien je de sessie met knoppen. Channels is handiger voor ‘vragen en doorgaan met je dag’; Remote Control is geschikt voor kritieke stappen waarbij je moet zien wat Claude doet en elke risicovolle actie wilt goedkeuren.

</div>

Anthropic bracht beide functies vrijwel tegelijkertijd uit: Remote Control op 25 februari 2026 en Channels op 20 maart 2026. Ze **doen niet hetzelfde**; ze lossen verschillende problemen op.

| Scenario | Channels | Remote Control |
|----|----|----|
| Buiten vragen ‘welke commits waren er gisteren?’ | ✅ Ideaal | Overkill — je hebt het volledige scherm nodig |
| Een bestandswijziging goedkeuren | ⚠️ Blind goedkeuren via `--dangerously-skip-permissions` | ✅ Je ziet wat Claude wil doen |
| Claude 24/7 laten draaien | ✅ VPS + systemd-configuratie | ⚠️ Vereist een open laptop |
| Een paar prompts vanaf je telefoon sturen | ⚠️ Overkill — bot, token, plug-in | ✅ Eén QR-code |
| Een webhook van CI / Sentry ontvangen | ✅ Standaardgebruik | ❌ Niet hiervoor bedoeld |
| Team met meerdere mensen | ✅ Toelatingslijst voor meerdere accounts | ⚠️ Alleen de eigenaar van de sessie |
| Bestanden buiten de cloud van Anthropic houden | ✅ Alleen tekst via MCP | ✅ Ook alleen tekst |

Zo verdeel ik ze zelf: **Channels** voor asynchroon werk wanneer ik niet bij mijn laptop ben, CI-meldingen en integraties. **Remote Control** wanneer ik wil zien wat Claude doet of een risicovolle stap wil goedkeuren.

Je kunt ze allebei tegelijk gebruiken. De Telegram-bot geeft je een snelle manier om iets te vragen en antwoord te krijgen; Remote Control is het kanaal om ‘kritieke dingen te bedienen’. Ze gebruiken dezelfde Claude-limiet.

## Veelgestelde vragen

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

Zeven van de meestgestelde vragen over Channels: meerdere bots verbinden, wat er gebeurt wanneer je de terminal sluit, webhooks van CI, Telegram versus Discord, beperkingen van Team-abonnementen, wat Claude vanaf je telefoon kan zien en het gratis abonnement. Meer materiaal vind je in de Ailoot-documentatie.

</div>

**Kan ik meerdere bots tegelijk verbinden?**

Ja. De vlag `--channels` accepteert een door spaties gescheiden lijst: `--channels plugin:telegram@claude-plugins-official plugin:discord@claude-plugins-official`. Eén Claude-sessie antwoordt in beide chats.

**Wat gebeurt er als ik de terminal sluit?**

De sessie wordt afgesloten, de plug-in stopt en de bot wordt stil. Op een VPS blijft de sessie draaien in systemd. Sluit je op een lokale computer de laptop, dan verbreekt `claude` de verbinding binnen enkele seconden met SIGHUP.

**Kan ik meldingen ontvangen van CI of Sentry?**

Ja. Channels is een **tweerichtingskanaal**. Je kunt zelf een plug-in schrijven die webhooks naar de sessie doorstuurt, met behulp van de [Channels Reference](https://code.claude.com/docs/en/channels-reference). Claude ziet gebeurtenissen in realtime en reageert.

**Zijn de mogelijkheden van Telegram op een of andere manier beperkter dan die van Discord?**

De basisfuncties zijn hetzelfde. Discord vereist Message Content Intent in de botinstellingen. iMessage werkt alleen op macOS en leest de database `~/Library/Messages/chat.db` rechtstreeks uit. Telegram werkt overal.

**Wat moet ik doen als ik een Team-abonnement heb?**

De organisatiebeheerder moet `channelsEnabled: true` inschakelen in de beheerde instellingen of via [admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Zonder deze instelling maakt de plug-in verbinding, maar worden berichten niet doorgestuurd — er verschijnt een waarschuwing bij het opstarten in de terminal.

**Wat kan Claude vanaf mijn telefoon zien — de Telegram-chat zelf?**

Niets daarvan. Claude ziet **alleen het bericht dat je naar de bot hebt gestuurd**. Je Telegram-gespreksgeschiedenis, chatlijst en contactpersonen zijn niet toegankelijk. De MCP-plug-in leest alleen berichten aan de bot via de Telegram Bot API.

**Kan ik Claude via Channels gebruiken zonder een Pro/Max-abonnement?**

Ja, een Anthropic Console-API-sleutel wordt ook ondersteund; API-gebruik wordt aan die Console-organisatie afgerekend. De gratis claude.ai-laag is niet de hier beschreven abonnementsroute. Team/Enterprise en beheerde Console-organisaties moeten voldoen aan kanaalinschakeling.

## Wat nu?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Belangrijkste punten van de sectie">

Belangrijkste punten

De bot is ingesteld, de toelatingslijst is ingeschakeld en de sessie staat op een VPS. Verwerk Channels nu in je dagelijkse routine: verbind webhooks van GitHub Actions en Sentry, combineer het met Routines voor terugkerende taken en stel een botmonitor in. Elke stap duurt 15–30 minuten en dicht één gat in de monitoring.

</div>

Zodra de bot betrouwbaar draait, zijn er een paar vervolgstappen om het meeste uit Channels te halen:

1. **Verbind webhooks van CI.** Gebruik je GitHub Actions / GitLab CI, dan kun je de Channels-plug-in zo instellen dat buildresultaten rechtstreeks naar de sessie worden doorgestuurd. Claude ziet direct na een push ‘test mislukt’ en stelt een oplossing voor. Zie de documentatie voor [channels-reference](https://code.claude.com/docs/en/channels-reference).
2. **Combineer het met Routines.** Je kunt [Routines](https://ailoot.ai/blog/nl/claude-code-routines/) in dezelfde sessie gebruiken voor terugkerende taken. ’s Ochtends stuurt de bot uit zichzelf ‘goedemorgen, hier is het projectoverzicht’ en antwoord je vanaf je telefoon: ‘maak een omzetrapport’.
3. **Stel een botmonitor in.** Als de bot stilvalt, wil ik dat weten. Een klein cron-script op de VPS stuurt de Telegram-bot elk uur een ping. Als de bot niet antwoordt, stuurt het script een melding naar een apart kanaal. Zonder dit kan de bot om 4 uur ’s nachts uitvallen en kom je daar pas ’s middags achter.
4. **Overweeg [hooks](https://ailoot.ai/blog/nl/claude-code-hooks/).** Hooks reageren op Claude-gebeurtenissen (tool gestart, bericht voltooid). Hooks en Channels samen zorgen voor automatische Telegram-meldingen zoals ‘Claude heeft taak N voltooid’.

Koppel Channels niet aan alles. Het is een handige manier om een taak bij te werken terwijl je onderweg bent of in een café zit. Moet je echt nadenken, open dan je laptop en ga zitten. Channels verlost je onderweg van de gedachte ‘ik moet dit nog vragen, daarvoor moet ik mijn laptop openklappen’.

<div class="section" role="doc-bibliography" aria-label="Bronnen">

### Bronnen

- [Gebeurtenissen naar een actieve sessie sturen met channels - Claude Code Docs](https://code.claude.com/docs/en/channels)
- [anthropics/claude-plugins-official op GitHub](https://github.com/anthropics/claude-plugins-official) - broncode voor de Telegram-, Discord-, iMessage- en fakechat-plug-ins
- [Lokale sessies vanaf elk apparaat voortzetten met Remote Control - Claude Code Docs](https://code.claude.com/docs/en/remote-control)

</div>

Bekijk voor meer materiaal over werken met tools de [Ailoot-documentatie](https://ailoot.ai/docs/).



<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Ailoot Guides">

[Ailoot Guides](https://ailoot.ai/docs/)

</div>

<div class="aside" data-semantic="ailoot-cta" role="note" aria-label="Ga naar Ailoot">

[Ga naar Ailoot](https://ailoot.ai/)

</div>

## Vragen en antwoorden

### Waarom werkt de Telegram-bot handmatig maar niet als dienst?

Vergelijk Unix-gebruiker, HOME, werkmap, Claude-pad, Bun-PATH en authenticatieomgeving van de dienst met de geslaagde interactieve run. Installeer, stel in en koppel onder dezelfde servicegebruiker; roots plugin- en pairingstatus is een andere configuratie.

### Kan een Console-API-sleutel Pro- of Max-aanmelding voor Channels vervangen?

Ja. Aanmelding met een Anthropic Console-API-sleutel wordt ondersteund en gebruikt Console-API-facturering. Controleer waar nodig de kanaalinstellingen van de organisatie en rond tokenconfiguratie, pairing en afzendertoelatingslijst af onder het account dat de sessie uitvoert.


## Ailoot · Het bedrijf en zijn projectenportefeuille

Ailoot bouwt op opgebouwde operationele ervaring, een groot klantenbestand, een stabiele dienst en doorlopende KPI-controle.

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Ailoot gebruikt die operationele ervaring voor API-toegang tot AI-functies in klantproducten, agents, applicaties en automatiseringen.
