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 (2)
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.