Inspiration

It's Thursday, 5:55. You're about to walk into your tutoring session. What did you want to bring up? What did you take away last time? What has come up since?

Recurring one-on-ones (tutoring, coaching, therapy, an interview loop) live or die on the week around them. The hour itself is easy. The thing you meant to raise on Tuesday is gone by Thursday. And a Bee wearable already heard all of it.

An always-listening wearable felt a little creepy, so I wanted the opposite of a digital twin: a narrow tool for a few recurring sessions, with my data in my own AWS account. On Bee's free tier there's no calendar integration, and Bee keeps about two weeks of data. Its useful summaries arrived overnight, in an app I had to remember to open. Between Sessions copies just the sessions that matter into a store I control, and brings them back right before the next session. The schedule and the Bee button stand in for a calendar.

What it does

Between Sessions turns Bee's ambient record into a companion for one recurring session at a time.

  • Before a session, ask for a prep brief and get:
    • the last session and Bee's title for it;
    • what came up since (days, conversations, topics from last time that came back);
    • your open agenda and your debrief;
    • when the next session is.
  • During the week, it finds your sessions in Bee's conversations on its own. It uses evidence in a fixed order: what you confirmed, Bee button markers, your schedule (a weekly slot or dated slots), then a keyword in Bee's own summary. Each conversation lands in at most one session.
  • It never guesses silently. A match it isn't sure of, say the right slot but the wrong topic, waits in a review queue with Confirm, Move and "Not a session". Summaries stay hidden on the review pages until you choose to show them.
  • Bee's button is an input. Hold it and talk to the product by name, Marty:
    • "Marty, agenda for tutoring: bring up the essay deadline."
    • "Marty, debrief: that went better than last week."
    • "Marty, start finance session" … "Marty, end finance session."

Voice notes are READY in 3 to 6 seconds, so this is a real-time command channel. A start note can even create a new series for an unscheduled meeting. Notes Marty can't read are reported in the next brief, never dropped. The name matters: a note addressed to Marty is a command, and anything else stays a plain note.

  • Ask from any MCP client. Eleven MCP tools (prep brief, since last session, agenda, takeaways, review, retag, help) and six prompts answer from precomputed data, with no model call on the request path.

How we built it

  • A collector Lambda runs every 15 minutes on EventBridge Scheduler. It ships the Bee CLI's Linux arm64 binary (@beeai/cli), restores the CLI login from Secrets Manager, and runs bee conversations list, bee insights list, bee journals list and bee todos list. Then it places sessions, files voice notes, updates the review queue and precomputes one digest per series in DynamoDB.
  • An MCP Lambda behind API Gateway (Streamable HTTP, bearer token) answers from DynamoDB only.
  • A local watcher follows bee stream and shows each voice note's verdict within seconds of speaking. Two local pages show every stored session, marker, voice note and review item, plus a Schedule editor.
  • One CDK stack in your own AWS account: the table is retained with deletion protection, there's an error alarm on the collector, and API Gateway is throttled.
  • 226 tests with a fake Bee CLI. Built in four days with Claude Code as the development agent.

Challenges we ran into

  • Bee closes conversations 13 to 27 minutes after talk ends and merges talk across short gaps, so slot matching counts minutes inside the slot, not whole conversations.
  • An open conversation has no end time, so nothing is filed until Bee closes it. A double-press on the Bee button closes it early.
  • Bee's voice-note transcription drops punctuation, and its cleaned-up text drops a leading name, so the command parser works from raw speech and needs the name Marty.
  • The Bee CLI stalled about 20 seconds per call on the macOS Keychain. An undocumented file store fixed that, and also made the CLI work in Lambda.
  • Bedrock's Nova quotas were 0 until Thursday evening, so an Alexa voice front end was cut for this submission.

Accomplishments that we're proud of

It works on a real Bee. On Thu Oct 22 we ran role-played scripts against tutoring slots, with no button presses for the scheduled ones:

  • Two 5-minute slots filed automatically at 17:30 and 18:00. Bee's conversations ran 34 to 40 minutes, but only the minutes inside each slot count.
  • An off-topic conversation in the 19:00 slot (planning a hike) went to review instead of being filed.
  • A canceled 21:00 weekly sync stayed empty, even with a conversation that started at 21:06. It covered 24 of the slot's 30 minutes, under the series' minimum.
  • An agenda item said into the Bee button was filed within seconds. An unscheduled Finance meeting was started and ended by voice and filed as its own session.

Also:

  • Bee's own button became a real-time command channel for another product, with no app to open.
  • A 26-entry friction log written as we went, with a workaround and a suggestion for each entry.

What we learned

  • Start with the realtime stream. I spent my first 6 hours learning the CLI against three weeks of my own data. bee stream would have shown sooner how conversations, insights and voice notes are created and completed.
  • Design around Bee's two speeds. Voice notes are READY in 3 to 6 seconds, fast enough to be a command channel. Conversations close 13 to 27 minutes after talk ends. The product uses the fast path for commands and is patient with the slow one.
  • A name makes voice commands reliable. Addressing notes to Marty keeps commands apart from ordinary notes, and Bee's transcription drops the punctuation a "Command: …" grammar would need.
  • Ambient data earns trust by asking. Filing only what the evidence supports, and sending the rest to review, mattered more than clever matching.
  • Narrow beats broad. A laser focus on a few recurring sessions was easier to build, easier to trust, and more useful than a digital twin.
  • Request cloud model quotas on day one. On a new AWS account the Bedrock quotas started at 0, and lifting them took about 36 hours through AWS Support.

What's next for Between Sessions

  • Bee captures, Alexa answers: "Alexa, ask Between Sessions to prep me for tutoring." The MCP server already answers Claude Code, and the Nova quota for the Alexa bridge landed Thursday evening, so the bridge can resume.
  • Spoken review: confirm or retag a guess by voice, with date, time and length only, never the summary.
  • A small web app with sign-in, to replace the local review pages.

Creepy, but amazingly useful.

Built With

Share this project:

Updates

Submission history