ethos
General-purpose AI is fine for small talk, mediocre at real work. Ethos gives you a team of specialists — researcher, engineer, reviewer, coach, operator — each with its own tools, memory, and model. Same conversation across Slack, Telegram, and your terminal. Boundaries the prompt can't talk its way out of.
mit · node 24 · typescript strict · zero deps in the types layer
One conversation, three specialists: the researcher finds a race condition, the engineer patches it, and the reviewer checks the diff — but is refused write access because write_file is not in its toolset.
A generic agent has every tool. That is its problem. The toolset is the union of every task you might ever do, which is a security surface, a cost surface, and a quality surface. Voice is mush. Memory is a pile.
Personalities invert it. Each has a curated toolset, a first-person identity (SOUL.md), and a memory scope. Researcher gets the 8 tools it needs. Reviewer gets 3 and a per-personality memory scope so its code-review notes never leak into your coach session.
Specialization, not configuration. Personality is architecture, not a system prompt in a costume.
web_search web_extract web_crawl read_file search_files memory_read memory_write session_searchterminal read_file write_file patch_file search_files web_search web_extract execute_code run_tests lintread_file search_files session_searchweb_search web_extract memory_read memory_write session_searchterminal read_file write_file patch_file search_files execute_code run_testsEvery component is an interface in @ethosagent/types, injected at construction. Personality decides which tools enter the loop and which model handles the turn.
user input flows into AgentLoop.run's nine steps — session, hooks, memory, prompt, agentic loop — and streams out as an AsyncGenerator of AgentEvents to cli, tui, vscode, email, telegram, and slack surfaces.
OpenClaw users migrate in one command. Any clawhub skill installs into Ethos directly — the catalogue becomes your toolset, no forks, no shims.
$ ethos claw migrate --dry-run # preview the plan, then re-run without --dry-run
Memory, skills, platform tokens, and API keys copy in place. Your SOUL.md becomes a migrated personality; built-in matches resolve automatically. Idempotent — safe to re-run.
$ ethos skills install steipete/slack # any slug clawhub serves, just works
The OpenClaw-compat layer parses SKILL.md frontmatter, environment substitutions, and OS gates — so the full clawhub catalogue runs unmodified inside your personality's toolset.