One objective in. A software world unfolds.
Open-source AI agents for software development.
Describe the software you want. Genesis coordinates agents to build, validate, and evolve it.
Download Genesis · Website · Docs · Evidence · Paper
genesis-promo.mp4
Eighty seconds. One objective.
Watch the film on the website →
- 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
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
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.
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 (/help) — 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.
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 statusOpen 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 →
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 = 128000Set 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.
From source, the task CLI accepts the same concrete selection:
mix run -e 'EvoGit.CLI.main(System.argv())' -- evolve "Fix the bug" \
--provider-profile openai-main --model gpt-5 --reasoning-effort highOmit selection flags for Auto; explicit selections are validated before enqueueing and do not change scheduler configuration. Legacy [[llm.models]] configuration and lone -m selectors remain compatibility inputs; use provider profiles for new configuration.
See Provider profiles and concrete model selection for defaults, migration, CLI compatibility, and scheduling details.
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.
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.
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.serverOpen http://localhost:4100.
Build the desktop app or use the Nix dev shell →
Benchmark your machine's I/O
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.jsonThe 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.
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.