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.md(honours$XDG_CONFIG_HOME) and~/.agents/skills/.
If neither scope has any AGENTS.md or skills, agedum prints a warning and runs your
command with nothing injected. See 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/)
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.