Configuration
Config File
All AKM configuration lives in a single TOML file:
~/.config/akm/config.toml
The file uses TOML format and is created by akm setup or
on first run with defaults:
features = ["skills", "artifacts", "instructions"]
[registry]
url = "git@github.com:you/your-registry.git"
[shared]
acme = "git@github.com:acme/skills.git"
[artifacts]
remote = "git@github.com:you/artifacts.git"
dir = "~/.akm/artifacts"
auto_push = true
[registry] holds the single writable personal registry — the one that is
your library. [shared] holds read-only registries to import from, one line per
registry, named however you like. See Shared Registries.
Config Keys
Keys are hyphenated on the command line and underscored in the TOML file
(akm config registry.url reads registry.url; akm config artifacts.auto-push
reads artifacts.auto_push).
| Key | Description | Default |
|---|---|---|
features |
Enabled domains (comma-separated: skills, artifacts, instructions) |
skills |
registry.url |
Git remote for your personal registry (the canonical key) | (set during setup) |
shared.<name> |
Git remote of a shared registry to import from (empty value removes it) | (none) |
artifacts.remote |
Git remote for the artifacts repo | (set during setup) |
artifacts.dir |
Local artifacts directory | ~/.akm/artifacts |
artifacts.auto-push |
Auto commit+push artifacts on session exit | true |
update.url |
GitHub Releases API URL used by akm update |
akm-rs latest release |
update.check-interval |
Seconds between background update checks | 86400 |
update.auto-check |
Enable background update checks | true |
skills.personal-registry is the pre-rc4 spelling of registry.url and still
resolves; the canonical key wins when both are set.
Managing Config
akm config with no arguments opens a settings panel on a terminal — a
single scrolling list grouped by section (personal registry, artifacts,
features, shared registries) where checkboxes toggle and text fields edit in
place, every change saved immediately. v on a shared registry checks it is
reachable; a adds one.
# Open the settings panel (or dump config when not a terminal)
akm config
# Dump all config as key = value lines (scriptable)
akm config --plain
# Get a specific value
akm config registry.url
# Set a value
akm config artifacts.auto-push false
# Add / remove a shared registry
akm config shared.acme git@github.com:acme/skills.git
akm config shared.acme ""
Machine Layout
AKM follows XDG Base Directory conventions:
~/.local/bin/akm # CLI binary
~/.local/share/akm/ # (XDG_DATA_HOME)
├── library/ # the registry's git working tree — skills, agents, instructions
├── library.json # derived index of the specs above, rebuilt on every sync
├── local.json # this machine's core deviations
├── tools.json # harness definitions
└── shell/akm-init.sh # shell integration
~/.config/akm/config.toml # configuration (XDG_CONFIG_HOME)
~/.cache/akm/ # ephemeral data (XDG_CACHE_HOME)
├── shared/<name>/ # checkout of a shared registry — browsable, never mounted
└── <project>-<ts>-<pid>/ # per-session staging dirs
~/.akm/
└── artifacts/<repo>/ # artifact dirs per project
Key directories
~/.local/share/akm/library/— the cold library, which is your personal registry’s working tree. Editing a skill here is editing your registry.~/.local/share/akm/library.json— a derived, machine-local index, regenerated on every sync. Edit the per-specakm.jsonsidecar, never this file.~/.config/akm/config.toml— the config file. TOML format.~/.cache/akm/— ephemeral data. Shared-registry checkouts undershared/<name>/, plus per-session staging directories created and destroyed by the shell wrappers.~/.akm/artifacts/— artifact directories, one per project.
Global instructions live inside the registry at instructions/global.md, not
under ~/.akm/ — see Instructions.