Genesis AI Agent
EvoX Genesis is an autonomous system for long-horizon software evolution that recursively builds, continues, and transforms complex software from high-level objectives.
Genesis is an open-source ai agent by EMI-Group, written mainly in Elixir, with 76 GitHub stars and the AGPL-3.0 license. Its code was last updated Oct 30, 2026.
https://github.com/user-attachments/assets/d7f3d520-e39f-45cd-a525-77e5e8d00a75
<p align="center"> <strong>Eighty seconds. One objective.</strong><br> <a href="https://genesis.evox.group/#film">Watch the film on the website →</a> </p>Use from a coding agent
The local MCP endpoint exposes task submission, progress, messaging and cancellation to compatible coding agents. Genesis runs the development work with its own configured models; the caller supplies context and checks the returned changes. Build this revision from source and follow the guide to configure a local credential and connect your MCP host.
See development unfold
- Set an objective. Start a new project or bring an existing repository. Describe the outcome and constraints; Genesis decomposes the work as needed.
- Follow the work. Watch the recursive agent tree, inspect tasks and model usage, and review diffs in the desktop dashboard.
- Keep developing. Continue from accepted results, refine the objective, or move execution to a server while keeping your local dashboard.
New projects · Existing repositories · Remote development
<!-- evidence:start -->Built with Genesis
Selected software worlds developed with Genesis.
| Project | What emerged | Reported result |
|---|---|---|
| C Compiler | A Rust-based C compiler built from scratch | 220 / 220 c-testsuite |
| MESA | 13 Fortran modules redeveloped in Rust | 1,052 / 1,052 (0 failures) Rust test suite |
| tbench-wasm | A software WebGL renderer in TypeScript | 2,017 / 2,019 (99.90%) Khronos WebGL CTS |
Latest evidence: EvoX Compiler · 2026-10-28
<!-- evidence:end -->The world persists. Agents do not.
<p align="center"> <picture> <source media="(prefers-reduced-motion: reduce) and (prefers-color-scheme: dark)" srcset="docs/images/readme/genesis-agent-history-dark.png"> <source media="(prefers-reduced-motion: reduce)" srcset="docs/images/readme/genesis-agent-history-light.png"> <source media="(prefers-color-scheme: dark)" type="image/avif" srcset="docs/images/readme/genesis-agent-history-dark.avif"> <source type="image/avif" srcset="docs/images/readme/genesis-agent-history-light.avif"> <source media="(prefers-color-scheme: dark)" srcset="docs/images/readme/genesis-agent-history-dark.png"> <img src="docs/images/readme/genesis-agent-history-light.png" alt="Recursive Genesis agents delegate subtasks, commit changes on separate branches, and merge accepted work into main." width="720"> </picture> </p>An objective becomes local work. Managers break down the goal, delegate tasks, and review the results. Executors implement and validate candidate changes in isolated Git worktrees.
Each task has a place. An accepted software version records what has been built; a repository path defines context, responsibility, and scope. CONTEXT.md files make these local contracts explicit.
Accepted results carry forward. The hierarchy unfolds as development proceeds. Agents finish their episodes; software versions and project history remain as the starting point for subsequent work.
Start with an objective
Desktop app
Download Genesis → for macOS, Linux, or Windows. The website selects the installer for your platform; all published builds are available in GitHub Releases.
- Install and open Genesis.
- Configure a provider profile in Settings (API key or supported subscription OAuth), then choose its default model and, where supported, reasoning effort.
- Create a project or select an existing repository, then describe what you want to build.
For example:
Add rate limiting to this API. Preserve existing endpoint behavior, make the limits configurable, and add tests for requests above and below the limit.
Installation guide · Model configuration
Want to understand or operate Genesis? Open Assistant (/assistant) — Genesis Assistant understands the running system and can act on it: it reads Genesis source and inspects runtime state without approval, drives tasks and scheduler/configuration changes only after you approve the exact action, and answers in your language. See the Genesis Assistant guide for capabilities and safety boundaries.
Headless server
Run the dashboard and agent runtime on Linux (x86_64 or ARM64) or macOS (Apple Silicon):
curl -LsSf https://genesis.evox.group/dl/install.sh | sh
genesis start
genesis status
genesis update --check # is a newer server release available?
genesis update # install it and restart the server
Open http://127.0.0.1:9999 and configure your model provider in Settings. The server listens on localhost by default and has no built-in authentication; use an SSH tunnel for remote access.
Server installation and service management →
Provider profiles and model selection
A provider profile represents an account: its models share authentication, endpoint, concurrency, peak-hour schedules, and rate-limit backoff. Separate account IDs keep separate resource pools, even when they use the same provider and model.
In the task form, select Provider profile → Model → Reasoning effort; reasoning is a model-specific slider shown only when supported. An explicit choice locks that concrete selection for the task and its agents. Auto (by rules) leaves selection to your configured rules and defaults.
For example, in ~/.config/genesis/config.toml:
[llm]
default_provider_profile = "openai-main"
[[llm.providers]]
id = "openai-main"
provider = "openai"
auth_mode = "api_key"
api_key_env_var = "OPENAI_API_KEY"
concurrency = 3
default_model = "gpt-5"
reasoning_efforts = ["low", "medium", "high"]
default_reasoning_effort = "medium"
context_window = 200000
# Optional schedule shared by all models in this account:
peak_concurrency = 1
peak_hours = [{ start = "09:00", end = "18:00", days = ["weekdays"] }]
off_peak_days = ["sat", "sun"]
timezone = "Asia/Hong_Kong"
[[llm.providers.models]]
model = "gpt-5"
[[llm.providers.models]]
model = "gpt-5-mini"
default_reasoning_effort = "low"
context_window = 128000
Set OPENAI_API_KEY on the node running the task; do not put secrets in model rows. Nested model settings override generation, context-window, and reasoning defaults, not account authentication or capacity. The reasoning default is explicit—it is not inferred from the first effort in the list. OAuth uses account-level auth_mode = "oauth" and optional oauth_file; see subscription authentication.
The same concrete selection is available outside the task form through the MCP tool's task submission. An explicit choice locks that Provider profile → Model → Reasoning effort selection for the task and its agents, while Auto (by rules) keeps your configured defaults.
Legacy [[llm.models]] configuration remains a compatibility input; use provider profiles for new configuration. EvoGit.Config.Schema.resolve_model_spec/2 validates a programmatic selection before it is enqueued.
See Provider profiles and concrete model selection for defaults, migration, and scheduling details.
Remote development
Keep the desktop dashboard on your laptop and run agents on a server through an encrypted SSH tunnel. Tasks continue when the connection drops, and you can manage multiple remote targets from one dashboard.
Built for long-running development
<picture> <source media="(max-width: 600px)" srcset="docs/images/readme/architecture-mobile.svg"> <img src="docs/images/readme/architecture.svg" alt="Three layers: the Tauri desktop shell supervises the backend; the Phoenix LiveView dashboard exposes tasks, agents and diffs; the Elixir/OTP core schedules agents and manages Git worktrees." width="960"> </picture>Git records software versions; SQLite stores runtime and task data. Candidate changes run in isolated worktrees, with platform-specific execution controls described in the sandbox documentation.
Run from source
Use Elixir 1.20.4 and Erlang/OTP 29 to match the repository's CI environment, with Git installed.
git clone https://github.com/EMI-Group/genesis.git
cd genesis
mix deps.get
mix assets.setup
mix phx.server
Open http://localhost:4100.
Build the desktop app or use the Nix dev shell →
<details> <summary>Benchmark your machine's I/O</summary>Agents create worktrees, read and write files, and commit changes. Measure this workload on your filesystem:
mix bench.io
mix bench.io --dir /mnt/nvme --iterations 10 --files 500 --writes 50
mix bench.io --json > bench.json
The benchmark creates and removes its own throwaway repository without starting the Genesis runtime. Results cover worktree creation, reads and writes, Git operations, and worktree reclamation.
</details>Research, community, and contributions
Genesis is developed by the EvoX Group at The Hong Kong Polytechnic University. For research and collaboration, get in touch. For bugs and feature requests, open an issue.
Contributions are welcome. See CONTRIBUTING.md for development guidelines and the contributor license agreement, which the CLA assistant handles on your first pull request.
Genesis grew out of EvoGit and follows the broader EvoX research lineage.
Released under the GNU Affero General Public License v3.0.
Genesis alternatives
View more →Similar ai agents in Coding Agents, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.
| Name | Stars | Licence | Last updated | Scan |
|---|---|---|---|---|
| Genesis (this page) EMI-Group | 76 | AGPL-3.0 | Oct 30, 2026 | Scanned, no flagged issues |
| AutoGPT Significant-Gravitas | 188k | None found | Nov 1, 2026 | Not scanned yet |
| Langchain langchain-ai | 149k | MIT | Nov 1, 2026 | Scanned, no flagged issues |
| Gemini CLI google-gemini | 109k | Apache-2.0 | Nov 1, 2026 | Scanned, no flagged issues |
| MetaGPT FoundationAgents | 71k | MIT | Jan 21, 2026 | Scanned, no flagged issues |
| Oh My Openagent code-yeongyu | 71k | None found | Nov 1, 2026 | Not scanned yet |