Reusable learning control plane for coding-agent workflows.
agent-learner helps you:
- capture learned rules from agent work
- keep repo-scoped and global learning assets in one canonical global store
- review candidates and promote useful rules
- use a dashboard UI for history, rules, and promotions
It is a learning system, not a unified wiki layer.
It is designed to layer onto existing agent environments rather than replace them.
If you want the shortest one-line setup, use one of these:
pipx install "agent-learner[web]" && agent-learner dashboard --project-root "$PWD" --open
npx @cafitac/agent-learner@latest dashboard --project-root "$PWD" --openIf you want a preflight check first, run doctor before dashboard.
The dashboard defaults to 127.0.0.1:8766 to avoid common local MCP/gateway
ports such as 8765.
doctor tells you whether the dashboard can run now, what is missing, and the next command to use.
pipx install "agent-learner[web]" && agent-learner dashboard --project-root "$PWD" --opennpx @cafitac/agent-learner@latest dashboard --project-root "$PWD" --open./bin/dashboard.sh doctor
./bin/dashboard.sh --opendocker compose up --buildDocker is optional convenience only. It is not the primary OSS install path.
- Install the adapter you want to use first
- Codex is the most established path
- Hermes is available as an explicit experimental opt-in
- Run
doctor - Open the dashboard
- Review rules, candidates, and history
- Promote reusable learning assets after review; repo scoping is tracked by metadata, not separate local stores
- canonical durable learning lives under
AGENT_LEARNER_HOME(default~/.agent-learner/) - events, candidates, history, rules, and indexes are stored in that global home
- repo-specific behavior is selected by repo identity, learning scope, and provenance metadata rather than by a project-local storage root
- existing
<project>/.agent-learner/and.codex/references/learning/assets are treated as legacy migration sources, not normal fallback stores agent-learner storage-doctor --project-root "$PWD" --format jsonreports the canonical home, global artifact counts, legacy source state, migration markers, warnings, and source-specific suggested next commands such as Codex-only bootstrap for unmigrated.codex/references/learning/files- Codex, Claude, and Hermes can be installed at user scope while still resolving the active repo from
cwd - external wiki/KB systems remain separate and are not part of the canonical learning lifecycle
- rules are indexed into machine-readable metadata under
$AGENT_LEARNER_HOME/index/rules.json - a human-readable summary is also written to
$AGENT_LEARNER_HOME/index/index.md - retrieval uses the index first, then loads only the top matching rules
approvedrules are injected by default;needs_reviewanddeprecatedstay out unless explicitly requested- use
agent-learner rebuild-index --project-root "$PWD"if you want to force a full reindex after manual edits
The primary UI/runtime path is:
- FastAPI backend
- built React dashboard frontend
Static dashboard generation and stdlib-only serving still exist, but they are secondary paths.
agent-learner doctor --project-root /path/to/repo
agent-learner storage-doctor --project-root /path/to/repo --format json
agent-learner dashboard --project-root /path/to/repo --open
agent-learner bootstrap
agent-learner bootstrap --adapters hermes
agent-learner review-candidates --project-root /path/to/repo
agent-learner history --project-root /path/to/repo --latest-per-rule --last 10
agent-learner history-summary --project-root /path/to/repo --by adapter-decision
agent-learner overview --project-root /path/to/repo --format json
agent-learner rebuild-index --project-root /path/to/repo
agent-learner updateBootstrap note:
agent-learner bootstrapis now the only install entrypoint- default
bootstrapinstallscodex,claude,hermes - use
agent-learner bootstrap --adapters hermesif you only want Hermes
src/agent_learner/— Python corefrontend/— React + Vite dashboard UIbin/— shell / wrapper entrypointstests/— CLI, lifecycle, wrapper, and dashboard testsdocs/— install, architecture, release, and smoke docs
-
Start here:
docs/install.md— install and run pathsdocs/quickstart.md— shortest command sequences
-
Release and publish:
docs/publish-smoke-checklist.md— post-publish smoke matrixdocs/release-process.md— tag order and release flowdocs/distribution.md— Python core vs npm wrapper strategy
-
Architecture:
docs/architecture.mddocs/adapter-convergence.mddocs/scope-learning-system.mddocs/storage-independence-and-provenance.md
-
docs/install.md -
docs/quickstart.md -
docs/architecture.md -
docs/adapter-convergence.md -
docs/scope-learning-system.md -
docs/storage-independence-and-provenance.md -
docs/distribution.md -
docs/publish-smoke-checklist.md -
docs/release-process.md -
docs/prerelease-checklist.md
Current implemented areas:
- local/global learning split
- merged retrieval
- candidate/rule/history lifecycle
- dashboard UI
- global promotion and sync
- npm wrapper + source checkout helper
- Hermes experimental adapter with user-scope config.yaml-based hook wiring and runtime smoke coverage
If you are validating a release, use:
python scripts/release/publish_smoke_check.py --json
python scripts/release/published_runtime_smoke.py --project-root /path/to/repo --json --skip-commandsOr from a source checkout:
./bin/publish-smoke.sh --jsonThen follow docs/publish-smoke-checklist.md.
Common wrapper aliases now work directly:
agent-learner rebuild-index --project-root "$PWD"
agent-learner bootstrap
agent-learner bootstrap --adapters hermes
agent-learner update
agent-learner completion zshZsh:
echo 'source <(agent-learner completion zsh)' >> ~/.zshrc
source ~/.zshrcBash:
echo 'source <(agent-learner completion bash)' >> ~/.bashrc
source ~/.bashrc