I built a desktop AI coding agent that runs 100% offline with Ollama
I'm a solo developer with a full-time job and a family, and for the last several months I've been building an AI coding tool in the cracks of my day - early mornings, late nights, weekends. It's called Oryn, and I want to share why I built it and how it works, because the two decisions at its core might resonate with you.
The itch
Two things bugged me about the AI coding tools I was using:
- My code went to someone else's cloud, and I paid a markup for the privilege. Every request routed through a vendor, wrapped in their pricing.
- Everything was a subscription. Another monthly fee here, another there.
I wanted something that (a) let me use my own model - my own API key, or a model running entirely on my machine - and (b) that I could pay for once. So I built it.
What it does
Oryn is a desktop app for Windows. You open a project folder and describe what you want in plain English: "Add a login page to my app with email + password and client-side validation." It then runs an agent loop:
- Reads the relevant files to understand your codebase
- Plans the steps
- Writes and edits files
- Runs commands and tests
- Verifies its own work
β¦pausing for your approval on each change if you want (manual mode), or running straight through (auto mode). Every step is visible - you can stop it, skip a step, or jump into the built-in editor and take over at any point.
Here's a real, unedited 2-minute run building a working app from a single sentence:
The two bets
Bring your own model - or go fully local. Plug in your own key (Claude / GPT / Gemini / Groq) and pay the provider directly, no markup from me. Or - the part I'm proudest of - run it 100% local with Ollama. No key, no cloud, nothing leaves your machine. For a lot of day-to-day work (refactors, boilerplate, tests) a local model is plenty, and it's private and free to run.
One-time price. Pay once. No subscription.
How it's built (for the curious)
- Frontend: Electron + React + TypeScript, with a Monaco-based editor.
- Backend: a bundled service that runs locally (bound to
127.0.0.1) and handles agent orchestration, file tools, terminal, git, and provider routing. - The agent loop is a plan β act β verify cycle with tool calls (file read/write, shell, git). Manual approval is a gate in front of every mutating tool call.
- Local models run through Ollama; cloud models go directly from your machine to the provider using your own key.
What was hard (the honest part)
- Making the agent stop at the right moment. Early versions would happily "fix" things I didn't ask for. Adding a visible plan + per-step approval solved both the trust problem and the runaway problem.
- The local path is a balancing act. Local models are great for many tasks but still trail frontier cloud models on long multi-step reasoning. Letting you switch per task, instead of forcing one choice, was the answer.
- Shipping a desktop app solo is a grind - packaging, signing, auto-updates, licensing. None of it is glamorous and all of it matters.
Try it / tell me I'm wrong
There's a 7-day free trial, no card: https://oryneye.com . It's a paid product (one-time, no subscription) - saying that up front so nobody feels baited.
I'd genuinely love feedback, especially:
- How does the local Ollama path feel on your setup?
- Where does the agent loop break for you?
As a solo dev, honest criticism is the most useful thing I can get. Thanks for reading. π
Comments
No comments yet. Start the discussion.