_____ _ _ _ _
/ ____| | | | | | | |
| | | |__ __ _| |_| |__| | ___ _ __ _ __ ___ ___ ___
| | | '_ \ / _` | __| __ |/ _ \ '__| '_ ` _ \ / _ \/ __|
| |____| | | | (_| | |_| | | | __/ | | | | | | | __/\__ \
\_____|_| |_|\__,_|\__|_| |_|\___|_| |_| |_| |_|\___||___/
a coworker, not a chatbot · v1.0.0 · agpl + attribution
The most complete open-source Hermes Agent implementation. Built on Nous Research's Hermes Agent and Moonshot AI's Kimi K2 Thinking. The chat that doesn't end when you close the tab.
Searching for
hermes-agent? This is the production reference: a multi-tenant SaaS that provisions a dedicated Hermes Agent instance per paying user, runs a shared Hermes Agent proxy for free users, and ships 14 real chat-time tools that integrate with the Hermes Agent runtime.
ChatHermes is an open-source autonomous-agent SaaS, built on Nous Research's Hermes Agent and Moonshot AI's Kimi K2 Thinking — the official sponsors of the Hermes Agent Creative Hackathon. Drop a task, close the tab, come back to a finished thing — research, drafts, code, monitoring — pushed to your Telegram, deployed to a public URL, persisted in memory.
This repo is the source of chathermes.com. Self-host under the ChatHermes Open Source License, or skip the setup and use the managed version.
A chatbot is a calculator. ChatHermes is a coworker.
web_search (5-tier fallback) · browse · fetch_url · github_repo · news_search · weather · wikipedia · save_memory · recall_memory · telegram_send · run_js · generate_image (Replicate Flux) · analyze_image (Gemini/GPT-4o vision) · dispatch_subagent (delegate to Claude/GPT-5/Kimi)
Hermes 4 (405B + 70B), Hermes 3, Kimi K2 / K2 Thinking, Claude Sonnet 4.6, GPT-5, Gemini 3.1 Pro, Step 3.5 Flash. Bring your own keys.
- Shared agent proxy — Bun OpenAI-compatible proxy on
:19002for all free-tier users - Private agent provisioning — Pro plan auto-spawns a dedicated Hetzner Cloud server per user (gated mode by default — admin must approve each spawn)
- Native Hermes Agent support when you install
nous-hermes-agentlocally
"Build me a landing page for X" → multi-file fullstack project → live partial-HTML render → publish to public URL at /p/<slug>. 6 starter templates. Per-plan project quotas.
Hero ("You're sharing. Your agent shouldn't be.") · 3-card pricing with Pro emphasized · feature comparison table · 6-question FAQ · trust bar · invoice PDF download · Stripe Checkout + Customer Portal.
Bottom tab bar (Chat / Build / Memory / Plan / More) · bottom sheet for secondary nav · thumb-zone composer · safe-area inset support.
17-chapter video-style walkthrough at /introducing with:
- Pre-generated MP3 narration (en-GB-RyanNeural via edge-tts — free, cinematic British male)
- Netflix-style subtitles
- Procedural Web Audio backsound (Cm7 pad + 75 BPM sub-pulse + FM bell pings)
- Self-record button (MediaRecorder + getDisplayMedia → download as WebM)
- 18 transactional email templates via Resend
- Public REST API at
/api/v1/*with Bearer auth + OpenAPI 3.0.3 - Outbound webhooks with HMAC + 3-attempt exponential backoff
- Magic-link auth (no passwords)
- Admin dashboard (users · tenants · LLM providers · email · Hetzner Cloud · Private Agents · billing · audit trail)
- CLI with 13 admin operations
- Built-in PWA, status page, Cmd+K search, auto-refresh polling everywhere
git clone https://github.com/ai-co-id/chathermes.git
cd chathermes
./bin/install.sh # → setup wizard + deps + build + smoke test
./bin/start.sh # → boots all 3 services
# -> open http://localhost:7000Sign in with any email. Magic link prints to orchestrator log if you skipped Resend. Done.
./bin/health.sh # check everything is running
./bin/stop.sh # shut downRequires Bun >= 1.3. For systemd / one-click Hetzner / production: see INSTALL.md.
See INSTALL.md for production setup (HTTPS, Stripe, Resend domain, Hermes Agent native).
- Web: Next.js 16, Turbopack, Tailwind 4, Motion, react-markdown — port 7000
- Orchestrator: Hono on Bun, SQLite via bun:sqlite — port 7010
- Hermes proxy: Bun, OpenAI-compatible — port 19002
No PostgreSQL, no Redis, no Kafka. Single SQLite file for everything.
ChatHermes reads everything from environment variables — see orchestrator/.env.example.
Minimum required:
PUBLIC_BASE_URL— your install's public URLSESSION_SECRET— auto-generated bybin/setup.sh- One of:
NOUS_API_KEY,KIMI_API_KEY,ANTHROPIC_API_KEY,OPENAI_API_KEY, etc.
Optional but recommended:
RESEND_API_KEY+ verified domain for emailSTRIPE_*keys for billingCHATHERMES_MODEL_RATESJSON for per-model credit pricingHETZNER_API_TOKENfor one-click and private agent deploysREPLICATE_API_TOKENfor image generation toolGEMINI_API_KEYfor vision analysis tool
No credentials are bundled with this repo. You configure your own.
The code is the same. The infrastructure isn't.
| This repo (self-host) | chathermes.com | |
|---|---|---|
| Setup time | 5 min with Docker | 30 sec (sign in) |
| LLM API keys | bring your own | pre-pooled |
| Hermes Agent native | install yourself (5 GB) | pre-installed |
| BYO Resend + DNS | verified domain | |
| Public preview | your-domain.com/p/<slug> |
chathermes.com/p/<slug> |
| Private agent provisioning | works with your Hetzner token | works with our Hetzner pool |
| Backups | DIY (cron) | included, off-site |
| Updates | git pull |
automatic |
| What you bring | servers + keys + time | email + a credit card |
| License | ChatHermes OSL — AGPL + Required Attribution | hosted service |
We genuinely want you to self-host. The hosted version pays our team to operate the cloud-only infrastructure. See docs/CLOUD_FEATURES.md for the full split.
ChatHermes Open Source License v1.0 — based on AGPL-3.0 with a Required Attribution Addendum:
- Use, modify, redistribute. Sell hosting if you want.
- Run it commercially.
- DO NOT strip the visible "Powered by ChatHermes" link from the UI.
- DO NOT remove the
X-Powered-By: ChatHermesHTTP header. - DO NOT use the name "ChatHermes" or our mascot for your fork.
The runtime guard refuses to start the orchestrator if the attribution module is tampered with. That's a feature, not a bug.
PRs welcome. By contributing you agree your work is licensed under the ChatHermes Open Source License. See CONTRIBUTING.md.
- Hermes Agent by Nous Research — the autonomous-agent runtime that makes ChatHermes possible
- Hermes 4 — Llama-based open-weights model family
- Kimi K2 — Moonshot AI's reasoning model
- Hono, Bun, Next.js
- Resend, Stripe, Tailwind CSS
Made by @kwkuh & @supercryptolord in Jakarta. Thanks to Nous Research and Moonshot AI for shipping Hermes Agent and Kimi K2 in the open.