Vibecode
Vibecode is a terminal-based AI coding agent powered by local LLMs through Ollama. It can read your project files, propose edits with diffs, and run Git commands — all with your approval.
Think of it as a local, open-source Codex-style coding assistant that runs directly in your terminal.
✨ Features
- 🧠 Uses local coding models via Ollama
- 📂 Reads and understands your current project directory
- ✏️ Proposes file edits with colorized diffs
- 🔒 Asks before modifying files or running Git commands
- 🌿 Git-aware (status, branches, commits, push, etc.)
- 🔄 Switch models anytime
🧰 Requirements
Before installing Vibecode, make sure you have:
- Ruby 3.0+
- Bundler
- Git
- Ollama installed and working
Install Ollama from:
Start the Ollama server:
ollama serve
🚀 Local Installation (Development Mode)
From the Vibecode project directory:
bundle install
chmod +x exe/vibecode
Run directly without installing the gem:
bundle exec exe/vibecode
📦 Install as a Local Gem
From the project root:
gem build vibecode.gemspec
gem install ./vibecode-*.gem
Then you can run from anywhere:
vibecode
🩺 System Check
Verify everything is connected properly:
vibecode -doctor
You should see:
Ollama installed OK
Ollama server running OK
Git installed OK
🤖 Managing Models
List installed models
vibecode -list
Use a model (auto-pulls if missing)
vibecode -use qwen2.5-coder:7b
Manually pull a model
vibecode -pull deepseek-coder:6.7b
Your active model is stored in:
~/.vibecode/config.json
💬 Starting an AI Coding Session
From any project directory:
vibecode
You will see:
Vibecode Agent using model: qwen2.5-coder:7b
vibecode>
Now you can give natural language coding instructions.
Example:
vibecode> create a ruby method called greet that prints hello world
🧠 How Vibecode Works
The AI responds using structured instructions that Vibecode turns into real actions.
AI Can Request to Read Files
Vibecode will load the file and send contents back to the AI.
AI Can Propose File Changes
You will see a diff preview before any file is modified.
You must approve changes before they are applied.
AI Can Suggest Git Commands
Examples:
git statusgit checkout -b feature/logingit add .git commit -m "Add login feature"git push origin feature/login
You must approve each command before it runs.
🔒 Safety Model
Vibecode is human-in-the-loop by default.
| Action | Requires Approval |
|---|---|
| Reading files | ❌ |
| Editing files | ✅ |
| Running Git commands | ✅ |
| Pushing to remote | ✅ |
Vibecode cannot access files outside your current directory.
🗂 Project Awareness
Each time you prompt Vibecode, it automatically sends the AI:
- Your project file tree
- Relevant file contents (when needed)
- Conversation history
This allows the AI to reason about your codebase like a real assistant.
🛠 Internal Architecture (For Contributors)
| Component | Responsibility |
|---|---|
CLI |
Handles commands and interactive session |
OllamaClient |
Talks to Ollama HTTP API |
Agent |
AI reasoning loop + instruction parsing |
Workspace |
Safe file reading/writing with diffs |
Git |
Safe Git command execution |
🧪 Example Workflow
- Start Vibecode in your repo
- Ask for a feature
- Vibecode proposes edits
- You approve
- Vibecode runs Git commands
- You review and push
🧭 Roadmap Ideas
- Streaming model responses
- Auto-approve mode
- Test runner integration
- Linter auto-fix mode
- Pull request description generator
❤️ Philosophy
Vibecode keeps your code and AI local, private, and developer-controlled.
No cloud. No tracking. Just you and your AI pair programmer in the terminal.
📄 License
MIT License