DEV Community

joe shawn
joe shawn

Posted on • Originally published at 0xranx.github.io

How I Turned Claude Code into a 24/7 Slack & Telegram Bot (No AI Framework Needed)

Claude Code can write code, run tests, analyze data, and debug anything. But it's stuck in your terminal.

What if your entire team could talk to it in Slack? What if it answered questions in your Telegram group 24/7? What if you could embed it into your own product with 5 lines of code?

That's exactly what I built. Here's how.

The Problem

I have Claude Code running locally. It's great — it understands my codebase, writes solid code, runs shell commands, does git operations. But:

  • My teammates can't use it (it's my terminal)
  • I can't leave it running as a service
  • There's no API to integrate it into our internal tools
  • When I want to switch to Cursor or Codex, I have to change my entire workflow

I didn't want to build another LangChain app or wire up API calls. Claude Code is already a fully capable agent — I just needed to give it a way to receive messages from Slack and send replies back.

The Solution: GolemBot

GolemBot wraps your existing coding agent (Claude Code, Cursor, OpenCode, or Codex) and connects it to messaging platforms. The agent is the brain — GolemBot is the body.

Slack / Telegram / Discord / Feishu / DingTalk / WeCom
                    |
                    v
             GolemBot Gateway
                    |
                    v
    Claude Code / Cursor / OpenCode / Codex
Enter fullscreen mode Exit fullscreen mode

No prompt engineering. No API wiring. No vector databases. The agent you already have does all the thinking.

Step 1: Install

npm install -g golembot
Enter fullscreen mode Exit fullscreen mode

Requirements: Node.js 18+ and at least one coding agent CLI installed (e.g., Claude Code).

Step 2: Run the Onboard Wizard

mkdir my-bot && cd my-bot
golembot onboard
Enter fullscreen mode Exit fullscreen mode

The wizard walks you through everything:

  1. Pick your engine — Claude Code, Cursor, OpenCode, or Codex
  2. Choose a skill template — or start with built-in skills only
  3. Connect IM channels — paste your Slack/Telegram/Discord bot token
  4. Launch — the gateway starts immediately

That's it. Your coding agent is now live in your team chat.

Step 3: Talk to It

In Slack or Telegram, just @ the bot:

@my-bot analyze the error rate in our logs from the past 24 hours

@my-bot write a Python script that converts all PNGs in /uploads to WebP

@my-bot review the latest PR on our repo and summarize the changes

Behind the scenes, GolemBot passes the message to Claude Code (or whatever engine you chose), streams the response, and sends it back to the channel. The agent has full access to your workspace — files, git, shell — just like it does in your terminal.

Or: Embed in Your Own Product

Don't need IM? Use GolemBot as a library:

import { createAssistant } from 'golembot';

const bot = createAssistant({ dir: './my-agent' });

for await (const event of bot.chat('Analyze last month sales data')) {
  if (event.type === 'text') process.stdout.write(event.content);
}
Enter fullscreen mode Exit fullscreen mode

Five lines. Full agent power. Works in any Node.js backend.

Why Not Just Use the Claude API?

Good question. Here's the difference:

GolemBot + Claude Code Claude API wrapper
File access Reads/writes files in your workspace You build file tools from scratch
Shell commands Runs git, npm, tests, anything You build exec tools from scratch
Context Understands your entire codebase You implement RAG + chunking
Tool use Built into the agent You define JSON schemas + handlers
Upgrades Claude Code gets smarter → your bot gets smarter You maintain everything

Claude Code is already a complete agent. GolemBot just connects it to the outside world.

The Skill System

Want your bot to do something specific? Add a Skill — it's just a directory with a SKILL.md file:

skills/
  code-review/
    SKILL.md    # "When asked to review code, check for..."
  daily-report/
    SKILL.md    # "Generate a summary of git commits..."
    template.md
Enter fullscreen mode Exit fullscreen mode

Drop it in, the bot gains the ability. Remove it, the ability is gone. No code changes, no redeployment.

GolemBot is also compatible with ClawHub's 13,000+ community skills:

golembot skill search "code review"
golembot skill add clawhub:code-review
Enter fullscreen mode Exit fullscreen mode

Engine Switching

Tired of Claude Code? Switch to Cursor or Codex in one line:

# golem.yaml
engine: codex    # was: claude-code
Enter fullscreen mode Exit fullscreen mode

The StreamEvent interface is identical across all engines. Your IM connections, skills, and sessions keep working.

Running Multiple Bots

Need different bots for different teams?

golembot fleet serve    # starts all bots, unified dashboard
golembot fleet ls       # see status of all running bots
Enter fullscreen mode Exit fullscreen mode

Each bot gets its own engine, skills, and channel connections. The Fleet Dashboard shows them all in one view.

Configuration

Everything lives in one file — golem.yaml:

name: team-assistant
engine: claude-code

channels:
  slack:
    botToken: ${SLACK_BOT_TOKEN}
    appToken: ${SLACK_APP_TOKEN}
  telegram:
    botToken: ${TELEGRAM_BOT_TOKEN}
  discord:
    botToken: ${DISCORD_BOT_TOKEN}

gateway:
  port: 3000
  token: ${GOLEM_TOKEN}
Enter fullscreen mode Exit fullscreen mode

Sensitive values use ${ENV_VAR} references. Put secrets in .env, commit golem.yaml to your repo.

Docker Deployment

FROM node:22-slim
RUN npm install -g golembot
WORKDIR /assistant
COPY . .
EXPOSE 3000
CMD ["golembot", "gateway"]
Enter fullscreen mode Exit fullscreen mode

Try It Now

npm install -g golembot
mkdir my-bot && cd my-bot
golembot onboard
Enter fullscreen mode Exit fullscreen mode

The whole setup takes about 2 minutes.

MIT licensed. No telemetry. No network calls beyond the underlying agent.


If you found this useful, a star on GitHub would mean a lot. Questions or feedback? Open an issue or join the Discord.

Top comments (2)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.