2
5 Comments

I got tired of renting my own AI, so I built one I actually own

I spent hundreds of dollars across different AI tools and subscriptions. At the end of it, I owned none of it. Every one of them needed some platform to keep paying just to keep working. What actually bothered me wasn't the cost — it was realizing that without the cloud provider behind it, none of it would run. I never really owned my own AI.

So I started figuring out how to build something different.

What I ended up building:

AI Partner is a desktop app that runs an actual multi-agent AI system entirely on your own machine:

Four agents (Research, Learning, Memory, Action) that hand off work to each other — you can watch it happen live

Chat with real code fixes: attach a file, describe the bug, apply the fix with one click, automatic backups

An optional Business Coach that remembers your goals across every conversation, notices repetitive manual work and offers to build you a personal tool for it, and can generate a logo/business card/letterhead directly in the chat

Image, video, and music generation

A community marketplace for sharing agents — every submission goes through automated screening plus human review before it's listed

The technical/product decisions I'm most opinionated about:

One-time payment, not a subscription. This is the entire point of the product, not just a pricing choice — it's a direct answer to the problem that got me here.

Ollama by default, cloud keys optional. The app has to work without any account at all, or the "own it" pitch falls apart.

GitHub PRs as the moderation system for community agents, instead of building a custom review queue. Free code review infrastructure that already exists, and it's transparent — anyone can see the review history.

Where it's at now:

Just wrapped up 2.0 — a full UI redesign, the Business Coach agent, and the ability for it to build personal tools or generate brand assets on request. Getting ready to actually put it in front of people (this post included).

Happy to answer anything — architecture, why local-first over cloud, the packaging pipeline, or the honest tradeoffs of building on a local model vs. a hosted API.

posted toAvatar for product AI PARTNER 2.0
AI PARTNER 2.0
  1. 1

    Building a local-first desktop app with Ollama by default is a brilliant execution of the "own your software" philosophy. It’s incredibly satisfying to have high-performing models running completely offline on your own hardware without relying on external API calls or subscription models.

    Also, using GitHub PRs as your moderation system for the agent marketplace is a fantastic solo-founder hack. Leveraging free, transparent code review infrastructure instead of wasting weeks building a custom review queue is pure engineering pragmatism.

    Absolutely love the direction of this. What tech stack did you end up using for the desktop packaging pipeline?

    1. 1

      Thanks — Here's the actual stack, straight from the pipeline:

      Frontend → Backend, one binary:

      • React + Vite frontend, built to static files npm run build.

      • FastAPI backend that mounts those static files directly , so the whole app serves from one origin/port (8002) — no separate frontend server in production, even though dev mode runs them split (Vite on 3003, FastAPI on 8002)

      Packaging:

      • PyInstaller, in mode specifically, not one file That was a deliberate call, documented right in the spec file's comment: onefile re-extracts to a fresh random temp folder on every launch, which would silently reset every piece of persisted state that computes its path relative to file — license info, custom agents, tasks, etc. one dir's internal folder stays stable across runs, so those paths keep working. This is the kind of bug that wouldn't show up in a quick test, only after a user restarts the app and finds their license and agents gone.

      • This bundles the whole Python backend so buyers never need Python installed.

      Final installer:

      • A hand-rolled C# stub launcher.cs compiled with csc.exe already on every Windows machine via .NET Framework, so zero extra tooling for you to maintain or the buyer to install

      • The PyInstaller output gets zipped, then embedded into that C# exe as a Win32 resource is a pay load zip. On launch it extracts to the localAppData AI Partner 2.0 and runs it

      • Worth calling out: this replaced 7-Zip's own SFX approach, which was tried first — its run program directive didn't reliably auto-launch the extracted app in the 7-Zip version being used. The custom stub gives full control over extraction + first-run behavior (desktop shortcut creation, silent launch, etc.) instead of fighting someone else's SFX quirks.

      End result: one exe. file (the thing you actually upload to Gumroad) that a buyer double-clicks, no Python, no Node, no separate installer framework like Inno Setup or NSIS — just PyInstaller + a 40-line C# launcher.

  2. 1

    I like that you're treating ownership as an architectural property rather than a licensing model.

    A one-time payment doesn't mean much if the product still depends on someone else's infrastructure to function. Building it so it remains useful without accounts or cloud services makes "own your AI" a technical commitment instead of just a pricing message.

    1. 1

      That's the exact distinction that makes the pricing claim credible instead of just a tagline — and it's borne out in the actual build, not just the marketing copy. I was going to keep it for myself. However, I found out more developers feel the same way.

      1. 1

        That makes sense.

        The interesting signal will be whether users value the ownership principle itself, or whether they discover the benefit through the practical experience of having something that keeps working without dependencies.

        That distinction usually reveals what the real product promise is.