Install¶
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.
-
bwraponPATH. 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 # ArchIf
bwrapis 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 toolmanage 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.mdand~/.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.