OpenPilotI wanted something like Cursor that was open source and let me use whatever model I wanted,...
I wanted something like Cursor that was open source and let me use whatever model I wanted, including ones running on my own machine. I couldn't find one, so I built OpenPilot. It's a desktop app (Electron) where an AI agent works inside a project folder you pick: it reads and edits files and runs shell commands, and you approve or deny the sensitive stuff.
This post walks through running it fully locally with Ollama and Qwen 3. I've tested Qwen 3 8B and Qwen 3 27B this way (through Ollama and LM Studio) and both worked well for me.
ollama pull qwen3:8b
# or, if your hardware can take it:
ollama pull qwen3:27b
Make sure Ollama is running (ollama serve, or just open the Ollama app). It serves an OpenAI-compatible API at http://localhost:11434/v1.
.dmg for Apple Silicon or Intel from Releases
SmartScreen tip: the Windows installer isn't code-signed yet (I'm a solo dev), so Windows will show "Windows protected your PC". Click More info → Run anyway. If you'd rather not, read the code and build it yourself (below).
macOS tip: the build is unsigned, so if macOS blocks it, right-click the app → Open.
From source (any OS, incl. Linux) — needs Node.js 20+ and roughly 1 GB free disk for npm install:
git clone https://github.com/ibmshaikh/OpenPilot.git
cd OpenPilot
npm install
npm start
If native modules complain after updating, run npm run rebuild.
On first launch, onboarding asks you to connect a model. Enter:
qwen3:8b (use the exact model name from ollama list)http://localhost:11434/v1
ollama worksUsing LM Studio instead? Start its local server and use its base URL (by default http://localhost:1234/v1) with the model name it shows.
You can add multiple models in Settings and switch per chat, e.g. a small local one for quick stuff and a bigger one for harder tasks.
Choose the folder the agent should work in. Start with a throwaway or git-tracked project so you can diff/revert anything it does.
OpenPilot can use TinyFish for web search and page fetch so the agent can look up current docs. It's optional; skip it for a fully offline setup.
Start small and concrete, e.g.:
Read README.md and add a "Running tests" section based on package.json scripts.
You'll see streaming replies, thinking blocks, file edits and shell output as tool cards, and approve/deny prompts for sensitive actions. Token usage per model is in the usage view.
Other things worth knowing about: MCP servers can be connected and enabled per chat, skills (reusable playbooks, type / in the composer), and persistent memory.
Disclosure: this post was drafted with help from an AI assistant. Field names and default ports can differ between versions, so if a step doesn't match what you see, please open an issue.