Vibecode is a terminal-native AI coding agent powered by local LLMs through Ollama.
It can read your project, propose edits with diffs, create new files intelligently, and even run Ruby code it writes — all with your approval.
Think of it as:
A local, open-source, Codex-style coding assistant that lives in your terminal.
No cloud. No API keys. No data leaving your machine.
- 🧠 Uses local coding models via Ollama
- 📂 Understands your current project directory
- ✏️ Proposes file edits with colorized diffs
- 🆕 Creates smartly named new files (no fake
path/to/file.rb) ▶️ Runs Ruby files automatically when appropriate- 🔒 Requires approval before writing files
- 🌿 Git integration only when you ask for it
- 🔄 Switch models anytime
You need:
- Ruby 3.0+
- Git
- Ollama
Install Ollama:
Start the Ollama server:
ollama servegem install vibecodeVerify:
vibecode -doctorYou should see:
Ollama installed OK
Ollama server running OK
Git installed OK
List installed models:
vibecode -listSwitch models (auto-pulls if missing):
vibecode -use qwen2.5-coder:7bManually pull a model:
vibecode -pull deepseek-coder:6.7bYour active model is stored in:
~/.vibecode/config.json
From any project directory:
vibecodeYou’ll see:
Vibecode Agent using model: ...
vibecode>
Now you can type natural coding requests.
Example:
create a ruby method greet that prints hello world
Vibecode will:
- Show a plan
- Show a diff preview
- Ask for approval
- Create a properly named file like
hello_world.rb - Run the Ruby file automatically
- Show the output
The AI responds using a structured format that Vibecode turns into actions.
If the AI needs to see a file, Vibecode loads it and sends the contents back.
If the AI wants to edit a file that doesn’t exist, Vibecode generates a smart filename automatically.
You always see a diff before anything is written.
If the file contains top-level execution, Vibecode runs:
ruby filename.rb…and shows the output to both you and the AI.
Vibecode will never run git unless your prompt contains the word git.
| Action | Requires Approval |
|---|---|
| Reading files | ❌ |
| Writing files | ✅ |
| Running Ruby | Automatic (only when appropriate) |
| Running Git | Only if you ask |
Vibecode cannot access files outside the current directory.
vibecode> create a ruby method greet that prints hello world
Output:
Proposed edit for hello_world.rb
+def greet
+ puts "hello world"
+end
Vibecode plans to:
- create file hello_world.rb
- run ruby hello_world.rb
Proceed? (Y/n)
After approval:
hello world
| Component | Responsibility |
|---|---|
| CLI | Command handling + session |
| OllamaClient | Talks to Ollama HTTP API |
| Agent | Planning, parsing, execution flow |
| Workspace | Safe file system + Ruby execution |
| Git | Safe Git command wrapper |
Vibecode is:
- Local-first
- Developer-controlled
- Human-in-the-loop
- Transparent
- Offline-capable
You stay in charge. The AI assists.
Future improvements:
- Streaming model responses
- Session memory
- Auto-approve mode
- Test runner integration
- Linter / formatter mode
MIT License