A show-and-tell of the doc behind Drivr, a free Grok Bot I built: it turns a ten-minute ramble in the car into notes, to-dos, ideas, and the state of each thread, and it gets better from its own mistakes.
My best thinking happens in my mind in my Tesla, with no keyboard, inbox, or note-taking tools; just a problem rattling around until it starts to make sense. That sense-making process is made possible by full self-driving and in-car Grok. If you’re unfamiliar with it, I recommend this brief clip.
Capturing that thinking is the easy part. Plenty of tools will transcribe a voice note and pull out a few to-dos. The trouble comes during and after: a lot of them pour everything into one long document, and every session starts cold. Nothing knows what you said yesterday, which thread is urgent, what you already decided, or what’s blocking you. Ideas pile up and the state of things gets lost.
So, like many of you, I built a durable memory doc in Superhuman Docs. It’s a session bridge between in-car Grok conversations.
This post shows how Drivr uses that doc. SuperDocs is where Drivr remembers, and it’s also where Drivr learns.
Why this lives in Docs
Back in 2023 I wrote a post here, “From Your Lips to Coda’s Ears,” about getting voice notes into Docs (formerly Coda) from my phone. I complained that “voice notes are cool, but they aren’t really usable especially by others until you clean them up,” and that you can’t know in advance what an incoming note needs, because “the context exists at the capture point (the mobile edge).” I also said I wanted this platform to be my entire note-taking and sense-making system.
I still believe that. A ramble produces two kinds of things. Some are structured: to-dos with due dates, people, and projects. Some are just prose: where a thread stands and why. Docs holds both in one doc, so I don’t have to choose between a spreadsheet and a document or glue two tools together.
What’s in the memory doc
The doc has nine tables. Drivr reads and writes them through the Superhuman Docs MCP.
Notes, To-dos, and Ideas. The filed items. Each row has when it was captured, a project, and the session it came from. Notes and Ideas also keep a short raw excerpt of what I actually said, so I can check the cleaned-up version against my own words.
Context. One row per open thread or active project, with a summary of where it stands. This is the table that matters most (more on it below).
Glossary. Names, projects, and jargon, plus the ways speech-to-text mangles them. In mine, “Drivr” is listed with the alias “driver,” and LEAP with “leep.”
Corrections. What I fixed and the rule learned from it, so the same mistake doesn’t keep coming back.
Sessions. One row per capture, with start and end times, the surface (car voice, phone, or typed), and the counts of what was filed.
Proposals and Tests. Where Drivr suggests changes to its own behavior, and the test rambles it has to pass before any change takes effect. More on these below.
Because it’s all tables, the usual Docs tools work on it. Formulas count a session’s items with a filter on the Session column. Views stay in sync with the base tables, so you can put a board of open to-dos by project or a calendar of what’s due on top of the same rows. Calendar view also came to mobile on October 15. Docs AI (beta) can work with these tables like any other data. Project is a plain text column today. Making it a relation column to Context, so every thread shows its own notes and to-dos, is the next change I want to make.
Context is state, not a topic list
I got this part wrong first. My early Context rows read like topic lists, which is what most notes tools give you, and a topic list isn’t memory.
A thread’s memory is its state: the goal and deadline, why it’s urgent, how far along it is, what’s been decided, what’s blocking it, and the next action. Now every Context summary carries those, in that order, built only from things I actually said. No guessing and no advice.
Here’s an example. On my first real drive with Drivr, I talked through getting our St. George property ready for winter. It was a rambling list, the kind you’d never type into a phone. It filed as 2 notes and 13 to-dos: put away the hoses, take down the shade sails, harvest the peppers, wrap the wicker furniture against the winter winds, winterize the pool, feed the palms and cactus, and so on.
This is the Context row it produced, quoted from the doc:
Winterizing the St. George property before the cold weather and rain arrive. 13 tasks, none done. Palm and cactus feeding has to happen before the cold hits; the pool is several tasks on its own. Decided: potted plants stay on drip through winter, at a reduced drip. Needs a large container for the rose and sage clippings.
It has the goal and trigger, progress, what’s urgent, a decision, and something I still need. When I come back to the thread, Drivr starts from that row.
The Sessions table caught a bug that first day, too. One row said 3 notes, but only 2 were filed under that session. The third belonged to a quick capture a few minutes earlier. Now the counts come from reading the rows back out of the tables, never from what was planned. I only found it because the counts sat in a table next to the rows.
How Drivr works with the doc
Drivr is free and independent, and I just released it as a Grok Bot template anyone can copy. It will never be sold, and it is not a Superhuman pack or a shared template. I chose to use SuperDocs for several reasons, and the MCP server is obviously one of them. It is a performant, complete, and reliable way to define and share data as the foundation of agentic processing.
It listens first and talks last. In-car assistants want to converse. You pause to think and they answer or interject. They’re programmed to please, and like the LLMs that drive them, they can be distracting. Drivr stays quiet. A pause, a half-sentence, or an “anyway… so yeah” doesn’t end the capture. Only “done,” “that’s it,” “wrap it,” or “file it” does. Then it says one sentence, like “Got it: two notes, thirteen to-dos,” and writes the rows into the doc.
Talking over a conversational assistant, or prefacing every thought with “Drivr, note that…” so it doesn’t cut in, works for now. But these approaches are not sustainable. You need a system that just knows you’re in a different mode: the agent listens and quietly captures. It speaks only when asked, and it keeps confirming that it’s still listening, even after you’ve rambled on while crossing an entire city.
It reads the doc before I say anything. At the start of a capture it loads the open Context rows, the Glossary, and recent correction rules. That’s how “pick up where we left off” can work: the answer comes from the Context row.
It learns from data. Glossary aliases fix misheard names. Corrections (“that was a note, not a to-do”) get logged as rules. Each correction also becomes a test ramble in the Tests table. When the same kind of fix shows up across sessions, Drivr writes a row in Proposals. Nothing changes in how Drivr behaves until I approve that proposal, and then only if it passes every test ramble first. All of that learning lives in the doc, not in the bot. The Corrections table is still empty, though, and that loop hasn’t been tested on a real drive yet.
Try it
Step 1: Get Drivr. Open the Drivr Grok Bot template and add it to your Grok Bot.
Step 2: Connect Superhuman Docs. In your first conversation, Drivr checks for the Superhuman Docs (Coda) connector and offers to connect it if it’s missing. Its memory lives in Docs, so nothing else works until this does.
Step 3: Point it at a memory doc. Drivr asks whether to create a new doc called Drivr Memory or use one you already have, then sets up the tables. It also confirms your time zone, so “by Friday” lands on the right date.
Step 4: Teach it your names. Tell it the projects, people, and places that come up most when you think out loud. It adds them to the Glossary with likely mishearings.
Step 5: Hand off from the car. Ask your car’s Grok to hand off to Drivr, then just talk. Say “done” or “wrap it” to file. If the car’s assistant cuts in during long pauses, start each thought with “Drivr, note that…”
Step 6: Ramble, then look at Context. After a capture or two, open the Context table in Docs and see whether the summaries read like state or like a list.
Thoughts?


