Most AI coding agents have the same trust problem: you point them at your project and hope for the best. If the model has a bad day, your working tree pays for it.
I wanted something different, so I built Buddy: a small floating bubble that lives in the corner of your screen, and that works in a copy of your project instead of the project itself.
Repo: https://github.com/tarun922/Buddy.live (MIT)
The core idea: work in a clone, apply on purpose
When you choose a project folder, Buddy makes a private clone and does all its work on its own buddy branch. It can plan, edit files, run tests and commit, but none of that reaches your real repo.
When it's done:
- You see every file it changed.
- You pick the ones you want.
- One click brings them into your repo.
Files you edited yourself in the meantime are never overwritten. If you don't like the result, you throw it away and nothing of yours was touched. There is also a timeline, so you can go back to any save point, and writes are atomic with a run journal, so a power cut mid-task leaves you with a choice to resume or discard instead of a half-written project.
Built for people who don't want to pay for AI
I'm a student, and I don't have a big API budget. So Buddy is designed to get decent results out of free models:
- Free tiers: OpenRouter, Mistral, Gemini, Cerebras, NVIDIA NIM
- Local: Ollama
- Free GPU: a Kaggle notebook running an open model
- Paid, if you have keys: Claude and OpenAI
It supports key rotation and automatic fallback, so when one free tier runs out it moves to the next.
Making weak models less weak
A small model fails mostly because it gets too much context or too much freedom. Two things in Buddy help with that.
Micro agents. Small helpers run around the main model, and each can use its own model and key:
- Scout picks the right skills and tools for this task before the main model starts.
- Pathfinder finds the exact files, functions and line ranges in a large codebase.
- Memory keeper summarizes long chats and keeps durable facts about you and the project.
- Committer writes commit messages.
- Reviewer reads the diff after a run and reports only real problems.
Put a tiny fast model on Scout and save the big one for the actual work.
Outline-first editing. Instead of rewriting whole files, the agent reads and edits specific symbols (read_symbol, replace_symbol, patch_file). Edits on big files hit real code instead of drifting.
Safety, because it's an agent
- The terminal is isolated: installs go into Buddy's own folder,
sudoand system installs are refused, dangerous commands need a click, and catastrophic ones are blocked. - API keys are encrypted at rest and never shown back in the UI.
- The renderer has no Node access. Everything goes through an explicit IPC allow-list.
- Plugins start disabled and need approval permission by permission.
There is also optional voice ("Ok Buddy", with an offline wake word) and optional computer control limited to search, open URL and open app. Computer control is off by default and gated behind a password the model never sees.
Stack
Electron + React (Vite) for the UI, with the agent core as plain Node ESM in the main process. There are 20+ test suites (npm test).
Try it
git clone https://github.com/tarun922/Buddy.live.git
cd Buddy.live
npm install
npm run dev
Then click the bubble (or press Ctrl/Cmd + Shift + Space), choose a folder, and paste one API key. A free one is enough to start. Installers for Windows, macOS and Linux are on the releases page.
Honest rough edges
- Installers are unsigned for now.
- I've mostly tested on Linux. Tiling compositors like Hyprland need a window rule or an XWayland flag for the transparent window.
- The agent is only as good as the model behind it. Free models still struggle on hard tasks.
Top comments (0)