{"id":44684518,"url":"https://github.com/tcmartin/gemmit","last_synced_at":"2026-02-15T05:33:09.645Z","repository":{"id":304085871,"uuid":"1017721482","full_name":"tcmartin/gemmit","owner":"tcmartin","description":"GUI-based AI vibe coding for free with no vendor lock-in, mcp support, no need for api keys or fancy hardware, and gemini-cli for free requests","archived":false,"fork":false,"pushed_at":"2025-08-24T02:55:41.000Z","size":7325,"stargazers_count":17,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-24T11:58:05.442Z","etag":null,"topics":["ai","free","gemini-cli","gui","mcp","vibe-coding"],"latest_commit_sha":null,"homepage":"https://gemmit.org","language":"Python","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/tcmartin.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}},"created_at":"2025-07-11T02:08:55.000Z","updated_at":"2025-08-24T02:55:45.000Z","dependencies_parsed_at":"2025-07-11T07:02:43.310Z","dependency_job_id":"0f05444c-31a1-4790-b380-e8e4a54e7c58","html_url":"https://github.com/tcmartin/gemmit","commit_stats":null,"previous_names":["tcmartin/gemmit"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/tcmartin/gemmit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcmartin%2Fgemmit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcmartin%2Fgemmit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcmartin%2Fgemmit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcmartin%2Fgemmit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tcmartin","download_url":"https://codeload.github.com/tcmartin/gemmit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tcmartin%2Fgemmit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29470636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T05:26:30.465Z","status":"ssl_error","status_checked_at":"2026-02-15T05:26:21.858Z","response_time":118,"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","free","gemini-cli","gui","mcp","vibe-coding"],"created_at":"2026-02-15T05:33:09.120Z","updated_at":"2026-02-15T05:33:09.640Z","avatar_url":"https://github.com/tcmartin.png","language":"Python","funding_links":["https://buymeacoffee.com/tcmartin"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/logos/gemmit-logo-128.png\" alt=\"Gemmit Logo\" width=\"128\" height=\"128\"\u003e\n  \u003ch1\u003eGemmit - AI-Powered Development Assistant\u003c/h1\u003e\n\u003c/div\u003e\n\n**Completely Free \u0026 No Vendor Lock-In**\n\n* Runs entirely off Google's **Gemini CLI**—no local model downloads or OpenAI API keys required.\n* 100% local environment: your code and projects stay on your machine in `~/Gemmit_Projects`.\n* No vendor lock-in: build, customize, and extend however you like.\n* Scoped by default: Gemmit automatically “scopes out” tasks, analyzes your project, and proposes context-aware actions.\n\n**Seamless Mobile Integration**\n\n* Works with [gemmit-app](https://github.com/tcmartin/gemmit-app) for on-the-go AI edits and project management from your phone.\n\n## 🚀 Key Features\n\n* **AI-Powered Chat Interface**: Real-time streaming conversations with Gemini 2.5 Flash over WebSockets.\n* **Project Scaffolding**: Automatic creation of new projects under `~/Gemmit_Projects` following the PocketFlow methodology.\n* **File Operations**: Browse, create, read, update, and delete files directly in-app.\n* **Scoped Intelligence**: AI introspects your existing codebase and suggests context-aware changes.\n* **Model Context Protocol (MCP) Support**: Configure custom M(odel)C(ontext)P(ipeline) servers via `.gemmit/settings.json`.\n* **Extensible CLI Core**: Leverage the full power of `gemini-cli` under the hood—swap in any Gemini-based model.\n* **Auto-Updates**: Built-in GitHub Releases integration for seamless version management.\n* **Cross-Platform**: Packaged for macOS (Intel \u0026 Apple Silicon), Windows, and Linux.\n\n## 📁 Project Architecture\n\n```plaintext\ngemmit/\n├── desktop/                    # Electron frontend application\n│   ├── src/                    # Main Electron process and renderer\n│   ├── assets/                 # Icons and static assets\n│   ├── build/                  # Build configurations and entitlements\n│   ├── resources/              # Bundled resources (binaries, etc.)\n│   └── electron-builder.yaml   # Build configuration\n├── server/                     # Python backend service\n│   ├── backend.py             # WebSocket server and AI integration\n│   └── requirements.txt       # Python dependencies\n├── app/                        # Web UI components\n│   ├── index.html             # Main application interface\n│   └── chat.html              # Chat interface\n├── scripts/                    # Build and deployment scripts\n│   ├── build_backend.sh       # Backend compilation script\n│   └── prepare_tree.sh        # Project setup utilities\n├── ai_guidelines.md           # AI assistant behavior guidelines\n└── pocketflowguide.md         # Development methodology guide\n```\n\n## 🛠️ Development Setup\n\n### Prerequisites\n\n* **Node.js 18+** for Electron development\n* **Python 3.8+** for backend services\n* **Gemini CLI** installed (automatically handled by gemmit)\n* **macOS/Windows/Linux** (cross-platform support)\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/tcmartin/gemmit.git\ncd gemmit\n\n# Install desktop dependencies\ncd desktop\nnpm install\n\n# Install Python dependencies\ncd ../server\npip install -r requirements.txt\n\n# Build the backend binary\ncd ../scripts\n./build_backend.sh \n#or if on windows .\\build_backend.ps1\n\ncd ../desktop\nnpm run build:mac\n#or win, linux, etc\n\n```\n\n### Running in Development\n\n```bash\n# Start the Electron app\ncd desktop\nnpm start\n\n# Or run backend separately for debugging\ncd server\npython backend.py\n```\n\n## 📦 Building for Production\n\n### Build Desktop Application\n\n```bash\ncd desktop\nnpm run builder\n```\n\n### Build Targets\n\n* **macOS**: `.dmg` installer (Intel \u0026 Apple Silicon)\n* **Windows**: `.exe` installer (NSIS)\n* **Linux**: AppImage and `.deb` for Debian/Ubuntu\n\n### Distribution Files\n\nBuilt apps output to `desktop/dist/` with names like:\n\n* `gemmit-1.0.3.dmg`\n* `gemmit-1.0.3-arm64.dmg`\n* `gemmit Setup 1.0.3.exe`\n* `gemmit-1.0.3.AppImage`\n* `desktop_1.0.3_amd64.deb`\n\n## 🔧 Configuration \u0026 Environment Variables\n\n| Variable          | Description                      | Default                   |\n| ----------------- | -------------------------------- | ------------------------- |\n| `GEMINI_PATH`     | Path to your `gemini` CLI binary | `gemini`                  |\n| `GENERATIONS_DIR` | Workspace root for projects      | `~/Gemmit_Projects`       |\n| `OUTPUT_DIR`      | Directory for generated assets   | same as `GENERATIONS_DIR` |\n| `PORT`            | WebSocket server port            | `8000`                    |\n| `HOST`            | Server host address              | `127.0.0.1`               |\n\n## 🗂️ Model Context Protocol Example\n\nCreate a `.gemini/settings.json` file *inside* your `~/Gemmit_Projects/.gemini/` folder:\n\n```json\n{\n  \"theme\": \"GitHub\",\n  \"mcpServers\": {\n    \"imagegen\": {\n      \"command\": \"npx\",\n      \"args\": [\"imagegen-mcp\", \"--models\", \"gpt-image-1\"],\n      \"env\": {\n        \"OPENAI_API_KEY\": \"\u003cyour key or env var\u003e\"\n      }\n    },\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"@playwright/mcp@latest\"]\n      }\n  },\n  \"hideTips\": false\n}\n```\n\nThis tells Gemmit how to spin up external MCP servers for image generation, automated end-to-end testing, or anything else you can script.\n\n## 📥 Installation for Users\n\n### macOS\n\n```bash\n# Download and install Gemmit\n# 1. Download the appropriate .dmg from Releases\n# 2. Open and drag Gemmit to Applications\n# 3. If you see “Gemmit is damaged”, run:\nsudo xattr -rd com.apple.quarantine /Applications/Gemmit.app\n\n# Or use the helper script:\ncurl -sSL https://raw.githubusercontent.com/tcmartin/gemmit/master/scripts/fix_macos_gatekeeper.sh | bash\n```\n\n### Windows\n\n```bash\n# Download and run the Setup .exe (ignore SmartScreen warnings)\n```\n\n### Linux\n\n```bash\n# AppImage\nchmod +x gemmit-1.0.3.AppImage\n./gemmit-1.0.3.AppImage\n\n# DEB\nsudo dpkg -i desktop_1.0.3_amd64.deb\n```\n\n## 🎯 Usage Workflow\n\n1. **Initialize**: Launch Gemmit, point it at or create a project in `~/Gemmit_Projects/`.\n2. **Scope**: Gemmit analyzes your code and suggests next steps.\n3. **Chat**: Use the built-in chat UI to prompt Gemini for code, docs, or tests.\n4. **File Ops**: Modify, save, or generate new files—all from within the app.\n5. **Iteration**: Repeat with PocketFlow methodology—design, implement, optimize.\n\n## 🔌 WebSocket API\n\n**Endpoint**: `ws://localhost:8000`\n\n### Chat Prompt\n\n```json\n{ \"type\": \"prompt\", \"prompt\": \"Generate a React login form\", \"conversationId\": \"abc-123\" }\n```\n\n### File Listing\n\n```json\n{ \"type\": \"list_files\" }\n```\n\n### Save File\n\n```json\n{ \"type\": \"save_file\", \"filename\": \"LoginForm.jsx\", \"content\": \"\u003ccode\u003e\" }\n```\n\n## 🚢 Deployment \u0026 Auto-Updates\n\n* Uses `electron-updater` for background update checks.\n* Releases hosted on GitHub trigger installer downloads.\n\n## 🤝 Contributing\n\n1. Fork, branch, code, PR.\n2. Follow PocketFlow in `pocketflowguide.md`.\n3. Test on all platforms.\n\n## 📄 License\n\nMIT. See [LICENSE](LICENSE).\n\n## 🙏 Acknowledgments\n\n* **Google Gemini**\n* **Electron**\n* **PocketFlow**\n* **Open Source Community**\n\n---\n\n*Built with ❤️ by Trevor Martin*\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-support-yellow.svg?style=flat-square\\\u0026logo=buy-me-a-coffee)](https://buymeacoffee.com/tcmartin)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftcmartin%2Fgemmit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftcmartin%2Fgemmit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftcmartin%2Fgemmit/lists"}