Projects

Ubik Studio

The three-pane workspace — agent chat on the left, the source paper in the middle, and an evidence panel on the right where each extracted claim is accepted or rejected by hand (two still pending in the header)

The three-pane workspace — agent chat on the left, the source paper in the middle, and an evidence panel on the right where each extracted claim is accepted or rejected by hand (two still pending in the header)

2023–2026 · co-founded · the public site and builds are retired; the test log is what remains in the open.

Product · Desktop AI research platform · 2023–2026

Ubik Studio

A desktop-native, local-first AI research platform — three and a half years of building the human side of agentic research, before it had a name.

What Ubik was

Ubik Studio was a desktop research environment where AI agents did the gathering, reading, and drafting — and the human stayed in the loop at every point of judgment. A researcher opened a folder, and it became a workspace: sources indexed into a local context engine, agents searching the literature and reading PDFs in parallel, documents drafted with citations that traced back to real pages — and a review queue standing between every consequential agent action and the workspace it wanted to touch.

The thesis was written directly into the agents themselves. From the writing agent's system prompt:

“Your job is not to replace human thinking — it is to amplify it. Optimize for the loop: you draft, the human refines, you incorporate, the human approves. Intelligence is maximized not when either side works alone, but when the handoff between AI and human is so seamless it feels like one mind thinking.”

That sentence was written years before “human-in-the-loop” became an industry talking point. Ubik spent three and a half years trying to actually earn it.

The product

A desktop app where any folder became a research workspace. Sources went in — papers, PDFs, webpages captured by a companion browser extension — and were indexed locally. Agents searched the literature, read sources in parallel, and drafted documents where every claim traced back to a real quote on a real page. Everything an agent wanted to do of consequence passed through a human first: sources were approved before they entered the workspace, drafts paused for judgment where judgment was needed, and nothing was written that couldn't be cited.

The human-in-the-loop architecture

The part of Ubik I'm proudest of is that human control wasn't a confirmation dialog bolted on at the end — it was load-bearing architecture. Agent actions were approved in batches, not rubber-stamped one toast at a time. Every review decision was recorded in an auditable trail you could revisit after the fact. Agents could stop mid-document and ask for human judgment exactly where it belonged, at a depth you could dial from rough scaffold to polished draft. And the rule I still think about most: if there was no evidence to cite, the agent didn't get to write the claim.

The product, in motion

Workspace walkthrough3:26

The full loop, end to end: ask the agent what’s working in a draft, and it reads the essay against the source PDFs, writes analytical notes, and queues every one for review — accepted or rejected claim by claim, with the evidence panel surfacing the supporting quotes as you go.

Cross-source synthesis2:33

Five papers @-mentioned into a single prompt — “find the commonalities” — while the Context Engine indexes the workspace live. The agent reads the peer-reviewed PDFs side by side and builds a synthesis grounded in all five sources, not a summary of one.

The workspace library2:36

The file explorer as a research surface: PDFs, documents, saved searches, and folders in one indexed library. Then a multi-note agent run — grep across source bundles, evidence distributed in bulk, three notes finalized — with every artifact landing in the explorer as it’s produced.

The product, in frames

An evidence card — a single claim, the paragraph it was drawn from, and the eight supporting quotes (with page numbers) that back it, opened beside the highlighted source note
An evidence card — a single claim, the paragraph it was drawn from, and the eight supporting quotes (with page numbers) that back it, opened beside the highlighted source note
A Human Needed block embedded mid-document: the agent stops, states the judgment it needs, offers two candidate drafts and a free-write, and waits — skip or submit, tracked in the status bar
A Human Needed block embedded mid-document: the agent stops, states the judgment it needs, offers two candidate drafts and a free-write, and waits — skip or submit, tracked in the status bar
The Review Sources queue — each flagged paper (some auto, one manual/paywalled) previewed in full before it is accepted, driven entirely by the keyboard: arrow to navigate, enter to accept, esc to reject
The Review Sources queue — each flagged paper (some auto, one manual/paywalled) previewed in full before it is accepted, driven entirely by the keyboard: arrow to navigate, enter to accept, esc to reject
Agentic search returns a ranked shortlist of flagged papers on the left; on the right, a drafted document where every claim carries an inline citation back to a real source (King 1, King 2 …)
Agentic search returns a ranked shortlist of flagged papers on the left; on the right, a drafted document where every claim carries an inline citation back to a real source (King 1, King 2 …)
The Result Explorer scoring sources on recency, peer-review, methodology, and relevance — behind a Review Needed gate that makes you review-and-download rather than download blindly. Left: an edit workflow trimming a draft at a chosen intensity while sources index in the background
The Result Explorer scoring sources on recency, peer-review, methodology, and relevance — behind a Review Needed gate that makes you review-and-download rather than download blindly. Left: an edit workflow trimming a draft at a chosen intensity while sources index in the background

The engineering

A large multi-package system: a desktop app, a web gateway, cloud agent deployments, and a browser extension, with a local-first storage model underneath it all. 1,038 commits from September 2023 to May 2026 — with the design and research that preceded the first commit, about three and a half years of my life.

Electron · Next.js · TypeScript · Python · local-first

My role

I co-founded Ubik and led product design end to end: the workspace model, the review surfaces, the evidence and citation UX, the Human Needed grammar, and the copy and interaction conventions across every surface. I built front-end throughout, and ran the user research cycles — interviews, behavioral observation, session replays, and the team test log that documented them in public.

On the agent side I owned the system prompts, skills, and custom datasets — and I designed and built the custom evaluation framework and ARC eval suite we used to train, tune, and regression-test our agents and the agent-orchestration systems that coordinated them. That evaluation work is what actually moved the product: measurable gains in output accuracy, answer quality, and real-world usability — not benchmark numbers in isolation, but whether a researcher could trust and use what came back. It's the part of Ubik least visible in a screenshot and the part that mattered most to the results.

A closed chapter

The public site and the builds are retired, and I'm at peace with that — Ubik was a complete thing, and it stands on its own. Three and a half years of asking one question in earnest: what does it take to make an AI research tool a person can actually trust? Everything I learned answering it — about evaluation, about evidence, about where a human has to stay in the loop — I still carry. But this page is the record of the work itself, not a stepping stone to something else.