Skip to content

Install

pipx install agedum
# or
uv tool install agedum

Both install agedum into its own isolated virtualenv and put it on your $PATH.

Prerequisites

  • Linux. agedum launches your command inside a private mount namespace, which is a Linux kernel feature. macOS and Windows are not supported.
  • bwrap on PATH. The namespace is created with bubblewrap. Install it from your distro:

    sudo apt install bubblewrap     # Debian / Ubuntu
    sudo dnf install bubblewrap     # Fedora
    sudo pacman -S bubblewrap       # Arch
    

    If bwrap is missing at launch, agedum exits with a clear error rather than silently running your command with no injected context.

  • Python ≥ 3.12 — only relevant if you install from source; pipx / uv tool manage their own interpreter.

The agent CLI you intend to drive (claude, kimi, …) must already be installed and on PATH — agedum runs it, it does not bundle it.

First run

agedum needs no configuration file. On launch it looks for an agent-neutral source:

  • Project — the nearest ancestor of the current directory holding AGENTS.md, .agents/, or .git.
  • Global~/.config/agents/AGENTS.md and ~/.config/agents/skills/ (both honour $XDG_CONFIG_HOME).

If neither scope has any AGENTS.md or skills, agedum prints a warning and runs your command with nothing injected. See Source & scopes for the full resolution rules.

Injected paths must be gitignored

The mount namespace shares your real .git. agedum refuses to overlay a git-tracked file, so the targets it injects (CLAUDE.md, .claude/, .kimi-code/) must be untracked and listed in .gitignore. See Internals.

Develop

git clone https://github.com/vcoeur/agedum
cd agedum
make dev-install   # uv sync --all-groups
make test          # uv run pytest
make lint          # ruff check + ruff format --check
make run -- --version

agedum is a uv-managed project (Python ≥ 3.12). The version is derived from the git tag (vX.Y.Z) at build time via hatch-vcs — never committed. A source tree with no tag resolves to a dev version. Commit uv.lock; .venv/ stays gitignored.

Build the docs locally

make docs          # build the static site into site/ (strict)
make docs-serve    # live-reload preview at http://127.0.0.1:8000

Release

Tag the commit vX.Y.Z and push the tag; the release workflow builds the wheel and publishes it to PyPI via OIDC trusted publishing (no token in the repo). Tag only after merge.