Inspiration

In every group project, someone shares an idea, it gets talked over, and ten minutes later someone else says the same thing and gets the credit. Student teams, clubs, and friend groups run on iMessage group chats, and every week they lose the same three things: who said they'd do what, what was decided, and the quieter person's good idea. Our team solution to this: create a group-chat member whose only job is to remember those things fairly.

What it does

GroveKeeper is a quiet member of your group chat. You add it and keep talking normally.

  • Silent by default. It reacts with 👍 when it remembers something and sends at most a few unprompted messages a day.
  • Remembers commitments, decisions and ideas, along with who said each one first. "I'll do the slides by Friday" becomes a task with an owner and a due date.
  • Gives credit where it's due. When an idea is restated later, it credits the person who said it first, without calling out the person who repeated it.
  • Grows a tree for every chat. keeper code gives the chat a tree code. Each person is a branch, tasks are leaves, decisions are flowers and ideas are glowing seeds. Finished work glows gold.
  • ** Handles meetings and voice.** Upload a meeting recording and each action item lands on the right speaker's branch. keeper recap voice sends a spoken summary.

How we built it

** TypeScript** and ** Node** for the agent, plus a small API that serves the tree website. ** Photon Spectrum** connects the agent to iMessage for messages, tapbacks, threaded replies and voice notes. ** Azure OpenAI** makes one structured JSON call per burst of messages. The model proposes and our code decides. ** ElevenLabs** provides the voice recaps and meeting transcription that tells speakers apart. ** Tiger Data** stores every sprout and bloom as a time-series event. A continuous aggregate draws each tree's "growth rings."

Challenges we ran into

Our primary challenge was figuring out how to work with group chats on a shared number. Our agent worked in 1-on-1 iMessage right away, but on Photon's free shared number, group messages arrived as separate 1-on-1s and replies never reached the group. Shared numbers don't support group chats; that needs a dedicated line. We built a fallback that runs on a Mac's own Messages app, and we also built a terminal mode so we can demo the full group experience.

Accomplishments that we're proud of

It was each of our first time's learning about Tiger Data, ElevenLabs, Photon, and Azure. We are proud to have included each of these in our project with a purpose that aligns with GroveKeeper's goal.

What's next for GroveKeeper

  • A dedicated iMessage line so it works in any group chat.
  • Slack and WhatsApp integration, which Spectrum already supports.
  • Option to add calendar reminders for due dates.
Share this project:

Updates

Submission history