An open API service indexing awesome lists of open source software.

https://github.com/tcmartin/gemmit

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
https://github.com/tcmartin/gemmit

ai free gemini-cli gui mcp vibe-coding

Last synced: 25 days ago
JSON representation

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

Awesome Lists containing this project

README

          


Gemmit Logo

Gemmit - AI-Powered Development Assistant


**Completely Free & No Vendor Lock-In**

* Runs entirely off Google's **Gemini CLI**β€”no local model downloads or OpenAI API keys required.
* 100% local environment: your code and projects stay on your machine in `~/Gemmit_Projects`.
* No vendor lock-in: build, customize, and extend however you like.
* Scoped by default: Gemmit automatically β€œscopes out” tasks, analyzes your project, and proposes context-aware actions.

**Seamless Mobile Integration**

* Works with [gemmit-app](https://github.com/tcmartin/gemmit-app) for on-the-go AI edits and project management from your phone.

## πŸš€ Key Features

* **AI-Powered Chat Interface**: Real-time streaming conversations with Gemini 2.5 Flash over WebSockets.
* **Project Scaffolding**: Automatic creation of new projects under `~/Gemmit_Projects` following the PocketFlow methodology.
* **File Operations**: Browse, create, read, update, and delete files directly in-app.
* **Scoped Intelligence**: AI introspects your existing codebase and suggests context-aware changes.
* **Model Context Protocol (MCP) Support**: Configure custom M(odel)C(ontext)P(ipeline) servers via `.gemmit/settings.json`.
* **Extensible CLI Core**: Leverage the full power of `gemini-cli` under the hoodβ€”swap in any Gemini-based model.
* **Auto-Updates**: Built-in GitHub Releases integration for seamless version management.
* **Cross-Platform**: Packaged for macOS (Intel & Apple Silicon), Windows, and Linux.

## πŸ“ Project Architecture

```plaintext
gemmit/
β”œβ”€β”€ desktop/ # Electron frontend application
β”‚ β”œβ”€β”€ src/ # Main Electron process and renderer
β”‚ β”œβ”€β”€ assets/ # Icons and static assets
β”‚ β”œβ”€β”€ build/ # Build configurations and entitlements
β”‚ β”œβ”€β”€ resources/ # Bundled resources (binaries, etc.)
β”‚ └── electron-builder.yaml # Build configuration
β”œβ”€β”€ server/ # Python backend service
β”‚ β”œβ”€β”€ backend.py # WebSocket server and AI integration
β”‚ └── requirements.txt # Python dependencies
β”œβ”€β”€ app/ # Web UI components
β”‚ β”œβ”€β”€ index.html # Main application interface
β”‚ └── chat.html # Chat interface
β”œβ”€β”€ scripts/ # Build and deployment scripts
β”‚ β”œβ”€β”€ build_backend.sh # Backend compilation script
β”‚ └── prepare_tree.sh # Project setup utilities
β”œβ”€β”€ ai_guidelines.md # AI assistant behavior guidelines
└── pocketflowguide.md # Development methodology guide
```

## πŸ› οΈ Development Setup

### Prerequisites

* **Node.js 18+** for Electron development
* **Python 3.8+** for backend services
* **Gemini CLI** installed (automatically handled by gemmit)
* **macOS/Windows/Linux** (cross-platform support)

### Installation

```bash
# Clone the repository
git clone https://github.com/tcmartin/gemmit.git
cd gemmit

# Install desktop dependencies
cd desktop
npm install

# Install Python dependencies
cd ../server
pip install -r requirements.txt

# Build the backend binary
cd ../scripts
./build_backend.sh
#or if on windows .\build_backend.ps1

cd ../desktop
npm run build:mac
#or win, linux, etc

```

### Running in Development

```bash
# Start the Electron app
cd desktop
npm start

# Or run backend separately for debugging
cd server
python backend.py
```

## πŸ“¦ Building for Production

### Build Desktop Application

```bash
cd desktop
npm run builder
```

### Build Targets

* **macOS**: `.dmg` installer (Intel & Apple Silicon)
* **Windows**: `.exe` installer (NSIS)
* **Linux**: AppImage and `.deb` for Debian/Ubuntu

### Distribution Files

Built apps output to `desktop/dist/` with names like:

* `gemmit-1.0.3.dmg`
* `gemmit-1.0.3-arm64.dmg`
* `gemmit Setup 1.0.3.exe`
* `gemmit-1.0.3.AppImage`
* `desktop_1.0.3_amd64.deb`

## πŸ”§ Configuration & Environment Variables

| Variable | Description | Default |
| ----------------- | -------------------------------- | ------------------------- |
| `GEMINI_PATH` | Path to your `gemini` CLI binary | `gemini` |
| `GENERATIONS_DIR` | Workspace root for projects | `~/Gemmit_Projects` |
| `OUTPUT_DIR` | Directory for generated assets | same as `GENERATIONS_DIR` |
| `PORT` | WebSocket server port | `8000` |
| `HOST` | Server host address | `127.0.0.1` |

## πŸ—‚οΈ Model Context Protocol Example

Create a `.gemini/settings.json` file *inside* your `~/Gemmit_Projects/.gemini/` folder:

```json
{
"theme": "GitHub",
"mcpServers": {
"imagegen": {
"command": "npx",
"args": ["imagegen-mcp", "--models", "gpt-image-1"],
"env": {
"OPENAI_API_KEY": ""
}
},
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
},
"hideTips": false
}
```

This tells Gemmit how to spin up external MCP servers for image generation, automated end-to-end testing, or anything else you can script.

## πŸ“₯ Installation for Users

### macOS

```bash
# Download and install Gemmit
# 1. Download the appropriate .dmg from Releases
# 2. Open and drag Gemmit to Applications
# 3. If you see β€œGemmit is damaged”, run:
sudo xattr -rd com.apple.quarantine /Applications/Gemmit.app

# Or use the helper script:
curl -sSL https://raw.githubusercontent.com/tcmartin/gemmit/master/scripts/fix_macos_gatekeeper.sh | bash
```

### Windows

```bash
# Download and run the Setup .exe (ignore SmartScreen warnings)
```

### Linux

```bash
# AppImage
chmod +x gemmit-1.0.3.AppImage
./gemmit-1.0.3.AppImage

# DEB
sudo dpkg -i desktop_1.0.3_amd64.deb
```

## 🎯 Usage Workflow

1. **Initialize**: Launch Gemmit, point it at or create a project in `~/Gemmit_Projects/`.
2. **Scope**: Gemmit analyzes your code and suggests next steps.
3. **Chat**: Use the built-in chat UI to prompt Gemini for code, docs, or tests.
4. **File Ops**: Modify, save, or generate new filesβ€”all from within the app.
5. **Iteration**: Repeat with PocketFlow methodologyβ€”design, implement, optimize.

## πŸ”Œ WebSocket API

**Endpoint**: `ws://localhost:8000`

### Chat Prompt

```json
{ "type": "prompt", "prompt": "Generate a React login form", "conversationId": "abc-123" }
```

### File Listing

```json
{ "type": "list_files" }
```

### Save File

```json
{ "type": "save_file", "filename": "LoginForm.jsx", "content": "" }
```

## 🚒 Deployment & Auto-Updates

* Uses `electron-updater` for background update checks.
* Releases hosted on GitHub trigger installer downloads.

## 🀝 Contributing

1. Fork, branch, code, PR.
2. Follow PocketFlow in `pocketflowguide.md`.
3. Test on all platforms.

## πŸ“„ License

MIT. See [LICENSE](LICENSE).

## πŸ™ Acknowledgments

* **Google Gemini**
* **Electron**
* **PocketFlow**
* **Open Source Community**

---

*Built with ❀️ by Trevor Martin*

[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-support-yellow.svg?style=flat-square\&logo=buy-me-a-coffee)](https://buymeacoffee.com/tcmartin)