Inspiration

I make promises all day: "I'll send you the report on Friday," "remind me to call the landlord tomorrow." By evening half of them are gone. Bee already hears those conversations, so I wanted to turn what I say out loud into things I actually follow through on.

What it does

Talk-to-Task reads my real conversations captured by Bee (I recorded on my Apple Watch) and:

  • finds the commitments I made, and ignores promises other people made
  • turns "Friday" or "tomorrow morning" into real due dates, with a confidence score
  • drafts a short follow-up message for each task, with one-click WhatsApp and email links
  • exports tasks to my calendar (.ics) and writes them back into my Bee todos
  • lets me edit a task or remove a wrong one, and keeps tasks between runs, with a "carried over" count for promises from earlier days

How I built it

  • The Bee CLI (bee now --json) returns recent conversations with full, timestamped transcripts.
  • Only the transcript text goes to Claude Sonnet 4.6 on Amazon Bedrock (Converse API), which returns structured JSON: task, person, due date, confidence, and draft message. Location and other metadata are dropped.
  • A Streamlit page shows a morning summary grouped by Overdue, Today, Tomorrow, and Later.
  • Writing a task back into Bee uses the CLI's bee todos command.
  • Built in Python with boto3, and open source under the MIT license.

Challenges

  • Bee sometimes labeled my own voice "Unknown," so my first run missed new tasks. I fixed it by treating solo unidentified speech as me and telling the model about it.
  • Speech-to-text mangled names (Priya became "Bria" and "Tria"). A known-contacts list fixed most of these.
  • Bee's transcript sometimes ended a sentence mid-word ("...call the landl"), the JSON listed utterances out of time order, and the same sentence appeared under two speaker labels. I sorted by timestamp and let the model use context to fill gaps.
  • Access to the newest Claude model was denied on my AWS account, so I used Sonnet 4.6 through a global inference profile.
  • The Bee CLI docs I found disagreed on how to create a todo, so the app supports both forms.

What I learned

Small things decide whether a voice tool is usable: speaker labels, name accuracy, and clear dates. Showing a confidence score and letting the user edit a task made the AI's mistakes easy to catch.

What's next

A morning summary of what I promised yesterday, syncing completed tasks back from Bee, and better handling of promises with no date.

Everything runs locally except the call to Amazon Bedrock. I only recorded myself, and the names in the demo are examples.

Built With

Share this project:

Updates

Submission history