The obvious way to build this product is as a service: developers install an agent, everything streams to a cloud, and analysis happens server-side. It is easier to build, easier to monetise and easier to demo.
We did not build it that way, and the reason is not ideological.
The people who need this most cannot send you their code
Banks, healthcare vendors and defence suppliers are exactly the organisations that need to answer authorship questions, and exactly the organisations that cannot ship prompts and diffs to a third party in order to do it. A prompt frequently contains source code, architecture and occasionally a credential somebody should not have pasted.
A product whose first requirement is “send us your code” excludes the buyers who care most.
Nothing in the request path
There is a second design choice that matters as much. The recorder does not proxy your model traffic. It reads the transcripts your tools already write to disk.
That means no API key to paste, no gateway to configure, no latency added to a prompt and nothing to reconfigure when you switch model. It also means there is no point in the system where an outage of ours stops anybody working, which is the property that decides whether a tool stays installed.
What local-first gives up
Being honest about the trade: cross-device search needs sync, because a local database only knows its own machine. Team-wide reporting needs a shared workspace. Both exist on paid plans and both are opt-in per project, which is a weaker default than “everything is already there”.
Backup is also your responsibility on the free plan. The database is a file under your home directory; if the laptop is lost, so is the local record.
Why it still comes out ahead
Because the alternative fails at the first security review. A tool that needs no account, sends nothing and adds no latency can be installed by a developer on a Tuesday afternoon, which is how it ends up running on the machines that matter. A tool that requires procurement sign-off before it records anything records nothing for six months.
For a product whose entire value is having been running before the question was asked, that difference is the product.