2026-05-22
Clerk.AI moves from private to public beta

Clerk.AI was born in a 2016 startup accelerator program with an agentic-accounting pitch the tech of the day couldn't deliver. The first commercial release — a hosted web app used by Swedish freelancers — ran into the last-mile problem and got shut down. We pivoted to local Python tooling, kept building, and waited for the world to catch up. Ten years later it has, and v0.2 is the original vision finally shipping — going public again, for the first time in years.

Where it started

Clerk.AI was born in 2016 inside a Nordic startup accelerator program. The pitch then was the same as the pitch now: a clerk that knows who you are, knows what you're spending on, and does your monthly accounting prep so you don't have to. Agentic before "agentic" was a word.

The machine learning of 2016 wasn't up to it. Receipt OCR half-worked; "understanding" a bank statement was an ambition, not a feature. We shipped what was possible at the time and kept pushing.

The first commercial release, and the 2017 promise

The first Clerk.AI that actually had customers was a hosted web app. Swedish freelancers started using it in 2017. It connected to your Gmail inbox, pulled receipts, ingested bank statements, and generated draft accounting records. Pilot customers ran on it for about a year.

It hit the last-mile problem: getting from a generated draft to records actually accurate enough for an auditor was too much manual cleanup. The automation got you 80% there; the remaining 20% absorbed most of the time you'd hoped to save. We shut the hosted service down rather than ship something that put a freelancer at audit risk.

While the service was still live, in December 2017, we registered the Clerk.AI EU trademark (EUTM 017646613). We also said this:

Clerk will not rest until the pains related to getting shit together for accounting purposes are surgically removed from freelancers' lives worldwide.

Shutting down the v1 SaaS wasn't backing off the promise. It was acknowledging that the promise needed a different toolchain.

The pivot — Python tooling

With the cloud SaaS shut down, the next attempt deliberately retreated to local files and open tooling — the parts where we could keep the automation honest and the user could verify every step.

September 2019: a Mac desktop app — Clerk.AI.app, bundle id ai.clerk.app (the same one v0.2 keeps today). Under the hood it was a Clerk.AI-branded nteract Jupyter runtime; the document type was .clerknb, a Python notebook with the Clerk.AI workflow already wired up.

May 2020: the clerkai Python library on PyPI (versions 0.1.0 through 0.2.5, source at clerklabs/python-clerkai, MPL‑2.0). Self-described as "Tools for extracting, annotating and summarizing transaction, location history and time tracking data from local files." Bank-statement parsers for Nordea (FI / SE), LHV (EE), Avanza, Norwegian, and others; a workflow that watched ~/Downloads, moved exports into a git-versioned ~/Clerk.ai/, and produced annotated transaction summaries. The data-folder convention is unchanged in v0.2.

This era was deliberately small-circle, not a public launch — closer to a power-user toolkit than a product. Receipts and Gmail import, which had been live in the cloud SaaS, were re-marked TODO in the notebook code; that side of the automation hadn't ported to the new local-files architecture. The plan was to bring them back when the tech to do it locally existed.

Why now

The years that look quiet on the Clerk.AI side weren't quiet at all. The same studio — Augmented Mind AB — was building the missing pieces in Remember This (long-term personal memory) and My Transcriber (on-device transcription). File watching that doesn't lose things, local Whisper transcription, on-device vision-language captioning that works in Nordic languages, an MCP server exposing a queryable index to AI tools. Each shipped on its own, but the architecture is one stack — and it's the stack Clerk.AI v0.2 sits on.

The world also moved. Receipts shifted from a shoebox of paper to Gmail, Stripe-hosted invoices, billing portals, and bank web UIs. And — most importantly — browser automation finally works. Real local browser automation driving real bank logins and real billing portals, with the user's saved sessions, the way they'd do it by hand, is now robust enough to be the spine of a monthly workflow. Wrap it in a Claude Code skill, give it an indexed view of the user's Photos and Voice Memos, and the agentic clerk we pitched in 2016 — and tried, and couldn't quite finish in 2018 — is what falls out.

v0.2 — native rewrite, real ML

v0.2 is a from-scratch SwiftUI app: universal binary (Apple Silicon and Intel), proper PhotoKit and Voice Memos integration, native menubar, multi-window, signed Developer ID, Sparkle auto-updates against releases.clerkai.eu. The bundle id is still ai.clerk.app, deliberately, so any Keychain entries or TCC permissions you granted the 2019 build keep working.

First-launch hardware detection picks model defaults that match your machine. Whisper goes to medium on 8 GB Macs and large-v3-turbo on 16 GB+. The captioner switches between SwiftLM with Qwen3-VL on Apple Silicon 16 GB+ (about ten times faster than ollama on the same machine, and reads multi-language receipts correctly) and ollama with moondream on Intel. Power Mode defers heavy VLM backfill to AC power so a backlog scan doesn't drain your battery on the road. The Live Processing tab shows exactly what the GPU queue is doing.

First launch also bootstraps your data folder — creates ~/Clerk.AI/, seeds a personal identity, attaches the iCloud Photos source, and starts indexing. The same ~/Clerk.AI/ convention from v0.1, with the file watching that actually works now.

What Clerk.AI watches

The inputs split into two layers.

The new-in-v0.2 layer is your local libraries — Photos and Voice Memos. The Photos library is where receipts can land directly. Snap a receipt with your phone, scan it on a flatbed into Photos, or AirDrop it from a colleague, and Clerk.AI picks it up from iCloud Photos, runs OCR, captions it with a vision model, and indexes it. No "import" step.

Voice Memos is where the context lives. Record a thirty-second note next to a receipt — "client lunch, the Acme deal, expense not commute" — and Whisper transcribes it locally so the text is searchable and you can link it to the receipt later.

The other layer is everything that lives in a browser. Banks, Gmail, billing portals, brokerages — the things the original Swedish-freelancer SaaS tried to handle, now done right. The skills below drive a real local browser to fetch them, with your saved logins, the same way you would by hand.

Clerk.AI ships an MCP server (clerkai mcp-server) that exposes the full index to Claude Code. Read-only SQLite for queries, a structured filter API for things like "all receipts in Q1 above 500 EUR with a 'VAT' OCR hit" — no SQL on your part. Any skill you point at it can search the inputs.

Three Claude Code skills for the monthly close

The three skills are what actually do the four-phase workflow on the homepage. v0.2 bundles them in the order you'd run them:

  • Monthly bookkeeping prep — assembles the month's receipts and voice notes into a packet, classifies by account, flags the ones that need a decision before your accountant sees them.
  • Spending check — sanity-pass on recent transactions vs. last month and last year, surfaces anomalies.
  • Financial portfolio review — picks up brokerage, pension, and crypto statements you've snapped, and produces a position summary.

Each is a generator. You open it once, answer a handful of questions — country, accounting regime, fiscal year, who your accountant is — and Claude Code writes a customised version of the skill for your setup. From then on you run the customised version monthly. The Skills tab lists them in workflow order, so the cadence is: Monthly first, then Spending, then Portfolio.

To run one, click it in the Skills tab. Clerk.AI opens a terminal with Claude Code loaded against your customised version of the skill, and it goes — bank logins, Gmail searches, Stripe invoices, Nordnet's statement export, driven from the same browser session you'd use yourself, just without you having to be there. With the last-mile that broke the original SaaS now handled by an LLM that can actually reason about the edge cases.

What's next

The shared captioner runs general-purpose today. v0.3 swaps the system prompt for receipt extraction — merchant, total, line items, VAT, currency — so the caption is structured data you can sum, not just prose.

Beyond that: a pay-as-you-go "AI @ Your Service" wallet alongside local Ollama and an Anthropic subscription. The order depends on what actually gets used.

Clerk.AI icon

Clerk.AI

Free. Local. Private. macOS 15+.

Not sure which? Apple menu → About This Mac. "Chip: Apple M..." = Apple Silicon. "Processor: Intel..." = Intel.

Stay updated

Get notified when we publish new posts. Sign up and we'll send updates straight to your inbox.