[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-76261":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":28,"discoverSource":29},76261,"agent-game-forge","0x0funky\u002Fagent-game-forge","0x0funky","The local-first, bring-your-own-agent 2D game IDE. Codex or Claude Code drives, multi-engine on the roadmap.","",null,"TypeScript",163,15,1,0,2,8,53,6,3.61,"Apache License 2.0",false,"main",[],"2026-06-12 02:03:41","\u003Cp align=\"center\">\n  \u003Cimg src=\"apps\u002Fweb\u002Fpublic\u002Fagf-banner.png\" alt=\"Agent Game Forge\" width=\"640\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>The local-first, bring-your-own-agent 2D game IDE.\u003C\u002Fb>\u003Cbr\u002F>\n  Codex or Claude Code drives. Web today, Godot and Unity on the roadmap.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>English\u003C\u002Fb> ·\n  \u003Ca href=\".\u002FREADME.es.md\">Español\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.pt-BR.md\">Português (Brasil)\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.de.md\">Deutsch\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.fr.md\">Français\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.zh-TW.md\">繁體中文\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.ko.md\">한국어\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.ja.md\">日本語\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.ar.md\">العربية\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.ru.md\">Русский\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.uk.md\">Українська\u003C\u002Fa> ·\n  \u003Ca href=\".\u002FREADME.tr.md\">Türkçe\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F0x0funky\u002Fagent-game-forge\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002F0x0funky\u002Fagent-game-forge?style=flat\" alt=\"stars\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue\" alt=\"license\"\u002F>\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-pre--launch-blue\" alt=\"status\"\u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-%E2%89%A520-success\" alt=\"node 20+\"\u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  🎨 Sprite pipeline powered by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F0x0funky\u002Fagent-sprite-forge\">\u003Cb>agent-sprite-forge\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nAgent Game Forge (**AGF**) is an open-source desktop IDE that lets an AI coding agent build complete 2D games for you — sprites, parallax backgrounds, physics, hazards, pickups, scene layouts — and gives you a visual editor to drag-tweak whatever the agent got wrong. **You pick the agent** (Codex CLI or Claude Code) and **you pick the image gen** — bring your own API key, or use Codex CLI's built-in image gen (GPT-Image2). Today the default output is vanilla JS + Canvas (zero framework lock-in, runs in any browser); Godot 4 and Unity engine targets are on the roadmap.\n\n---\n\n## ✨ At a glance\n\n- 🤖 **Bring your own agent** — Codex CLI or Claude Code. Switch in Settings. Live.\n- 🎨 **Production-grade asset pipeline** — sprite-sheet chroma-key, multi-action animation, parallax 4-layer tileable + despill — all first-class, not bolted on.\n- 🖼️ **Bring your own image gen** — supply an API key for your preferred image provider, or use Codex CLI's built-in image gen (GPT-Image2). Keys stay on your machine.\n- 🧱 **Visual scene editor** — drag platforms, hazards, pickups, colliders; hitbox overlay; live reload to the Play tab.\n- 📦 **Multi-engine on the roadmap** — Web (vanilla JS + Canvas) ships today with zero framework lock-in (push to GitHub Pages, it runs). Godot 4 and Unity targets planned.\n- 💻 **Local-first, open source** — daemon + web UI on `localhost`; your project files stay on your disk; MIT-style intent.\n- 💰 **Cost-transparent** — Settings panel shows today's image-gen call count and estimated $ spend per provider.\n\n---\n\n## 🎬 Demo\n\n**Hero shot** — the AGF window:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"apps\u002Fweb\u002Fpublic\u002Fhero-shot.png\" alt=\"AGF main window\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n**Settings** — pick your agent + API keys + image-gen defaults:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"apps\u002Fweb\u002Fpublic\u002Fsetting.png\" alt=\"AGF Settings modal\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n**Scene editor** — drag platforms, hazards, pickups, colliders:\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"apps\u002Fweb\u002Fpublic\u002Fscene-editor.png\" alt=\"AGF Scene editor\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## 🚀 Quick start\n\n**Requirements**: Node ≥ 20, npm ≥ 10, and **at least one** of:\n\n- [Codex CLI](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) — `npm i -g @openai\u002Fcodex`\n- [Claude Code](https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code) — `npm i -g @anthropic-ai\u002Fclaude-code`\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002F0x0funky\u002Fagent-game-forge.git\ncd agent-game-forge\nnpm install\nnpm run dev\n```\n\nThis launches:\n\n- **Daemon** at \u003Chttp:\u002F\u002Flocalhost:7621>\n- **Web UI** at \u003Chttp:\u002F\u002Flocalhost:7620>\n\nOpen the web URL. Click the gear icon (top-right) → **Settings**:\n\n1. **Agent CLI** — pick Codex or Claude Code (whichever you installed).\n2. **API keys** (only needed for Claude Code path) — paste your Gemini or OpenAI key. Daemon writes them to `~\u002F.ogf\u002Fsecrets.json` (mode 600). Env vars (`OPENAI_API_KEY`, `GEMINI_API_KEY`) override the file.\n3. **Image-gen defaults** — choose preferred provider + model.\n\nClose Settings. Open a project folder. Type a prompt like:\n\n> *\"Side-scroll platformer about a dog going home, with rooftop and park gate levels.\"*\n\nHit send. Watch the agent build it. Press **Play** when it stops.\n\n---\n\n## 🧭 How it works\n\n```\n        ┌──────────────┐    ┌──────────────────────────┐    ┌─────────────┐\nYou ─→  │  Web UI      │ ←→ │  Daemon (Node + SQLite)  │ ←→ │  Agent CLI  │\n        │  React canvas│    │  \u002Fapi\u002Fruns, \u002Fapi\u002Fscenes  │    │  (Codex \u002F   │\n        │  Scene editor│    │  \u002Fapi\u002Fgen-image (routed) │    │   Claude    │\n        └──────────────┘    └──────────────┬───────────┘    │   Code)     │\n                                           │                 └─────┬───────┘\n                                           ↓                       │\n                                    ┌──────┴──────┐                │\n                                    │ Gemini \u002F    │ ←──────────────┘\n                                    │ OpenAI API  │   (image gen via\n                                    │ (your key)  │    daemon HTTP)\n                                    └─────────────┘\n```\n\n**1. You talk to the agent in chat.** The web UI streams the conversation; SSE relays every token + tool call.\n\n**2. The agent reads AGF conventions and skills.** Each project is vendored with `.ogf\u002Fconventions\u002F` (universal + per-genre rules) and `.agents\u002Fskills\u002F` (sprite + map generation procedures). The agent follows the recipes — it doesn't reinvent the pipeline.\n\n**3. For images, the agent calls the daemon's `\u002Fapi\u002Fgen-image`** (via `python .agents\u002Ftools\u002Fgen-image.py` or direct `curl`). The daemon routes to Gemini or OpenAI using your saved API key. Codex users with the built-in `image_gen` tool can use that instead — both paths produce equivalent PNGs.\n\n**4. The scene editor reads + writes the same JSON files** the agent creates. Drag a platform; the editor commits a JSON patch. Refresh the agent's view; it sees the update.\n\n**5. The runtime is the project itself.** Generated games are pure JS + Canvas — `index.html`, `src\u002F*.js`, `data\u002F*.json`, `assets\u002F`. Push the folder to GitHub Pages. Done.\n\n---\n\n## 📂 Repository layout\n\n```\nopen-game-forge\u002F\n├── packages\u002F\n│   └── contracts\u002F      # shared TypeScript types: API, events, SceneModel\n├── apps\u002F\n│   ├── daemon\u002F         # Node.js + Express daemon (port 7621)\n│   │   └── src\u002F\n│   │       ├── server.ts            # HTTP routes\n│   │       ├── codex.ts             # Codex CLI adapter (spawn + stream-json)\n│   │       ├── claude-code.ts       # Claude Code adapter (same pattern)\n│   │       ├── agents.ts            # AgentAdapter dispatcher\n│   │       ├── gen-image.ts         # Gemini + OpenAI router\n│   │       ├── secrets.ts           # ~\u002F.ogf\u002Fsecrets.json store\n│   │       ├── prefs.ts             # ~\u002F.ogf\u002Fpreferences.json store\n│   │       ├── web-scene.ts         # JSON level → SceneModel loader\n│   │       ├── scenes.ts            # SceneOp applier (move\u002Fscale\u002Fadd\u002Fremove)\n│   │       └── templates\u002F           # vendored skills \u002F conventions \u002F recipes\n│   └── web\u002F            # Vite + React UI (port 7620)\n│       └── src\u002F\n│           ├── App.tsx\n│           ├── components\u002F\n│           │   ├── SceneEditor.tsx  # Canvas-based scene editor\n│           │   ├── SettingsModal.tsx\n│           │   └── PlayPane.tsx\n│           └── lib\u002Fapi.ts\n└── docs\u002F\n    ├── architecture.md\n    ├── roadmap.md\n    └── genre-support.md\n```\n\n---\n\n## 🛠️ Build from source\n\n```bash\nnpm install           # workspace install\nnpm run build         # build contracts → daemon → web\nnpm run dev           # watch mode for all three (daemon hot-reloads via tsx)\n```\n\nUseful commands:\n\n- `npm -w @ogf\u002Fdaemon run dev` — daemon only, with `tsx watch`\n- `npm -w @ogf\u002Fweb run dev` — Vite dev server\n- `npm -w @ogf\u002Fcontracts run build` — type-check contracts package\n\n---\n\n## 📋 Project status\n\n| Genre | Status | Notes |\n|---|---|---|\n| **Side-scroll platformer** | ✅ shipped | Parallax pipeline, hazards, pickups, enemies, multi-level, sprite chroma-key |\n| Top-down RPG | 🟡 partial | Foundation seed + recipes; some recipes still maturing |\n| Tower defense \u002F arena | 🟡 partial | Inherited from earlier branches; needs polish |\n| Roguelike \u002F Metroidvania | 🟡 partial | After launch |\n\n**Engine targets**:\n\n| Engine | Status | Notes |\n|---|---|---|\n| **Web** (vanilla JS + Canvas) | ✅ default | Actively developed. Zero framework dependency; push to GitHub Pages and it runs. |\n| **Godot 4** | 🟡 legacy + roadmap | Existing Godot projects still load + edit. First-class re-investment on the post-launch roadmap. |\n| **Unity** | 🚧 planned | Targeted for after Godot first-class lands. |\n\n---\n\n## 📚 Documentation\n\n- [`docs\u002Farchitecture.md`](docs\u002Farchitecture.md) — design principles, agent-first paradigm\n- [`docs\u002Froadmap.md`](docs\u002Froadmap.md) — phased plan\n- [`docs\u002Fgenre-support.md`](docs\u002Fgenre-support.md) — genre matrix\n- Convention files (vendored per-project) — [`apps\u002Fdaemon\u002Fsrc\u002Ftemplates\u002Fconventions\u002F`](apps\u002Fdaemon\u002Fsrc\u002Ftemplates\u002Fconventions)\n- Recipes (vendored per-project) — [`apps\u002Fdaemon\u002Fsrc\u002Ftemplates\u002Frecipes\u002F`](apps\u002Fdaemon\u002Fsrc\u002Ftemplates\u002Frecipes)\n\n---\n\n## 🤝 Contributing\n\nWe're pre-launch. The codebase is small enough that PRs are welcome, but please file an issue first to discuss scope. Best ways to help right now:\n\n- **Try it and report bugs** — file an issue with the daemon log (`~\u002F.ogf\u002Fclaude-code-debug.jsonl` or your shell terminal where `npm run dev` runs)\n- **Build a game** and show us — happy to feature it in the README\n- **Test on macOS \u002F Linux** — primary dev is on Windows; cross-platform issues likely lurk\n\n---\n\n## 🔐 Security & data\n\n- **Your code stays on your machine.** AGF is local-first. Daemon binds to `127.0.0.1`; nothing leaves your machine except calls to the AI provider you chose.\n- **API keys** are stored at `~\u002F.ogf\u002Fsecrets.json` with file mode 600 (owner-only). They never enter git, never appear in AGF's logs.\n- **Conversations** are stored in `~\u002F.ogf\u002Fogf.db` (SQLite). Delete the file to reset.\n\n---\n\n## 📜 License\n\nLicensed under the [Apache License, Version 2.0](LICENSE). You're free to use, modify, fork, and ship — commercial or not. Just keep the copyright + license notice.\n\n---\n\n## 🙏 Credits\n\n- Daemon-and-spawn pattern adapted from [`nexu-io\u002Fopen-design`](https:\u002F\u002Fgithub.com\u002Fnexu-io\u002Fopen-design)\n- Sprite generation pipeline adapted from [`0x0funky\u002Fagent-sprite-forge`](https:\u002F\u002Fgithub.com\u002F0x0funky\u002Fagent-sprite-forge)\n- Built with Codex CLI + Claude Code — yes, this project is largely written by the same agents it drives\n\n---\n\n\u003Cp align=\"center\">\n  Made for indie game devs who like to ship.\u003Cbr\u002F>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F0x0funky\u002Fagent-game-forge\u002Fissues\">Report a bug\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F0x0funky\u002Fagent-game-forge\u002Fdiscussions\">Discussions\u003C\u002Fa>\n\u003C\u002Fp>\n","Agent Game Forge (AGF) 是一个开源的桌面IDE，允许用户通过AI编码代理创建完整的2D游戏。其核心功能包括由用户选择的AI代理（如Codex CLI或Claude Code）驱动的游戏开发过程、生产级别的资源处理管道（支持精灵图色键、多动作动画等）、以及可视化场景编辑器，用于拖拽调整游戏元素。此外，它还支持用户自定义图像生成服务，并计划在未来支持Godot 4和Unity引擎。该项目适合希望利用AI辅助快速原型化或开发2D游戏的设计者与开发者使用，且由于其本地优先的设计理念，确保了项目文件的安全性和隐私性。","2026-06-11 03:54:50","CREATED_QUERY"]