Inspiration
We all say “I’ll send that by 3” and then forget. Bee remembers what you said, but nothing makes you do it. Nectar closes that gap by turning spoken promises into wrist alarms.
What it does
Nectar listens to your live Bee conversations and detects the promises you make. Each one becomes a Bee to-do with an alarm 10 minutes before it’s due. The demo shows that full path. I also built three more pieces, which are unit-tested but not in the video: a recap of what you owe the people you’re about to meet, closing a to-do when you say “done with the price list,” and a 6 PM review that tells you what you kept and moves the rest to 9 AM the next day.
How we built it
I built Nectar in TypeScript on Node 22, with SQLite to store everything locally. I connect to Bee through its official CLI: the local proxy API for to-dos and facts, bee stream for live speech, and bee mcp serve for your facts and today’s brief. Each conversation window goes to Claude Haiku 5.5 through the Anthropic API, which uses forced tool calls so the output always matches a schema. I also wrote an Amazon Bedrock client, and it’s ready to use, but I didn’t run it live. I added changefeed catch-up, a proxy watchdog, and retries so it keeps running. The project has 173 tests, CI on every push, and a labeled 10-case evaluation set.
Challenges we ran into
The Bee stream is at-most-once with no replay, so a sleeping laptop can miss a promise. I fixed this with changefeed catch-up and de-duplication. One conversation also had two IDs, a numeric ID in the API and a UUID on the live stream, so the same words were analyzed twice until I mapped them together. Several Bee API response shapes aren’t documented, so I wrote defensive parsers and logged each surprise in a friction log. Speech recognition spells names differently each time (“Musa,” “Mosa,” “Moussa”), which can create a duplicate to-do. Bee also often labels my own voice as “Unknown,” so some of my first-person promises were dropped. And the AWS account I used for Bedrock had its model quotas set to 0 for the whole hackathon, so the demo runs on the Anthropic API.
Accomplishments that we’re proud of
Nectar works from a spoken sentence to a Bee to-do with an alarm, without a custom watch app. It checks existing Bee to-dos and Bee’s own suggestions first, so it avoids duplicates. I measured accuracy instead of guessing: the 10-case set gets 7 of 7 commitments right with zero false positives. Testing against my own live Bee data also found bugs that mocks would have missed, and each one is logged and fixed with a test.
What we learned
Ambient AI is most useful when it works inside tools people already use. Wearable event streams need replay and de-duplication to be trustworthy. The hard parts were identity (who said it, and in which conversation) and time (when “tomorrow” is), not the model call. A small, fast model with good context, like your facts and today’s brief, was enough for accurate extraction. Testing against labeled examples caught problems that spot-checking missed.
What’s next for Nectar (Bee)
I want to confirm alarms on the Apple Watch itself, since in the demo the alarm showed up as a notification on my Mac. Next I’ll normalize names through Bee facts to stop duplicates, and get the Bedrock path running live once the account quotas are lifted. Longer term, I plan to move Nectar from my laptop to an always-on cloud machine, such as an Amazon EC2 instance, so it keeps catching promises while I sleep. I’d also like it to learn from my corrections, and then track promises made to me.
Built With
- amazonbedrock
- anthropic-model
- aws-sdk
- bedrockruntimeapi
- bee-skills
- beecli
- claude
- haiku5.5
- mcp
- sqlite
- tsc
- tsx
Log in or sign up for Devpost to join the conversation.