{"id":46901642,"url":"https://github.com/automagik-dev/genie","last_synced_at":"2026-05-20T08:04:28.795Z","repository":{"id":307589541,"uuid":"1030039430","full_name":"automagik-dev/genie","owner":"automagik-dev","description":"Wishes in, PRs out. CLI agent that interviews you, plans the work, dispatches parallel agents in isolated worktrees, and reviews code before you see it.","archived":false,"fork":false,"pushed_at":"2026-04-03T08:12:14.000Z","size":92990,"stargazers_count":274,"open_issues_count":30,"forks_count":41,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T09:54:30.511Z","etag":null,"topics":["ai-agents","ai-developer-tools","anthropic","automation","autonomous-agents","claude","claude-code","cli","coding-agents","context-engineering","developer-tools","llm","mcp","orchestration","parallel-agents","productivity","terminal","typescript","vibe-coding","worktrees"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@automagik/genie","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/automagik-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"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":null,"dco":null,"cla":null}},"created_at":"2025-08-01T02:00:02.000Z","updated_at":"2026-04-03T08:11:25.000Z","dependencies_parsed_at":"2025-08-01T03:43:22.205Z","dependency_job_id":"8a594e62-705d-4e03-9250-9e20165ebf4f","html_url":"https://github.com/automagik-dev/genie","commit_stats":null,"previous_names":["namastexlabs/automagik-genie","automagik-dev/genie"],"tags_count":710,"template":false,"template_full_name":null,"purl":"pkg:github/automagik-dev/genie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automagik-dev%2Fgenie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automagik-dev%2Fgenie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automagik-dev%2Fgenie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automagik-dev%2Fgenie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/automagik-dev","download_url":"https://codeload.github.com/automagik-dev/genie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automagik-dev%2Fgenie/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31481242,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-agents","ai-developer-tools","anthropic","automation","autonomous-agents","claude","claude-code","cli","coding-agents","context-engineering","developer-tools","llm","mcp","orchestration","parallel-agents","productivity","terminal","typescript","vibe-coding","worktrees"],"created_at":"2026-03-11T00:09:20.741Z","updated_at":"2026-05-20T08:04:28.781Z","avatar_url":"https://github.com/automagik-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003cimg src=\".github/assets/genie-header.png\" alt=\"Genie\" width=\"800\" /\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eWishes in, PRs out.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@automagik/genie\"\u003e\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/v/@automagik/genie?style=flat-square\u0026color=00D9FF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@automagik/genie\"\u003e\u003cimg alt=\"downloads\" src=\"https://img.shields.io/npm/dm/@automagik/genie?style=flat-square\u0026color=00D9FF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/automagik-dev/genie/stargazers\"\u003e\u003cimg alt=\"stars\" src=\"https://img.shields.io/github/stars/automagik-dev/genie?style=flat-square\u0026color=00D9FF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"license\" src=\"https://img.shields.io/github/license/automagik-dev/genie?style=flat-square\u0026color=00D9FF\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://discord.gg/xcW8c7fF3R\"\u003e\u003cimg alt=\"discord\" src=\"https://img.shields.io/discord/1095114867012292758?style=flat-square\u0026color=00D9FF\u0026label=discord\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003e [!IMPORTANT]\n\u003e **Genie's npm distribution is being soft-deprecated** in favor of a cosign + SLSA-verified install through our own CDN.\n\u003e\n\u003e The canonical install going forward is:\n\u003e\n\u003e ```bash\n\u003e curl -fsSL https://get.automagik.dev/genie | bash\n\u003e ```\n\u003e\n\u003e Existing operators on `npm install -g @automagik/genie` continue to work — the npm package will become a thin postinstall shim that downloads and runs the verified installer. See [Security \u0026 Trust → Distribution Sovereignty](https://automagik.dev/genie/security/distribution-sovereignty) for the threat model and verification flow.\n\n\u003cbr /\u003e\n\n\u003c!-- TODO: Record a 30s terminal demo with vhs/asciinema and uncomment:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\".github/assets/genie-demo.gif\" alt=\"Genie demo\" width=\"720\" /\u003e\n\u003c/p\u003e\n--\u003e\n\n\u003c!-- METRICS:START --\u003e\n**🚀 33 commits** this week · **0 releases** · **+1.1K LoC** · **5 contributors**\n\n![Commits per day (30d, all branches)](.genie/assets/commits-30d.svg)\n\n[📊 Full velocity dashboard →](VELOCITY.md)\n\u003c!-- METRICS:END --\u003e\n\nGenie is a CLI that turns one sentence into a finished pull request. You describe what you want — Genie interviews you, writes a plan, spawns parallel agents in isolated worktrees, reviews the code, and opens a PR. You approve. You merge. That's it.\n\n## Get started\n\nPaste this into Claude Code, Codex, or any AI coding agent:\n\n```\nInstall Genie and set up this project:\n\ncurl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash\ngenie\n/wizard\n```\n\nThat's it. The wizard interviews you, scaffolds your project, and walks you through your first wish. Relax.\n\nOr install manually:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/automagik-dev/genie/main/install.sh | bash\n```\n\n### Manual install (canonical pgserve first)\n\nIf you'd rather lay the pieces down yourself, install canonical pgserve\nbefore genie. Genie is a consumer of the pm2-supervised pgserve daemon —\nit never spawns its own. See [docs/install.md](docs/install.md) for the\nrationale and migration tips.\n\n```bash\n# 1. Canonical pgserve (registers a pm2-supervised singleton)\nbun add -g pgserve@^2\npgserve install\n\n# 2. Genie (will refuse to install if pgserve is unreachable)\nbun add -g @automagik/genie\ngenie install\n\n# 3. Verify\ngenie doctor\n```\n\n## What you get\n\n```\n  \"Add dark mode\"\n       |\n   /brainstorm ──── Genie asks questions until the idea is concrete\n       |\n   /wish ────────── Turns it into a plan: scope, criteria, task groups\n       |\n   /work ────────── Agents spawn in parallel worktrees, each on its own branch\n       |\n   /review ──────── 10 critics review. Severity-tagged. Nothing ships dirty.\n       |\n   Pull Request ─── You approve. You merge. Ship it.\n```\n\n**Parallel agents.** Not one agent doing everything sequentially — multiple agents working at the same time in isolated worktrees. No conflicts. No re-explaining context.\n\n**Automated review.** A 10-critic council (architecture, security, DX, performance, ops, and more) reviews every design before you see it. Severity-tagged findings. CRITICAL blocks the PR.\n\n**Overnight mode.** `/dream` — queue wishes before bed. Wake up to reviewed PRs.\n\n**Kanban boards.** Built-in task boards with custom pipelines and stage gates.\n\n**Postgres-backed.** All state lives in PostgreSQL — agents, tasks, events, messages. Queryable. Durable. Real-time via LISTEN/NOTIFY.\n\n**Full observability.** Events, metrics, session replay, cost tracking. See everything your genie-spawned agents do — OTel-derived tool, cost, and API-request rows only cover sessions launched via `genie spawn` / `genie team create`; user-initiated Claude Code sessions are captured only when they export the OTLP env themselves.\n\n**Portable context.** Identity, skills, memory — all markdown files in your repo, git-versioned. You own everything.\n\n**Any AI provider.** Claude, Codex, or any OpenAI-compatible model. Bring your own agent.\n\n## Why Genie?\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### Without Genie\n\n- Re-explain context every new chat\n- One agent, one file at a time\n- Copy-paste PR descriptions manually\n- Review AI code yourself, line by line\n- Context lost mid-conversation\n- No memory between sessions\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### With Genie\n\n- Context captured once, inherited by every agent\n- Parallel agents in isolated worktrees\n- Automated severity-gated code review\n- Queue wishes overnight, wake up to PRs\n- 10-critic council catches what you'd miss\n- Persistent memory across sessions\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Skills\n\n17 built-in skills that compose into workflows:\n\n| Skill | What it does |\n|-------|-------------|\n| `/brainstorm` | Explore vague ideas with guided questions |\n| `/wish` | Turn an idea into a scoped plan with acceptance criteria |\n| `/work` | Execute a wish with parallel agents |\n| `/review` | Severity-gated code review (SHIP or FIX-FIRST) |\n| `/council` | 10-perspective architectural deliberation |\n| `/dream` | Batch-execute wishes overnight |\n| `/trace` | Investigate bugs — reproduce, isolate, root cause |\n| `/fix` | Minimal targeted bug fixes |\n| `/report` | Deep investigation with browser + trace |\n| `/refine` | Transform rough prompts into structured specs |\n| `/learn` | Correct agent behavior from mistakes |\n| `/docs` | Audit and generate documentation |\n| `/pm` | Full project management playbook |\n| `/brain` | Knowledge graph with Obsidian-compatible vaults |\n| `/genie` | Auto-router — natural language to the right skill |\n| `/genie-hacks` | Community patterns and real-world workflows |\n| `/wizard` | Guided first-run onboarding |\n\n## What's new in v4\n\nv4 is a ground-up rewrite. 700 commits. 300 files. ~19K lines.\n\n| | v3 | v4 |\n|---|---|---|\n| **State** | JSON files + NATS | PostgreSQL + LISTEN/NOTIFY |\n| **UI** | CLI only | Full terminal UI |\n| **Memory** | None | Optional knowledge brain |\n| **Tasks** | Basic | Kanban boards, templates, projects |\n| **Observability** | Minimal | OTLP, session capture, audit trail |\n| **Review** | Single pass | 10-critic council deliberation |\n| **Stability** | Best effort | Advisory locks, spawn watchdog, 200+ bug fixes |\n\n[Full v4 release notes →](https://github.com/automagik-dev/genie/releases/tag/v4.260402.18)\n\n### Observability substrate (v0)\n\nStructured event emission, signed subscription tokens, 4-tier retention, and\nan external dead-man's switch. Consumer-compat promises are published at\n[docs/observability-contract.md](docs/observability-contract.md); the 5-phase\nrollout plan at [docs/observability-rollout.md](docs/observability-rollout.md).\n\n### Executor read endpoint\n\nExternal consumers (e.g. the omni scope-enforcer) can query ground-truth turn\nstate directly from `genie serve`. Two paths are supported:\n\n**HTTP** — `GET http://127.0.0.1:\u003cport\u003e/executors/:id/state` returns\n`{state, outcome, closed_at}` as JSON. The default port is `pgserve_port + 2`;\noverride with `GENIE_EXECUTOR_READ_PORT`. Returns 404 for unknown IDs, 400 for\nnon-UUID IDs, 200 otherwise. No authz — executor IDs are random UUIDs and the\nview exposes no secrets.\n\n**Direct SQL** — connect to genie-PG as the read-only `executors_reader` role\nand `SELECT state, outcome, closed_at FROM executors_public_state WHERE id = $1`.\nLayer login credentials on top:\n\n```sql\nCREATE ROLE omni_scope_enforcer LOGIN PASSWORD '…' IN ROLE executors_reader;\n```\n\nResponse shape (`state` / `outcome` / `closed_at`) is the stable boundary\ncontract; removing or renaming fields is a coordinated breaking change.\n\n## Design\n\nGenie ships a single, dark-only color palette inspired by **Severance** — the Lumon MDR room. One source of truth (`packages/genie-tokens/`), three consumers (TUI, desktop app, tmux). See [docs/design-system.md](docs/design-system.md) for tokens, the Severance rationale, how to add a color, how to regenerate the tmux theme, and the visual snapshot workflow.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docs.automagik.dev/genie\"\u003e\u003cstrong\u003eDocs\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"docs/design-system.md\"\u003e\u003cstrong\u003eDesign\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://github.com/automagik-dev/genie/releases/tag/v4.260402.18\"\u003e\u003cstrong\u003ev4 Release\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://discord.gg/xcW8c7fF3R\"\u003e\u003cstrong\u003eDiscord\u003c/strong\u003e\u003c/a\u003e \u0026middot;\n  \u003ca href=\"LICENSE\"\u003e\u003cstrong\u003eMIT License\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003eYou describe the problem. Genie does everything else.\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomagik-dev%2Fgenie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautomagik-dev%2Fgenie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomagik-dev%2Fgenie/lists"}