Changelog

This page mirrors the akm-rs CHANGELOG. The canonical, always-current source is GitHub Releases.

1.1.2

  • Mistral Vibe: vibe is now wrapped like copilot. The shell function hands Vibe the per-session staging directory with --add-dir (Vibe 2.10.0+), so project skills declared in .agents/akm.json reach Vibe per session, and the artifacts directory is symlinked in at <staging>/.vibe/artifacts.
  • akm instructions sync no longer prints a line when it retires a leftover ~/.vibe/prompts/cli.md; the one-off cleanup is silent.

1.1.1

  • Mistral Vibe: global instructions now go to ~/.vibe/AGENTS.md, which Vibe reads as user-level instructions. The previous target, ~/.vibe/prompts/cli.md, was ignored by older Vibe and, since Vibe 2.9.0, replaced Vibe’s entire built-in system prompt with your instructions. akm instructions sync removes that file when it is a byte-identical copy of the global instructions; a hand-written cli.md is left alone.
  • Mistral Vibe: agent specs are no longer mounted into ~/.vibe/agents/. Vibe agents are <name>.toml configs, so the .md symlinks were inert clutter. tools.json entries gain an agents flag (default true) for this.

1.1.0

  • Add Posit Assistant as a sixth harness (~/.posit/assistant). Its skill discovery skips symlinked directories, so core skills mount as real directories whose entries are symlinks into the library (tree mount) instead of the symlinked-dir mount every other harness uses.
  • akm instructions sync writes ~/.posit/assistant/akm-instructions.md and adds a single @akm-instructions.md include line to ~/.posit/assistant/AGENTS.md, appended once and never overwriting the file, since Posit’s own /savememory command appends to it too.
  • Project skills for Posit are materialized into a gitignored sidecar at <project>/.posit/assistant/skills/, refreshed by akm skills add/remove, the interactive TUI, skills delete/rename, and at session setup.
  • tools.json entries gain mount (symlink default, or tree) and optional project_dir fields; existing files without them still parse.

1.0.1

  • akm skills import accepts repository-root GitHub URLs — https://github.com/owner/repo/tree/<ref> with no path, for repos that are themselves a single skill (SKILL.md at the root). The default skill ID is the repo name; blob/<ref>/SKILL.md at the root works too.

1.0.0

First stable release.

  • Artifacts explorer: press y to copy the selected entry’s absolute path to the clipboard, for pasting straight into an agent. Uses OSC 52 (no clipboard crate, no pbcopy/xclip/wl-copy shell-out), so it keeps the single-binary guarantee and works over SSH. The path is also shown in the status line as a selectable fallback for terminals that drop OSC 52.
  • TUI theme: rebranded from blue accents to black-and-gold (#eec35e) — gold marks the selection bar, edit cursor, skill type and the [CORE] badge, with the semantic status colours kept as distinct signals.
  • akm skills status now shows the Manifest section first, above Core, in both the TUI dashboard and --plain output — a project’s declared specs are the most relevant thing to see when standing in it.
  • Bare akm skills now opens the library list (like akm skills list) instead of the status dashboard; the dashboard stays an explicit akm skills status.

1.0.0-rc6

  • Add akm uninstall — removes the binary, ~/.bashrc integration block, global spec symlinks, config, caches, and machine-local metadata (library.json, local.json, tools.json). Preserves artifacts, the legacy global instructions file, and the library (the registry checkout, which may hold unpublished local edits); --purge removes those too. --yes skips the confirmation prompt.
  • Add akm disable / akm enable — reversible vanilla mode. disable makes new shells skip the claude/copilot/opencode/pi wrappers and clears global core symlinks without deleting anything; enable restores both. Useful for checking default harness behavior without akm.
  • Breaking: remove akm skills load, akm skills unload, and akm skills loaded
    • skills add/remove already refresh the active session’s symlinks, so load/unload only offered manifest-free session loading — niche and unused
    • akm skills status --plain covers the scriptable session view
  • Help page cleanup: akm config --help now documents all supported keys, akm config prints the update.* keys, akm update/akm sync/akm skills descriptions match actual behavior, akm completions examples render correctly

1.0.0-rc5

  • Publishing is batched: one intent is one commit
    • akm skills core --publish now promotes and pushes, in a single commit, staging only sidecars so an in-flight SKILL.md is never swept in
    • akm skills publish with no id publishes every pending spec at once
    • --dry-run on both
  • Fix a commit whose push failed never being retried — publish now pushes commits already on HEAD instead of reporting nothing to do
  • Fix the cursor jumping in akm skills status when a spec changes section: c, a and r now hold the cursor on its screen line and move it to the neighbour, instead of scrolling the window to wherever the spec landed
  • Sync evicts a stale library.json left inside the registry checkout by an earlier layout — restored to HEAD when tracked, deleted when it is the untracked copy rc4 hid with .git/info/exclude

1.0.0-rc4

Breaking: the cold library is wiped and re-cloned on first sync. The library is now the personal registry’s git working tree at ~/.local/share/akm/library/, not a copy of one. The first akm sync after upgrading removes the old ~/.local/share/akm/{skills,agents,library.json} and the registry cache, then clones fresh. Anything you never published to your registry is lost — publish it before upgrading. tools.json, shell/ and your config are untouched.

  • Sync no longer destroys local edits
    • git fetch + merge --ff-only, never a real merge, so no conflict marker can ever reach a skill that is symlinked live into ~/.claude/skills/
    • An edit to a skill the update also changed is parked, the fast-forward is applied to everything else, and the edit is put back on top — one unresolved skill can no longer freeze the other forty-nine
    • Sync reports what needs a decision and never prompts; only akm skills edit asks anything
  • Know which side moved: * unpublished, v registry ahead, ! diverged, shown per spec in akm skills list, akm skills status and the sync report
  • New commands: akm skills diff <id>, akm skills revert <id> [--remote], akm skills core [--adopt|--publish], akm instructions publish
  • akm skills edit <id> now opens SKILL.md; --meta opens the spec’s metadata sidecar. Both offer to publish when the spec has local changes
  • Human-facing metadata moves to a per-spec akm.json sidecar
    • library.json becomes a derived, locally-excluded index, so it can never be the thing that conflicts
    • core defaults live in the sidecar and propagate to new machines; deviations stay in ~/.local/share/akm/local.json, machine-local
  • Global instructions move into the registry at instructions/global.md, and gain the same drift, publish and propagation model as a skill. A pre-rc4 ~/.akm/global-instructions.md is carried over on first sync
  • registry.url is the canonical config key; skills.personal_registry still resolves silently
  • The TUI metadata editor gains a real cursor, wrapped multi-line fields and Left/Right/Home/End/Delete, and its edits now survive the next sync — they previously went to the derived index and were erased

1.0.0-rc2

  • Fix the session staging directory silently eating agent output
    • Agents told to write to “the additional working directory” wrote into the staging dir, which is rm -rf‘d on session end — the files were lost
    • The artifacts directory is now named by resolved absolute path in the system prompt (claude and pi), signposted by a README.md at the staging root for harnesses with no system-prompt flag, and the staging root is made read-only so a stray write fails loudly instead of vanishing later
    • Teardown now removes only the directories it created and rescues anything left to <artifacts>/<repo>/orphaned/<session>/ for the next session to triage
    • akm update now rewrites akm-init.sh as well as the binary — previously an updated binary kept running a months-old shell init
  • Offer to publish to the personal registry after an interactive skills promote or skills import
    • Skipped when no personal registry is configured or stdin is not a TTY, so non-interactive output and exit codes are unchanged
    • Fix skills publish dropping the description and tags entered at the promote/import prompts, which left the registry — the source of truth for sync and search — carrying the values derived from SKILL.md frontmatter
  • Make the interactive skills list modal so actions work on a filtered list
    • Previously typing a filter disabled every action key, and the only way out cleared the filter along with it
    • / starts editing the filter; Enter or Esc returns to normal mode with the filter still applied, where c/e/a/r act on the filtered rows
    • Esc no longer quits either interactive view — only q and Ctrl+C do
    • The status dashboard gains e (edit) and now matches the list view’s keys
  • Prune stale narrative from the docs and split maintainer material out of README and AGENTS.md into docs/development.md and docs/harnesses.md

1.0.0-rc1

  • Add Pi (https://pi.dev) as a first-tier harness
    • pi shell wrapper: mounts session skills with --skill <staging>/.pi/skills (Pi has no --add-dir) and names the artifacts directory via --append-system-prompt, re-passing any APPEND_SYSTEM.md the CLI flag would otherwise suppress
    • akm skills sync symlinks core specs into ~/.pi/agent/skills/
    • akm instructions sync writes ~/.pi/agent/AGENTS.md
    • Fix session symlink helpers deriving the staging directory name from the last component of the global tool dir — wrong for ~/.pi/agent
    • tests/shell_test.rs now exercises the generated wrapper for real
  • Remove all references to the retired Bash implementation from source comments and documentation

alpha.11

  • Add macOS Apple Silicon (aarch64) binary to releases
    • Release workflow now builds Linux x86_64 and macOS aarch64 in parallel
    • Install script (install.sh) supports macOS: platform detection, shasum checksum verification, Gatekeeper quarantine removal
    • akm update is now platform-aware — picks the correct binary for the current OS/arch
    • Binary validation accepts Mach-O format alongside ELF

alpha.10

  • Fix akm update always saying “Already up to date” — the explicit update command was trusting a stale cache instead of making a fresh API call

alpha.9

  • Add akm skills import — import skills directly from GitHub URLs
    • Supports /tree/ (directory) and /blob/ (file) URL formats
    • GITHUB_TOKEN support for private repos and higher rate limits
    • Interactive prompts for metadata (description, tags, core flag)
    • --force to skip overwrite confirmation, --id to set custom skill ID
    • Source URL persisted in library.json for future update support

alpha.7

Add a script for automated release checklist issue Fix version comparison in aakm update

alpha.6

Fix akm skills status to correctly regenerate symlinks

alpha.5

Breaking fix: akm update was broken due to a misconfigured URL. To fix: akm config update.url https://api.github.com/repos/akm-rs/akm-rs/releases/latest Then akm update works normally. Alternatively, re-run the install script. Future installs are unaffected — this release auto-migrates the bad URL on startup.

alpha.4

  • Fix akm sync overwriting the changes to core/non-core in skills in the cold storage. Now the cold storage has priority.
  • Improved messages for akm update fails due to rate limit

alpha.3

Fix : akm instructions no longer replaces existing global instructions with empty new ones.