The headline: LISA evolves from "watches Claude Code" into mission control for
every AI agent on your machine. She observes all of them, understands what each
session is doing (without reading your conversations), periodically advises you,
and can dispatch + coordinate work — implementing layers L1–L5 of the
orchestrator plan (docs/ORCHESTRATOR_PLAN.md).
- A pluggable integration registry (mirrors the channel adapter pattern) + an OrchestratorHub that fans out over every enabled agent, merges their sessions into one normalized stream, and emits a single update event.
- Claude Code reslotted behind the generic
AgentObserverinterface (its watcher is unchanged). - Codex CLI adapter added through the same registry (off by default, enable
in
~/.lisa/agents.json) — proving "add an agent ≈ ~100 lines + one import". - New
GET /api/agents/sessions;/api/claude/sessionskept as a back-compat alias derived from the hub.
- New tiered visibility (
off/metadata/activity/intent), default activity. At the activity tier LISA extracts structural signals only — tool names, file paths, the name of the last shell command, error flags, git branch, token counts — and shows a one-line "what it's doing" per session. - Privacy is tested, not just promised: a unit test plants a secret string in every prose-bearing field (prompts, replies, Write/Edit content, full commands, Grep patterns, todos) and asserts it never appears in the output, while confirming the structural facts still extract.
- LISA now tells you what matters across all your agents: stuck/errored sessions, two agents about to clobber the same repo, repeated command failures, cost spikes, finished work ready for review, idle capacity.
- Built to not be annoying: a relevance bar (below it → her journal, not you), a 3-hour digest throttle (urgent items like permission prompts bypass it), condition-hash dedup (a condition re-surfaces only when it changes), and dismiss-as-signal learning (categories you always dismiss fade).
- Surfaces through the existing "while you were away" card; plus an
advise_nowtool so you can pull on demand ("Lisa, what's going on with my agents?").
dispatch_agentlaunches another CLI agent headlessly (claude -p,codex exec,opencode run,aider --message --yes), detached and tracked via the hub. The task is passed as a single argument (no shell-injection surface). Spawning an autonomous process requires approval.- Same-cwd conflict guard: dispatch refuses to launch into a directory
another agent is already working in (override with
force) — preventing the #1 multi-agent failure mode at the source.
- Test suite grew to 164 passing (was 130 at v0.3.1): integration registry, hub, Tier-2 activity + privacy, advisor detectors/engine, Codex parser, dispatch argv safety.
- Still zero new runtime dependencies.
npm install -g @oratis/lisa # 0.4.0
# or
brew update && brew upgrade lisa
# or grab the signed + notarized Lisa-Suite-v0.4.0.dmg belowEnable extra agents (Codex, etc.) by creating ~/.lisa/agents.json:
{ "integrations": { "claude-code": { "enabled": true }, "codex": { "enabled": true } },
"visibility": "activity" }