By Amit Jotwani
Developer Educator

If you’ve been exploring OpenClaw but feel like it’s a bit much for what you need—and all you really want is to update or fix your code from Telegram—there’s a much simpler option.
Recently on X, @levelsio pointed to an open source project called Claude Code Telegram created by Richard Atkinson. It does one thing really well: it lets you send messages over Telegram to Claude Code running on your server.
No multi-agent orchestration. No dasboard. No exposed control plane.

Just you → Telegram → your Droplet → your code.
If that’s what you’re after, here’s how to set it up on a DigitalOcean Droplet.
We’ll first need to create a DigitalOcean Droplet. If you don’t already have a server, you’ll need a basic Ubuntu droplet.
In the DigitalOcean control panel:
If you need a more detailed walkthrough, you can check out our guide on how to create a droplet.
Once your Droplet is ready, SSH into it from your CLI with:
ssh root@your_droplet_ip
Make sure to change your_droplet_ip to the IP address that is provided to you after creating your droplet. Also note that it may a couple minutes for your droplet to fully set up, so if you see an error in your CLI just try again after a minute or two.
Now that your droplet has been set up, we’ll configure it to facilitate all the dependencies, services, and parts necessary to let you send messages over Telegram to Claude Code.
sudo apt update
sudo apt install zsh -y
sudo apt install build-essential procps curl file git -y
This installs compilers, process utilities, curl, file detection, and git.
sudo apt install gh
After installation is complete, authenticate the GitHub CLi by running:
gh auth login
Note that this is separate from SSH keys. After you run the command, follow the prompts:
Generate a token locally at:
https://github.com/settings/tokens
Use:
reporead:orgThen verify:
gh auth status
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
sudo apt install -y curl python3-venv python3-pip
ssh-keygen -t ed25519 -C "do-droplet-deploy-key" -f ~/.ssh/github_deploy_key
Print your public key in your CLI using:
cat ~/.ssh/github_deploy_key.pub
Copy and pate your key, and then add it under:
GitHub → Settings → SSH and GPG keys → New SSH key Key type: Authentication
cat >> ~/.ssh/config <<'EOF'
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_deploy_key
IdentitiesOnly yes
EOF
chmod 600 ~/.ssh/config
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
poetry --version
curl -fsSL https://claude.ai/install.sh | bash
If you’re SSHing in with Ghostty and see terminal issues, run:
echo 'export TERM=xterm-256color' >> ~/.zshrc
source ~/.zshrc
nano ~/.zshrc
Add:
export ANTHROPIC_API_KEY="sk-..."
Reload:
source ~/.zshrc
git clone git@github.com:RichardAtCT/claude-code-telegram.git
cd claude-code-telegram
Use the SSH URL (git@github.com:), not HTTPS.
make dev
If you see:
Command not found: pre-commit
pre-commit not configured yet
That’s normal and safe to ignore.
In Telegram:
/newbotbot)mkdir /root/projects
cp .env.example .env
nano .env
Fill in:
TELEGRAM_BOT_TOKEN=<your token>
TELEGRAM_BOT_USERNAME=<your bot username>
APPROVED_DIRECTORY=/root/projects
ALLOWED_USERS=<your Telegram user ID>
USE_SDK=true
To get your Telegram user ID, message @userinfobot.
The ALLOWED_USERS setting is important — the bot ignores everyone else.
Once your bot has been setup, run the following command for the first run in debug mode:
make run-debug
Or the following command for normal mode:
make run
Now that it’s been setup, you can send messages on Telegram like:
Let’s remove the about link from the header nav on the rootein GitHub repo
Claude Code then runs locally on your Droplet, reads your repo, makes the changes, and responds back in Telegram.
No heavy framework. No exposed agent. Just a tight loop between you and your server.
If OpenClaw feels like overkill and you just want something simple you can understand and control, this is a very practical middle ground.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Amit is a Developer Advocate at DigitalOcean 🐳, where he helps developers build and ship better apps on the cloud. Compulsive Seinfeld quoter. LEGO nerd. 🧱 AMA.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Reach out to our team for assistance with GPU Droplets, 1-click LLM models, AI Agents, and bare metal GPUs.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.