Blog
OpenClaw vs Hermes Agent vs Khoj: three open-source AI agents compared
Three personal AI agent projects ship as deputyOS profiles. Here's how they differ so you can pick the right one.
When you flash deputyOS, the wizard asks you to pick a profile. The three options today are OpenClaw, Hermes Agent, and Khoj. They’re all “personal AI assistants” but each emphasises a different thing. This post unpacks the differences so you pick the right one.
At a glance
| Aspect | OpenClaw | Hermes Agent | Khoj |
|---|---|---|---|
| Language | Node.js 24 | Python 3.11 + uv | Python 3.11 |
| Strength | Multi-channel breadth | Memory + skill depth | Personal-knowledge search over your content |
| Channels (out of box) | 23 | 17+ | 6 |
| Persistent memory | SQLite log + simple recall | FTS5 + summaries | Vector index over your docs |
| Best on | Pi 5 8 GB / x86 mini-PC | Pi 5 16 GB / x86 mini-PC | x86 mini-PC (heavier indexing) |
| First-impression demo | ”Talk on Telegram" | "It remembers our chat from 3 weeks ago" | "Find that photo of the receipt from May” |
OpenClaw — the multi-channel generalist
OpenClaw is what we recommend for first-time users. It’s a Node.js agent built around channels and skills. Out of the box it speaks 23 channels — Telegram, Slack, Discord, Signal, Matrix, IRC, WhatsApp Cloud, Email, and more.
The architecture is simple: messages arrive on a channel, hit a router, get classified for intent, and either run a skill or get a model-generated reply. Memory is a SQLite log with simple recall. It’s not the deepest memory of the three but it’s the easiest to reason about.
Strengths:
- Low ceiling on RAM (works on Pi 5 8 GB comfortably).
- Most channels of any deputyOS profile.
- Skill API is small and clear (TypeScript files in
/etc/openclaw/skills/).
Weaknesses:
- Memory is reachable but not particularly clever.
- No built-in indexing over your files (use Khoj or a custom skill for that).
OpenClaw is the right pick if you want “a Telegram/Slack/Discord bot that’s actually smart and routes to my AWS / calendar / weather skill.”
Hermes Agent — the memory-rich skill machine
Hermes is a Python-3.11 agent with a richer skill system and FTS5-backed memory. It summarises long conversations into shorter “memory entries” that survive across sessions, and it has a more developed planning loop — when you ask it to do a multi-step task, it actually plans rather than reacting one step at a time.
Strengths:
- Sophisticated memory model with periodic summarisation.
- Skill system supports tool-call chains.
- 17+ channel gateways, all production-grade.
- Hookable at every memory operation (good for power users).
Weaknesses:
- Heavier on RAM than OpenClaw.
- Python’s startup time means cold-boot is slower than Node.
- AppArmor profile is more complex (Python needs
kernel.unprivileged_userns_clone=1).
Hermes is the right pick if you want “an agent that actually remembers stuff and can plan a multi-step task.”
Khoj — the personal-knowledge agent
Khoj is the third profile we shipped (Khoj as the plugin-model acceptance test). It’s a personal-knowledge agent — it indexes your notes (Markdown, Org, plain text), photos, PDFs, and emails into a vector store, then lets you chat with that index.
Strengths:
- Outstanding at “find that thing I wrote three months ago.”
- Multi-modal: photos and PDFs are first-class.
- The chat is conversational, not just search; you can ask follow-ups.
- Local-first: indexing happens on the device.
Weaknesses:
- Indexing CPU cost: a Pi 5 indexes ~hundreds of docs/min; an x86 mini-PC is significantly faster.
- Fewer chat channels than OpenClaw or Hermes.
- The index lives in
/var/lib/khoj/and can grow large with photos.
Khoj is the right pick if you want “chat with my own files and photos, with proper retrieval.”
Switching between them
You don’t have to pick once. deputyctl profile switch <id> stops the current profile, starts the new one, and points the active-profile symlink at the right unit. Your conversation logs stay where they are (per-profile, not shared) — switching back later picks up where you left off.
If you want both OpenClaw and Khoj at the same time, you can’t on a single deputyOS instance (only one profile runs at a time). The clean path is two devices: one for chat + channels, one for personal knowledge.
What’s the same across all three
Every profile uses the deputyOS chrome:
- The wizard, the PWA, the
/chatweb UI. - AppArmor enforce, ufw default-deny, fail2ban, hardened sysctls.
- Cost guardrails with auto-pause.
- A/B image updates with watchdog rollback.
- Signed manifest update chain.
- The drive-mounting subsystem (each profile gets
/mnt/deputyos/**access controlled by AppArmor). - The hooks system (pre-message, post-message, cost-alert, update-applied).
- The model-provider catalog (cloud + local LFM2).
This is the profile-class invariant: every profile inherits the appliance properties from deputyOS regardless of which agent codebase it wraps.
Adding a fourth profile
We deliberately keep the bar high — a profile has to be a multi-channel personal AI assistant in the same shape as OpenClaw/Hermes/Khoj. We won’t accept IDE plugins (those have Aider/Continue), agent frameworks (those have LangGraph), or integration shims (those are not assistants).
If you have a candidate that fits, the add-a-profile doc covers it: manifest + Ansible bake recipe + AppArmor profile + systemd unit. No Rust changes required (we proved that with Khoj).
What’s coming
The profile catalog will probably grow next with a coding-specialist profile (working title) — multi-channel, but with a focus on routing tasks like “summarise this PR” to specialised tooling. And a more lightweight note-taking profile aimed at people who don’t want full Khoj heaviness.
If you have a profile you’d like us to consider, open an issue with the manifest sketch.
Pick by goal
- “Tell me which one to pick.” OpenClaw. You can switch later.
- “I want the smartest memory.” Hermes.
- “I want to chat with my files.” Khoj.
- “I want all three on different devices.” Get three Pi 5s and one big mini-PC.
The picker has the right image for each. Or read the profile-class rule for the shape behind the catalog.
Related posts
deputyOS vs Home Assistant: AI assistant vs home automation hub
Home Assistant runs your house. deputyOS runs your personal AI. They complement each other — here's how to use both together.
deputyOS vs Ollama: how they're different and when to use which
Both run AI locally. They solve different problems. Here's a real comparison so you can pick the right one for your use case.
Turn a Raspberry Pi into your personal Telegram AI bot
Step-by-step: build a self-hosted Telegram bot that's actually an AI assistant with memory, running on your own Pi via deputyOS.