akm docs

akm Core Principles

akm is a portable capability library for AI agents — give every coding agent the capabilities your team has already built. It indexes existing agent assets in place, loads only what a task needs, packages capabilities into shareable bundles, improves the library through reviewable proposals, and runs durable workflows, locally and without tying the library to one assistant.

This document lists the design constraints that keep that library predictable.

What akm Does

An agent has a task. Across configured sources (local filesystem paths and cache-backed git/website/npm mirrors) and registry catalogs, akm helps it discover assets such as scripts, skills, commands, agents, knowledge docs, workflows, env files, secrets, and wiki pages.

Core flow:

connect -> index -> curate -> show -> use/run -> feedback -> proposal

Not every task uses every stage.

Principles

1. Capabilities remain portable files

Capabilities are ordinary files on disk — skills, scripts, workflows, agent definitions, instructions, memories, knowledge docs. akm indexes what's already there; the source files remain the source of truth, and akm's index is a derived, rebuildable view rather than a copy of record.

2. Materialize sources locally and use one retrieval layer

Local filesystem paths and cache-backed git/website/npm mirrors all materialize into one local index, so search, curate, and show work the same way regardless of where a capability originated. Registries stay a conceptually separate, read-only catalog of installable bundles: registry results live in registryHits, never merged into source hits.

3. Every token must earn its place

Default output should stay lean. Search and curate are for choosing; show is for using.

4. Discovery chooses; show delivers

Search and curate should not accumulate show-level detail. full detail modes can expose more metadata, but the base mental model stays:

search/curate decide
show delivers
filesystem is optional depth

5. Refs are opaque durable handles

Consumers should treat refs as opaque lookup handles. The current wire format is [bundle//]conceptId[#fragment], but agents should pass refs through rather than parse them. See docs/architecture/specs/ref.md.

6. Execution requires an explicit supported surface

akm retrieves every supported capability type. It directly orchestrates defined execution surfaces such as workflows, agent dispatch, tasks, and guarded subprocess injection. It does not blindly execute arbitrary indexed content merely because that content appears in search results.

7. Improvement is evidence-driven and reviewable

Feedback and usage signal drive akm improve, which produces reviewable, diffable proposals rather than silent rewrites. Accept, reject, and revert stay human- or policy-gated, and proposals target only writable bundles.

8. Writes are destination-aware and fail closed

Writes target only writable bundles/adapters. Read-only adapters and protected env/secret values are never silently written through — a write aimed at a non-writable destination fails rather than falling back to an unintended target.

9. Output serves agents first

The default consumer is structured-output automation. JSON-first and concise detail levels are the right defaults.

10. Complexity belongs behind indexing and source management

The hard parts should stay inside indexing, source resolution, registry install, and provider plumbing, not in the hot path from search/curate to show/use.

What akm Does Not Do