Container manager for software repositories that leverage AI agents
b8088ef69b23
incus: project_ensure creates with all features disabled (share profiles/images/etc with default project)
Chris Tusa <chris.tusa@leafscale.com>
24 days ago
repoman
Per-project Incus containers + opinionated NFS/ZFS backup. v0.1.
Build
reefc build
Produces ./build/repoman.
Test
for t in tests/test_*.reef; do
echo "== $t =="
reefc run "$t" || exit 1
done
Install
System-wide via Makefile (uses reefc build under the hood):
make
sudo make install # installs to /usr/local/bin/repoman
Quickstart
# First run creates ~/.config/repoman/repoman.toml with sane defaults.
repoman --help
repoman new isurus --repo isurus-project
repoman sync --dry-run
Smoke test (requires Incus + NFS)
# In an existing repo dir under ~/repos:
repoman new test-foo
repoman sync test-foo --dry-run
incus delete --project repoman test-foo
Configuration
Central registry: ~/.config/repoman/repoman.toml (managed; do not edit while repoman is running).
Per-project overrides: ~/.config/repoman/repos.d/<container-name>.toml (user-authored). Example:
[container]
image = "images:debian/12/cloud"
profiles = ["default", "claude-share", "node-dev"]
[[mount]]
source = "~/.npm"
path = "/home/ctusa/.npm"
[env]
NODE_ENV = "development"
Recommended Incus profile: claude-share
For the agent-friendly setup repoman is built around, create a shared profile that exposes the user's Claude state:
# (one-time)
incus profile create claude-share
incus profile edit claude-share # add your bind-mounts for ~/.claude, etc.
repoman uses profiles default and claude-share by default; override per-project in repos.d/<name>.toml.
License
CDDL-1.0
Languages
Activity
138 commits
Updated 2 hours ago