Ephemeral Git servers for fearless experimentation.
Mirror, work, promote — then throw it away.
Constant automated operations against GitHub burn through API rate limits, stalling real workflows.
Experimental branches, throwaway commits, test issues, and draft PRs clutter real repositories.
Creating hundreds of test repos for experimentation is impractical. Cleanup is a manual burden.
Every experimental commit touches production infrastructure. There's no way to freely experiment without worrying about cleanup or collateral damage.
On-demand, ephemeral Gitea Docker instances. Mirror real repos, work freely in isolation, promote results back to GitHub when ready.
Spin up a Gitea Docker container with one command. SQLite-backed, offline-mode, hardcoded admin — optimized for ephemeral use.
Snapshot a GitHub repo into Gitea — git content, issues, PRs, and labels. One-time copy, not continuous sync.
Freely create branches, commits, issues, and PRs against the Gitea instance. Zero impact on GitHub.
Push a branch back to GitHub as a PR via HTTP (no git binary needed), then tear down the container.
User or AI agent — drives the CLI
Ephemeral Docker instance — git server with issues, PRs, branches
Real repos — mirrored in, promoted back to
create / destroy / status / list / token — managed by this package
Standard Gitea API — repos, issues, PRs, branches. Consumer uses Gitea directly.
mirror-from-github and promote-to-github — the bridge between worlds
The promote-to-github command fetches trees from Gitea and GitHub via API, diffs them, then creates blobs, trees, commits, refs, and PRs entirely over HTTP. No git binary needed on the host.
Functions as both a standalone CLI tool AND an Amplifier bundle with skills, behaviors, and context documents — so AI agents know how to use it natively.
No local metadata files to drift out of sync. All state is discovered by querying Docker labels directly. Consumer controls networking with --network, --add-host, --hostname.
Every command returns JSON to stdout. Designed for programmatic consumption by agents, scripts, and orchestration layers.
An AI agent driving the complete flow through conversation:
Agent invokes amplifier-gitea create — container spins up in seconds
Agent runs mirror-from-github — snapshots repo content, issues, PRs, labels
Agent works against isolated Gitea — commits, branches, all local. Zero GitHub noise.
Agent invokes amplifier-gitea destroy — container and all data gone. Clean.
~929 lines of source, ~944 lines of tests. Tests invoke uv run amplifier-gitea as a subprocess — real Gitea containers, real GitHub PRs, no mocks.
Integration tests spin up actual Gitea containers. GitHub tests create real PRs then clean up.
Promotion uses GitHub's Git Data API. Fetches trees, diffs, creates blobs/trees/commits/refs/PRs entirely over HTTP.
SQLite, offline mode, hardcoded admin. Optimized for ephemeral use — not configurable complexity.
amplifier-bundle-gitea is a foundational building block for the Amplifier Digital Twin Universe (DTU) — complete, isolated "digital twin" environments stood up on demand from a declarative profile.
Simulates the world code will live in. Consumers can install, run, and experience software like a real user — in a fully isolated environment.
Provides the git server component inside digital twin environments. Real repos, real operations, zero production impact.
"Woohoo! That's awesome and very timely!"
Install with one command. Create disposable Gitea instances for any workflow that needs an isolated git server.