Skip to main content

Drive any agent CLI from an agent-neutral source shape (AGENTS.md + .agents/skills), translating per harness at launch.

Project description

agedum

Latin agedum — "go on! / get going!"

Drive any agent CLI from an agent-neutral source shape, translating per harness at launch. You keep one set of sources; agedum renders them for whichever agent CLI you run.

  • Instructions live in a root AGENTS.md (plain markdown).
  • Skills live in .agents/skills/<name>/ as SKILL.md (+ optional task files, scripts, and a per-harness SKILL.<harness>.md overlay).

At launch, agedum compiles that shape to the harness's native layout in a throwaway dir, then runs your command inside a private mount namespace (bubblewrap) where the compiled files appear at their expected paths — visible only to that process, never written into your real tree or $HOME. For Claude: AGENTS.mdCLAUDE.md and .agents/skills/<name>/.claude/skills/<name>/ (the base SKILL.md merged with an optional SKILL.claude.md overlay).

Status: Claude harness, project + global scope, implemented. Each scope lands at its own Claude location — project → ./CLAUDE.md + ./.claude/skills/, global (~/.config/agents/AGENTS.md + ~/.agents/skills/) → ~/.claude/CLAUDE.md

  • ~/.claude/skills/ (honours $CLAUDE_CONFIG_DIR). They're never merged; Claude reads both. Only those two ~/.claude paths are overlaid for the child — your ~/.claude.json auth and other settings are untouched.

kimi (--kimi) is also supported. Instructions can only be injected via a flag, so agedum augments the command: merged global+project AGENTS.md → a transient --agent-file YAML. Skills are binds: global → ~/.kimi/skills/, project → ./.kimi/skills/ (both auto-read by kimi). Other harnesses (opencode) are follow-ups. Linux-only; requires bwrap on PATH.

Usage

# Run a command with virtual files injected from the project + global source:
agedum --claude -- claude --model sonnet -p "review this"
agedum --claude -- claude              # interactive
agedum --kimi   -- kimi -p "explain this code"

agedum --version

Everything after -- is the command, run verbatim; the context flag before -- (--claude) chooses the format. The two are decoupled, so one context can front any command. Injected paths must be gitignored — agedum refuses to overlay a git-tracked file (the namespace shares your real .git).

Install

pipx install agedum        # standalone CLI (once published)

Develop

make dev-install   # uv sync --all-groups
make test          # pytest
make lint          # ruff check + format --check
make run -- --version

Python ≥ 3.12, managed with uv. The version is derived from the git tag (vX.Y.Z) at build time via hatch-vcs — never committed.

Release

Tag the commit vX.Y.Z and push the tag; the release workflow builds and publishes to PyPI via OIDC trusted publishing.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agedum-0.3.0.tar.gz (32.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agedum-0.3.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file agedum-0.3.0.tar.gz.

File metadata

  • Download URL: agedum-0.3.0.tar.gz
  • Upload date:
  • Size: 32.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agedum-0.3.0.tar.gz
Algorithm Hash digest
SHA256 4d3be7410b3d116859757d9a64ca12592255b86af4db2830690f659029981f5f
MD5 e6c25efd526706996b2174da00db3c6e
BLAKE2b-256 0132c687fa5f7c41adfeb4610dc3a697cee17b4bd6b9c03d47f2a2ba44317b9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for agedum-0.3.0.tar.gz:

Publisher: release.yml on vcoeur/agedum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agedum-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: agedum-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for agedum-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b871bb13276fd61e5e90e4c6e34b4940969b71be8f77aab430a86bb045cf7db
MD5 16ec33d71b7e1d7d474dffe10548a151
BLAKE2b-256 1000a76c181a9c24a1e23f2451cfc71fc5cf9f387e7119843747d721524df4c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for agedum-0.3.0-py3-none-any.whl:

Publisher: release.yml on vcoeur/agedum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page