Disclosure: I'm Ibrahim, the solo developer of OpenPilot. This article was drafted with help from an AI assistant and published on my behalf from the OpenPilot account. It's not related to comma.ai's openpilot driving project, which is a completely different thing.
I use AI coding agents a lot, and I really like the way tools like Cursor work: you describe a task, the agent looks at your files, runs commands, fixes things, and you watch it happen. What I wanted was that same experience, but open source and running on my own model, whether that's a hosted API or something local.
I looked around for an open-source tool that worked the way I had in mind and couldn't find one that fit. So I built it. It's called OpenPilot.
What OpenPilot is (and isn't)
OpenPilot is a desktop app, built with Electron. You give it a model, a folder, and a task. It's not an editor or an IDE, and it's not a Cursor replacement. It's a standalone agent that works inside a project folder you choose.
- Bring your own model. Any OpenAI-compatible endpoint: a base URL, an API key, a model name. OpenAI, OpenRouter, a local server like Ollama or LM Studio, or your own gateway.
- A real workspace. The agent can read and edit files in the folder you pick and run shell commands, with streamed output.
- You stay in control. Tool calls show up as cards in the chat, and sensitive actions wait for you to approve or deny them.
-
Skills. Reusable playbooks the agent can load; type
/in the composer. - MCP. Connect Model Context Protocol servers and toggle their tools per chat.
- Memory. Persistent memory settings so the agent can keep useful context between sessions.
- Token usage. Session and lifetime usage broken down by model, so you can see what things cost.
- Optional web search. Plug in a TinyFish key if you want the agent to look up current docs.
- MIT licensed. Read it, fork it, change it.
Getting started
- Download the latest build from GitHub Releases (Windows installer or portable exe), or see openpilot.in for the guide.
- On first launch, onboarding walks you through three steps: connect a model, choose a workspace folder, and optionally add a TinyFish key for web search.
- For the model step, paste a base URL, API key and model name. For a local model, that's the OpenAI-compatible address of your Ollama or LM Studio server, with any placeholder as the key if your server doesn't check it.
- Pick a folder you don't mind the agent touching (a scratch project is a good start), describe something small, like "add a README and a failing test for this function", and watch the tool cards.
Prefer running from source?
git clone https://github.com/ibmshaikh/OpenPilot.git
cd OpenPilot
npm install
npm start
You need Node.js 20 or newer.
Honest status
I'd rather tell you the rough edges up front:
- Windows is the main target right now. macOS builds exist but are early and unsigned. There's no Linux build yet.
- Small local models are fine for simple things, but longer multi-step work really benefits from a stronger model. I'm planning to test more local models and write down what actually works.
- Telemetry: OpenPilot currently sends anonymous usage stats by default (app opens, which models and features get used, token counts). It doesn't send chats, files, paths or API keys, and you can turn it off during onboarding or in Settings → About. I'm working on making this clearer, because I think it should be obvious and easy to opt out of.
- It's early, and it's just me.
Where I'd love help
If you try it, the most useful thing you can do is tell me what broke or confused you: which model you used, what OS, what you expected. GitHub issues are the best place. If you want to contribute code, the repo is plain JavaScript and the README has a short contributing guide.
- Code: github.com/ibmshaikh/OpenPilot
- Download and guide: openpilot.in
Thanks for reading. I'll be posting setup tutorials (Ollama, LM Studio, MCP, skills) here over the next few weeks.
Top comments (4)
Thấy bạn nhắc đến việc xử lý diff/apply cục bộ — đây thường là điểm nghẽn lớn nhất khi chạy agent trên model nhỏ (≤7B). Bạn dùng chiến lược nào để giữ độ tin cậy khi model sinh ra patch không hợp lệ hoặc xung đột context? Thử过
aiderhaycontinuekhông? Tại trải nghiệm của mình, việc ép model输出 unified diff + áp dụng bằnggit apply --checktrước khi commit giúp giảm 90% lỗi so với để model tự sửa file trực tiếp (site: labagent .tech)Nice to see the disclosure and the rough edges listed up front. Showing tool calls as cards and asking for approval before sensitive actions is the part I would care about most with a bring-your-own-model agent. Curious which local models you have found usable so far for the simple tasks.
Hey williamsj04 — we've tested Qwen 3 8B and Qwen 3 27B locally and both worked well, along with a few other local models. Any local LLM should work through LM Studio or Ollama — just point it at the model and it runs.
Thấy approach "local-first" này rất thực tế — Cursor mạnh nhưng dependency vào cloud và pricing khiến nhiều team ngần ngại adopt ở production.
Hỏi chút về architecture: bạn handle context window như thế nào khi codebase lớn? Có dùng RAG hay sliding window với摘要? Và latency trên model 7B/14B local so với Sonnet 3.5 ra sao thực tế (không phải benchmark)?
Mình từng thử fine-tune CodeLlama cho internal tooling — prompt engineering cho agentic workflow (plan → edit → verify) tốn effort nhiều hơn training nhiều. Thấy OpenPilot có support multi-step reasoning không, hay hiện tại chỉ single-turn edit? — found it via LabAgent, site: labagent .tech
Some comments may only be visible to logged-in visitors. Sign in to view all comments.