Skip to main content

ethos

Stopaskingoneagenttodoeverything.

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.

Personality, not "an agent."

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.

researchermethodical · cites sources · flags uncertainty
"There are three families. The first is dense embedding retrieval, used by most open-source vector stores."
web_search web_extract web_crawl read_file search_files memory_read memory_write session_search
8 tools
claude-opus-4-7
memory · personality:researcher
engineerterse · code-first · runs commands to verify
"On it. Plan: move apps/tui/src/agent-bridge.ts to packages/agent-bridge, update tui imports."
terminal read_file write_file patch_file search_files web_search web_extract execute_code run_tests lint
10 tools
claude-sonnet-4-6
memory · personality:engineer
reviewercritical · evidence-based · always explains why
"Two real concerns. The token rotation logic at auth.ts:47 has a TOCTOU race."
read_file search_files session_search
3 tools
claude-sonnet-4-6
memory · personality:reviewer
coachwarm but direct · question-led · helps you think
"OK. Stuck on what specifically? Walk me through what you tried so far."
web_search web_extract memory_read memory_write session_search
5 tools
claude-opus-4-7
memory · personality:coach
operatorcautious · confirms before destructive · documents everything
"Found 247 run logs older than 30 days totaling 4.2MB. Will dry-run first. OK?"
terminal read_file write_file patch_file search_files execute_code run_tests
7 tools
claude-sonnet-4-6
memory · personality:operator

New here? Read What is Ethos? for the 90-second mental model, Why Ethos? for the comparison to LangChain / CrewAI / OpenClaw / Hermes, and Glossary for every domain term.

AgentLoop is one async generator.

Every component is an interface in @ethosagent/types, injected at construction. Personality decides which tools enter the loop and which model handles the turn.

Architecture in 90 seconds →

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.

Bring your existing setup.

OpenClaw users migrate in one command. Any clawhub skill installs into Ethos directly — the catalogue becomes your toolset, no forks, no shims.

migratefrom openclaw
$ 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.

installany clawhub skill
$ 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.