{"id":50734230,"url":"https://github.com/dotbrains/eden","last_synced_at":"2026-06-10T12:01:47.626Z","repository":{"id":355309366,"uuid":"1226144328","full_name":"dotbrains/eden","owner":"dotbrains","description":"Python orchestrator for AI coding agents in sandboxed worktrees.","archived":false,"fork":false,"pushed_at":"2026-06-10T08:01:29.000Z","size":950,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T09:23:49.507Z","etag":null,"topics":["agents","claude-code","codex","docker","podman","python","sandbox","worktree"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotbrains.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-01T02:54:52.000Z","updated_at":"2026-06-10T08:01:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dotbrains/eden","commit_stats":null,"previous_names":["dotbrains/eden"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/dotbrains/eden","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotbrains%2Feden","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotbrains%2Feden/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotbrains%2Feden/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotbrains%2Feden/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotbrains","download_url":"https://codeload.github.com/dotbrains/eden/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotbrains%2Feden/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34151276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","claude-code","codex","docker","podman","python","sandbox","worktree"],"created_at":"2026-06-10T12:01:46.710Z","updated_at":"2026-06-10T12:01:47.618Z","avatar_url":"https://github.com/dotbrains.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Eden\n\n[![CI](https://github.com/dotbrains/eden/actions/workflows/ci.yml/badge.svg)](https://github.com/dotbrains/eden/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/eden-agent.svg?cacheSeconds=3600)](https://pypi.org/project/eden-agent/)\n[![Python](https://img.shields.io/pypi/pyversions/eden-agent.svg?cacheSeconds=3600)](https://pypi.org/project/eden-agent/)\n[![License](https://img.shields.io/badge/license-PolyForm%20Shield-blue)](LICENSE)\n\nPython orchestrator for AI coding agents in sandboxed git worktrees.\n\nEden creates a fresh git worktree on a new branch, runs a coding agent (Claude Code, Codex, opencode, pi, or any line-streaming CLI) inside a sandbox (Docker, Podman, isolated, Daytona, Vercel, or forkd microVMs), captures its output, and commits the changes back. You get a branch with one clean commit per iteration, ready to review or merge.\n\n```mermaid\nflowchart LR\n    Repo[(Host repo)] --\u003e WT[Fresh worktree\u003cbr/\u003eon new branch]\n    WT --\u003e SB[Sandbox\u003cbr/\u003edocker • podman • isolated\u003cbr/\u003edaytona • vercel • forkd • no_sandbox]\n    SB --\u003e Agent[Coding agent\u003cbr/\u003eclaude_code • codex\u003cbr/\u003eopencode • pi • cli_agent]\n    Agent --\u003e|stdout stream| Loop{iteration loop}\n    Loop --\u003e|commit per iteration| Branch[Eden branch]\n    Loop --\u003e|next iteration| Agent\n    Branch --\u003e Repo\n```\n\n## Install\n\n```bash\npip install eden-agent\n```\n\nRequires Python 3.11+.\n\n## Quick example\n\nThe `simulated_agent` runs without any external CLI installed. Run this from inside a git repository:\n\n```python\nfrom pathlib import Path\n\nfrom eden import run, simulated_agent\nfrom eden.sandboxes.no_sandbox import provider as no_sandbox\n\nresult = run(\n    cwd=Path.cwd(),\n    sandbox=no_sandbox(),\n    agent=simulated_agent(\n        output=\"hello from the simulated agent\\n\u003cpromise\u003eCOMPLETE\u003c/promise\u003e\\n\",\n    ),\n    prompt=\"ignored by the simulated agent\",\n    max_iterations=1,\n)\n\nprint(f\"branch: {result.branch}\")\nprint(f\"iterations: {len(result.iterations)}\")\n```\n\nFor a real agent, scaffold a project:\n\n```bash\neden init --sandbox docker --agent claude-code --yes\ncp .eden/.env.example .env  # then fill in API keys\ndocker build -t eden:$(basename $(pwd)) -f .eden/Dockerfile .\npython .eden/main.py\n```\n\n## Development with Flox\n\nEden uses [Flox](https://flox.dev) in two distinct ways — don't conflate them:\n\n1. **The repo dev toolchain** — the [`.flox/`](.flox/) environment that sets up *your* machine to work on Eden.\n2. **Per-agent runtimes** — an optional, separate environment each agent declares for *its own* CLI.\n\n### Repo dev toolchain\n\nOn Linux/macOS the repo ships a declarative, lockfile-pinned dev environment under [`.flox/`](.flox/). With Flox installed:\n\n```bash\nflox activate # provisions toolchain + builds .venv on first run\npytest -m \"unit or e2e\"\npre-commit run --all-files\n```\n\n`flox activate` provides Python 3.11/3.12/3.13, git, gh, the docker/podman clients, pre-commit, and make, then builds `.venv` via `pip install -e \".[dev]\"`. Pick the interpreter with `EDEN_PYTHON` (e.g. `EDEN_PYTHON=python3.12 flox activate`; defaults to `python3.11`).\n\nFlox is Linux/macOS only — on Windows, install directly with `python -m pip install -e \".[dev]\"`. See [`AGENTS.md`](AGENTS.md#setup-and-development-commands) for the full command list.\n\n### Per-agent runtimes\n\nSeparately, each **agent** can declare its own Flox runtime via `flox_env=` on its factory. Eden then runs that agent's CLI inside `flox activate -d \u003cdir\u003e -- \u003cargv\u003e`, so the agent gets a declared, lockfile-pinned toolchain instead of inheriting the host's. See [Agents — Per-agent Flox runtime](docs/agents.md#per-agent-flox-runtime).\n\n## Documentation\n\nFull documentation lives in [`docs/`](docs/README.md):\n\n- [What is Eden?](docs/what-is-eden.md) — positioning and feature matrix\n- [Quick start](docs/quick-start.md) — five-minute tour\n- [Tutorial: build your first agent loop](docs/tutorial-first-loop.md) — 10-minute walkthrough that ends with a real agent fixing a real bug\n- [Python API reference](docs/python-api.md) — every name importable from `eden`\n- [How it works](docs/how-it-works.md) — branch strategies, sandbox lifecycle, iteration loop\n- [Sandbox providers](docs/sandbox-providers.md) — seven provider catalog\n- [Agents](docs/agents.md) — six agent factories\n\n## License\n\n[PolyForm Shield 1.0.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotbrains%2Feden","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotbrains%2Feden","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotbrains%2Feden/lists"}