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 good at its one job. Same conversation across Slack, Telegram, and your terminal.

mit · node 24 · typescript strict · zero deps in the types layer

Ethos — personality as architecture

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.

  user input
       │
       ▼
  ┌──────────────────────────────────────────────────────┐
  │  AgentLoop.run(input, options)                       │
  │  ─────────────────────────────────────────────────   │
  │  1. resolve or create session                        │
  │  2. fire session_start hooks                         │
  │  3. persist user message                             │
  │  4. load history (trimmed)                           │
  │  5. prefetch memory (per personality scope)          │
  │  6. build system prompt from injectors               │
  │  7. before-prompt-build modifying hooks              │
  │  8. agentic loop (LLM stream → tool calls → LLM ...) │
  │  9. pre-flight hooks → execute tools → collect       │
  └──────────────────────────────────────────────────────┘
       │
       ▼
  AsyncGenerator<AgentEvent>
       │ text_delta, thinking_delta, tool_start, tool_end,
       │ tool_progress, usage, done, error
       ▼
  surfaces: cli · tui · vscode · email · telegram · slack
Architecture in 90 seconds →

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.