Linggen - The engine for AI-native apps — local, open-source, on Mac
by•
Linggen is an open-source Mac app that runs AI apps locally. The lead app is a private CFO: drop in bank/card CSV or PDF exports and local code turns them into spend reports — trends, subscriptions, duplicate charges — with account numbers redacted before any AI sees them. Also inside: a music DJ with karaoke, a Mac health scanner, and cross-agent memory shared with Claude Code and Codex. Apps are markdown + HTML/JS on a Rust runtime. BYO model (OpenAI-compatible or Ollama) or free hosted tier.

Replies
Hi Product Hunt! I'm Leon, solo builder of Linggen.
I think the most useful AI apps won't live in the cloud — they'll run on your own machine, next to your own files, music, and finances. Linggen is my attempt at that: an open-source runtime (Rust daemon, Apache-2.0) that runs AI apps locally on your Mac. Apps are just markdown + plain HTML/JS — no build step, so you can read every line of what an app does before trusting it.
It ships with five apps:
• CFO — drop in bank/card CSV or PDF exports; local code parses them into spend reports (trends, subscriptions, duplicate charges), and account numbers are stripped before any AI sees a thing. The AI only explains — "why was May so expensive?"
• DJ — tell it a vibe, it builds the tracklist, grabs the audio, and syncs to your phone for offline play. Karaoke included.
• Sys Doctor — scans your Mac's health (disk, security, performance) and explains what it finds in plain language.
• Pulse — a personal trends radar for the topics and feeds you care about.
• Memory — cross-agent semantic memory that also works from Claude Code and Codex.
Bring your own model (any OpenAI-compatible endpoint or Ollama) or use the free hosted tier — no key setup.
Install (macOS Apple Silicon): curl -fsSL https://linggen.dev/install-app.sh | bash
Two things I'd love your take on: which of these would you actually use first? And what would it take for you to trust a local app with something as sensitive as your bank statements?
Really cool idea, especially the redaction before any model sees the data. One thing I'd love: automatic scheduled imports from my bank or card accounts instead of having to drop in CSVs by hand. Even a simple watch folder or Plaid integration would make this a set-and-forget weekly review rather than a manual chore.
@vedat2091990 Thanks! A watch folder is the near-term plan — point it at your downloads once and every new export imports automatically, so the weekly review becomes set-and-forget.
On Plaid/direct bank access: building it is the easy part. The hard part is that an aggregator in the middle breaks the promise you liked — credentials and raw data never leaving your machine. If we automate further, it stays local, e.g. pulling from your own already-logged-in browser session. Trust first, convenience right behind it.
Local-only finance tracking with redaction before any model touches the data is exactly the kind of setup I want. One thing I'd love is a built-in budget alert system that can ping me when a category crosses a threshold I set, since right now I only get insights when I open the app and run a report.
@aykut597715 Thanks — budgets are actually in there today, just conversational rather than a settings panel: tell the CFO "keep dining under $400 a month" and it remembers the goal (locally, like everything else) and holds you to it on every review — crossings show up as red alerts at the top of the report.
What's missing is exactly the piece you named: the ping when you're not in the app. That's the natural next step, and the plumbing exists — Linggen runs as a local background daemon, so a watcher can check the ledger and fire a native Mac notification with zero cloud involved. On the list.
Dropped in a messy card CSV and the spend report came back clean with trends and a duplicate charge flagged I hadn't noticed. The local redaction step before any model sees account numbers is a really thoughtful default.
@buketkebabqs65 Thank you — that duplicate-charge catch is exactly the moment we built for. One detail behind it: all the money math (parsing, dedup, totals, trends) is plain deterministic code running on your Mac. The model never computes a number — it only sees redacted summaries to write the narrative, so the report stays exact no matter how messy the CSV. And it learns: recategorize a merchant once and that becomes a permanent local rule for every future import.
the local-only angle for the CFO app is honestly really smart, especially with redoing the csv parsing before anything hits a model. one thing i'd love to see is a simple way to set monthly budgets per category so the spend reports can flag when you're trending over instead of just showing historical numbers.
@eymenjez0 Thanks! Two pieces of that exist today: the report's safe-to-spend card already projects forward — month-to-date pace plus your upcoming fixed charges — so it shows where the month is heading, not just where it's been. And per-category caps are set conversationally: tell the CFO "keep dining under $400 a month" and every review checks it, flagging crossings as red alerts.
The part you named that's missing is per-category trending — "dining is pacing 30% over with 10 days left." That's a natural step on top of the forecast math that's already in there. Good call, on the list.
Dropped a couple of card CSVs in and the subscription detector flagged a streaming service I forgot I was still paying for, which already paid for the weekend. The local-first approach with redaction before the model sees anything is genuinely thoughtful.
@cerenocgd Ha — "already paid for the weekend" might be my favorite line from this launch. Forgotten subscriptions are exactly what the detector was built for: it hunts recurring cadence in the raw ledger with plain local code, so it flags charges you'd never recognize by name on a statement. Pro tip: feed it every card, not just one — zombie subs love hiding on the card you check least. And thanks for noticing the redaction default. That one's non-negotiable.