selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

golembot logo

Self-host golembot

v0.51.1

Connect coding agents to chat with any LLM provider

ReleaseOpen SourceMIT
Updated9 hours ago
LanguageTypescript
Setup difficultyModerate
Stars
325
Port
3000 (HTTP gateway service and web dashboard)
Install with Docker
GolemBot web dashboard showing real-time metrics, channel status, and quick-test consoleGolemBot fleet dashboard aggregating multiple running bots

What is golembot?

GolemBot wraps your coding agent so it can operate in team chat and HTTP endpoints. Four engines are supported and each can be routed through any compatible LLM provider with one config block. The gateway connects to seven messaging platforms without a public IP, using WebSocket or polling. A built-in web dashboard shows metrics and channel status; a fleet dashboard manages multiple bots. A modular skill system works with thousands of community skills. Scheduled tasks run on cron syntax. Persistent message queues survive crashes and catch up on missed messages. A TypeScript library lets you embed the assistant in your own Node.js apps. Configuration is a single golem.yaml file with environment variable substitution. Requires Node.js 18+ and the chosen coding agent command-line tool installed and authenticated.

Should you self-host golembot?

golembot scores 52/100 on selfhost.directory (how scoring works) and ranks #30 of 120 in AI Assistant. It has 325 GitHub stars.

It shipped 16 stable releases in the past year. The latest, v0.51.1, came out on 25 October 2026. New versions land roughly every 9 days.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is hermes-agent (89/100, 257 957 stars). It scores higher overall, so compare the two before you pick. See golembot vs hermes-agent side by side.

Features

  • Fleet dashboard
  • Group Chat Support
  • HTTP API with SSE
  • IM platform connectors
  • Library embedding
  • Multi-Engine Support
  • Persistent message queue
  • Provider routing
  • Scheduled Tasks
  • Session Management
  • Skill System
  • Streaming message delivery
  • Task cancellation
  • Web Dashboard

golembot README

How to install golembot

Install golembot with Docker

Docker Engine; coding agent CLI must be installed in container

docker build -t my-bot . docker run -d
--name my-bot
-p 3000:3000
-e ANTHROPIC_API_KEY=sk-ant-xxx
-e FEISHU_APP_ID=cli_xxx
-e FEISHU_APP_SECRET=xxx
-e GOLEM_TOKEN=my-secret
my-bot

Requires adding the chosen coding agent CLI to the container; base image node:22-slim does not include it

golembot releases & version history

FAQ

Where are logs stored?

GolemBot does not maintain log files. Engine output is streamed directly. Use --verbose with golembot gateway for per-channel debug output on stderr.

How do I check if everything is set up correctly?

Run 'golembot doctor' which checks Node.js version, golem.yaml, engine binary, API keys, and skills.

Can Feishu/DingTalk/WeCom work behind NAT?

Yes. All three use outbound WebSocket connections — no public IP or port forwarding required.

Why is CLAUDE.md a symlink to AGENTS.md?

Claude Code reads CLAUDE.md for project-level instructions. GolemBot generates AGENTS.md (listing skills, conventions) and symlinks CLAUDE.md to it so both files stay in sync without maintaining two files.

How do I add a custom skill?

Create a directory under skills/ containing a SKILL.md file with YAML frontmatter (name + description). That's it.

Can I use GolemBot without the CLI?

Yes. GolemBot's core is an importable TypeScript library: import { createAssistant } from 'golembot'; const assistant = createAssistant({ dir: './my-bot' }); The CLI is just one consumer of this library.

Can multiple users share one assistant?

Yes. Use different sessionKey values for each user. Same-key calls are serialized; different-key calls run in parallel. The gateway handles this automatically for IM channels using channelType:chatId:senderId as the session key.

How does session management work?

Each sessionKey maps to an independent engine session stored in .golem/sessions.json. The default session key is 'default'. Sessions resume automatically via engine-native flags. If resume fails, a new session starts transparently. Use /reset in REPL or assistant.resetSession() to clear manually.

How do I set API keys?

Each engine uses its own environment variable: CURSOR_API_KEY for Cursor, ANTHROPIC_API_KEY for Claude Code, provider-dependent for OpenCode, and CODEX_API_KEY (or codex login) for Codex. Place them in a .env file in the assistant directory.

Which engine should I choose?

Cursor if you already use Cursor IDE; Claude Code for best overall experience with cost tracking; OpenCode for multi-provider flexibility; Codex if you prefer OpenAI models with ChatGPT OAuth or API key.

More in Chat

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…