[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75468":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":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":15,"starSnapshotCount":15,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},75468,"micracode","Jamessdevops\u002Fmicracode","Jamessdevops","Open Source Alternative to Lovable, v0, Bolt, Replit, Emergent. 🌟 Star if you like it!  ","",null,"Python",219,51,4,0,5,25,134,15,77.65,"MIT License",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38],"ai-app-builder","antrophic","artificial-intelligence","bolt","fastapi","lovable","nextjs","openai","python","skills","typescript","v0","vercel","2026-06-12 04:01:18","\u003Cdiv align=\"center\">\n\n\u003Ch1 style=\"border-bottom: none\">\n    \u003Cb>Micracode\u003C\u002Fb>\u003Cbr \u002F>\n    Open-Source AI Web App Builder\n\u003C\u002Fh1>\n\n\u003Cimg alt=\"Micracode Demo\" src=\".\u002Fdemo.gif\" style=\"width: 100%\">\n\n\u003Cbr\u002F>\n\u003Cp align=\"center\">\n  Describe an app in natural language and Micracode streams code into an in-browser workspace.\u003Cbr \u002F>\n  Iterate by chat or edit the code directly in a Monaco editor — everything runs on your laptop.\n\u003C\u002Fp>\n\n\u003Cbr\u002F>\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fmicracode.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmicracode\u002F)\n[![Python 3.12+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.12+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![Next.js 15](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-15-black.svg)](https:\u002F\u002Fnextjs.org\u002F)\n\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\u003Cdiv align=\"center\">\n\u003Cem>Your local AI coding workspace — no database, no auth, no cloud.\u003C\u002Fem>\n\u003C\u002Fdiv>\n\u003Cbr \u002F>\n\n---\n\n## ⚡ Quick Install\n\n```bash\npip install micracode\n```\n\nRequires **Python 3.12+**. No Node.js, no Docker, no separate frontend setup.\n\n### 1. Set your API key\n\n**Google Gemini** (default, free tier available):\n```bash\nexport GOOGLE_API_KEY=your-key\n```\n\n**OpenAI:**\n```bash\nexport LLM_PROVIDER=openai\nexport OPENAI_API_KEY=your-key\nexport OPENAI_MODEL=gpt-4o\n```\n\n**Ollama** (local, no API key needed):\n```bash\nexport LLM_PROVIDER=ollama\nexport OLLAMA_MODEL=llama3.2   # any model you have pulled\n```\n\nOr put any of the above in a `.env` file in your working directory.\n\n### 2. Start\n\n```bash\nmicracode web\n```\n\nOpen **http:\u002F\u002Flocalhost:8000** — the full UI and API run from the same process.\n\n```bash\nmicracode web --port 9000       # change port\nmicracode web --host 0.0.0.0   # expose on your local network\n```\n\n### 3. Build something\n\n- Type a description on the home screen → Micracode generates a working project\n- Chat to iterate, edit code in the Monaco editor, and preview your app live\n- Projects are saved as plain folders at `~\u002Fopener-apps\u002F`\n\n---\n\n## Getting started & staying tuned with us.\n\nStar us, and you will receive all release notifications from GitHub without any delay!\n\n---\n\n## ✨ Features\n\n- **🛠️ Natural-Language Codegen** — Describe an app in plain English; Micracode streams a working project into the workspace file by file.\n\n- **💬 Iterative Chat** — Refine your project through conversation. Ask for changes, fixes, or new features and watch them stream in.\n\n- **📝 In-Browser Monaco Editor** — Edit generated code directly in a full Monaco editor; changes persist to disk.\n\n- **🔌 Pluggable LLM Providers** — Ships with Google Gemini by default; switch to OpenAI or local Ollama with one env var. Ollama models are discovered dynamically — no API key required.\n\n- **📦 Local-First Storage** — Projects live as plain folders on your filesystem. No database, no auth, no cloud service required.\n\n- **🧪 Streaming Backend** — Server-sent events deliver generated code in real time using a typed stream-event contract shared between web and API.\n\n- **🗂️ Snapshots & Prompt History** — Every project keeps its prompt history and snapshots so you can review or roll back.\n\n---\n\n## 🛠️ Tech Stack\n\n### Backend\n- **FastAPI** — High-performance Python web framework\n- **LangChain + Google Gemini \u002F OpenAI \u002F Ollama** — Pluggable LLM orchestration (gemini-2.5-flash by default)\n- **SSE-Starlette** — Server-sent events for streaming code generation\n- **UV** — Modern Python package manager\n- **Pytest** — Storage and HTTP test suite\n\n### Frontend\n- **Next.js 15** — React framework with App Router\n- **React 19** — Latest React with concurrent features\n- **Tailwind CSS** — Utility-first CSS framework\n- **Radix UI** + **shadcn\u002Fui** — Accessible component primitives\n- **Monaco Editor** — VS Code's editor in the browser\n- **WebContainer API** — Run Node.js apps directly in the browser\n- **Zustand** — Lightweight state management\n- **ai-sdk** — Vercel AI SDK for chat streaming\n\n### Tooling\n- **Bun** — JS workspace manager and runtime\n- **TypeScript** — End-to-end type safety, with shared types in `packages\u002Fshared`\n\n---\n\n## 🛠️ Development Setup\n\n> For contributors and people building from source. If you just want to use Micracode, see [Quick Install](#-quick-install) above.\n\n### Prerequisites\n- **Node.js** v22.18.0 (pinned via `.nvmrc`)\n- **Bun** ≥ 1.1.0\n- **Python** ≥ 3.12 (managed automatically by `uv`)\n- **uv** ≥ 0.4\n- A **Google Gemini** or **OpenAI** API key, **or** a locally running [Ollama](https:\u002F\u002Follama.com) instance (no API key needed)\n\n### Environment Setup\n\nCopy the example env file into the API app and add your key:\n```bash\ncp .env.example apps\u002Fapi\u002F.env\n$EDITOR apps\u002Fapi\u002F.env\n```\n\nMinimum config (Gemini, the default provider):\n```env\nLLM_PROVIDER=gemini\nGOOGLE_API_KEY=your_gemini_api_key\n```\n\nOr use OpenAI:\n```env\nLLM_PROVIDER=openai\nOPENAI_API_KEY=your_openai_api_key\nOPENAI_MODEL=gpt-4o\n```\n\nOr use a local [Ollama](https:\u002F\u002Follama.com) model (no API key required):\n```env\nLLM_PROVIDER=ollama\nOLLAMA_BASE_URL=http:\u002F\u002Flocalhost:11434\nOLLAMA_MODEL=llama3.2\n```\n\nOllama models are discovered dynamically from your local daemon — any model you have pulled (`ollama pull \u003Cmodel>`) will appear in the UI picker automatically.\n\nSee [`docs\u002Fconfiguration.md`](.\u002Fdocs\u002Fconfiguration.md) for the full reference and supported model IDs.\n\n### Installation\n\n```bash\nnvm use                # picks up .nvmrc -> Node 22.18.0\nbun install            # JS workspaces (web + shared)\nbun run api:install    # Python deps for the API (creates a uv-managed venv)\n```\n\n### Running the Application\n\nStart both apps in parallel:\n```bash\nbun run dev\n```\n\n- Web: \u003Chttp:\u002F\u002Flocalhost:3000>\n- API: \u003Chttp:\u002F\u002F127.0.0.1:8000>\n\nOr run them individually:\n```bash\nbun run dev:web        # Next.js only\nbun run dev:api        # FastAPI only (uvicorn --reload)\n```\n\nOpen \u003Chttp:\u002F\u002Flocalhost:3000>, type a project description into the prompt box, and you're off. Full walkthrough in [Getting Started](.\u002Fdocs\u002Fgetting-started.md).\n\n---\n\n## 📁 Project Structure\n\n```\nmicracode\u002F\n├── apps\u002F\n│   ├── web\u002F                    # Next.js 15 frontend\n│   │   ├── src\u002F\n│   │   │   ├── app\u002F            # App Router pages\n│   │   │   ├── components\u002F     # React components (incl. shadcn\u002Fui)\n│   │   │   ├── lib\u002F            # Utilities and clients\n│   │   │   └── store\u002F          # Zustand stores\n│   │   └── package.json\n│   │\n│   └── api\u002F                    # FastAPI backend\n│       ├── src\u002Fmicracode_api\u002F\n│       │   ├── agents\u002F         # LLM orchestrator, prompts, model catalog\n│       │   ├── routers\u002F        # health, models, projects, generate\n│       │   ├── schemas\u002F        # Pydantic request\u002Fresponse models\n│       │   ├── starter\u002F        # Starter project templates\n│       │   ├── config.py       # Settings (env vars)\n│       │   ├── storage.py      # Local filesystem project storage\n│       │   └── main.py         # FastAPI app entry point\n│       ├── tests\u002F\n│       └── pyproject.toml\n│\n├── packages\u002F\n│   └── shared\u002F                 # Shared TypeScript types (stream event contract)\n│\n├── docs\u002F                       # End-user documentation\n└── README.md\n```\n\n---\n\n## 🔌 API Endpoints\n\nAll endpoints are mounted under `\u002Fv1`.\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET    | `\u002Fv1\u002Fhealth` | Service health check |\n| GET    | `\u002Fv1\u002Fmodels` | List available LLM models |\n| POST   | `\u002Fv1\u002Fgenerate` | Stream code generation events (SSE) |\n| GET    | `\u002Fv1\u002Fprojects` | List all projects |\n| POST   | `\u002Fv1\u002Fprojects` | Create a new project |\n| GET    | `\u002Fv1\u002Fprojects\u002F{id}` | Get a project by id |\n| DELETE | `\u002Fv1\u002Fprojects\u002F{id}` | Delete a project |\n| GET    | `\u002Fv1\u002Fprojects\u002F{id}\u002Ffiles` | List\u002Fread project files |\n| PUT    | `\u002Fv1\u002Fprojects\u002F{id}\u002Ffiles` | Write project files |\n| GET    | `\u002Fv1\u002Fprojects\u002F{id}\u002Fdownload` | Download project as archive |\n| GET    | `\u002Fv1\u002Fprojects\u002F{id}\u002Fprompts` | Get prompt history |\n| POST   | `\u002Fv1\u002Fprojects\u002F{id}\u002Fprompts\u002Fpop-assistant` | Pop last assistant message |\n| GET    | `\u002Fv1\u002Fprojects\u002F{id}\u002Fsnapshots` | List project snapshots |\n\n---\n\n## 📚 Documentation\n\nEnd-user docs live in [`docs\u002F`](.\u002Fdocs\u002FREADME.md):\n\n- **[Getting Started](.\u002Fdocs\u002Fgetting-started.md)** — install prerequisites, configure an API key, and run the app.\n- **[Configuration](.\u002Fdocs\u002Fconfiguration.md)** — environment variables, switching between OpenAI and Gemini, and supported model IDs.\n- **[Using the Workspace](.\u002Fdocs\u002Fusage.md)** — the home page, chat, editor, and preview panels.\n- **[Projects on Disk](.\u002Fdocs\u002Fprojects-on-disk.md)** — where your generated apps live and how to work with them outside the app.\n- **[Troubleshooting](.\u002Fdocs\u002Ftroubleshooting.md)** — common errors and how to fix them.\n- **[FAQ](.\u002Fdocs\u002Ffaq.md)** — short answers to common questions.\n\n---\n\n## 🧰 Useful Scripts\n\n```bash\nbun run dev           # web + api in parallel\nbun run dev:web       # Next.js only\nbun run dev:api       # FastAPI only (uvicorn --reload, 127.0.0.1:8000)\nbun run typecheck     # TS across all workspaces\nbun run lint          # eslint across workspaces\nbun run format        # prettier\nbun run test:api      # pytest (storage + HTTP tests)\nbun run api:lint      # ruff check\nbun run api:format    # ruff format\n```\n\n---\n\n## 📝 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Feel free to open issues and pull requests.\n\n---\n\n**Join our community** [Discord](https:\u002F\u002Fdiscord.gg\u002FYmBNWhwdg)\n\n","Micracode 是一个开源的AI Web应用程序构建工具，允许用户通过自然语言描述来生成代码并在浏览器中进行编辑。其核心功能包括使用自然语言生成代码、迭代聊天以优化项目、以及直接在浏览器中的Monaco编辑器里编辑代码。此外，它支持多种语言模型提供商如Google Gemini、OpenAI和Ollama，并强调本地优先存储策略，无需数据库或云服务即可运行项目。Micracode适合需要快速原型设计、学习编程或希望利用AI辅助开发的应用场景。",2,"2026-06-11 03:52:54","CREATED_QUERY"]