Inspiration

Friend group chats are amazing at talking about plans and terrible at finishing them. “We should hang out” dies in the scroll. “I’ll pay you back” becomes one person chasing everyone. Nobody wants to be the nag — and nobody wants another app.

We built mi amigo for that gap: a Photon iMessage group agent that sits at the table like a quiet friend who actually follows through. Not Meta AI dumping essays. A neutral dealer that turns chaos into locked decisions — splits, plans, sealed whispers — and kicks long stuff out to Sheets/Docs so the chat stays human.

What it does

mi amigo is a unique phone number you add to an iMessage group. No app install. The product is the groupchat.

  • Stays quiet during conversations and only steps in when the group needs coordination (or when someone @photon / runs a \command).
  • Splits & settles — notices shared expenses, confirms who owes whom, tracks the tab, nudges politely (optional opt-in SMS call reminders). Coordination first, not banking.
  • Turns hangouts into decisions — “soccer this weekend?” → short poll → votes → lock the plan.
  • Whisper — DM a private constraint (“I’m broke — don’t say it”), and it will keeps it privately and coordiates.
  • Surprise — \surprise @Tien plans with everyone except Tien.
  • Person cards — Pokémon-style cards in-chat (\card @Alex): picks, paid, tab, whisper SEALED — never the secret itself.
  • Sheets & Docs when it’s long — long steps → Google Sheets; packing lists / conspiracy notes → Docs. Chat gets a link, not a wall of text.
  • Calendars & bring-lists — find times / add confirmed plans with permission; remind who brings what.

It succeeds when the group follows through with fewer messages — not when the bot talks more.

How we built it

  • Photon 2.0 for a real messaging presence: dedicated iMessage line for the group, spectrum-ts agent loop; SMS/voice only for opt-in reminders if we get there.
  • Shared job engine (split / plan / whisper / surprise / lock) so every wake path ends in a short job card, not freeform spam.
  • Card renderer for person + job cards (image attachments into iMessage).
  • Google Sheets / Docs hooks for ledger + long notes when a job is too fat for chat.
  • Web/terminal simulator for rehearsal when the line isn’t ready; live demo targets a real Photon group.

Challenges we ran into

  • Photon group setup — shared-pool lines are weak for groups; dedicated iMessage line is a real prerequisite and ate early hours.
  • Proactive vs spam — “helpful member” is easy to overdo; we had to hard-rule quiet mode, one-card replies, and allowlisted auto-intents.
  • Whisper UX — proving a private constraint changed the public deal without leaking who said it (trust is the product).
  • iMessage ≠ Discord — no native slash menu; \commands + natural triggers have to feel native in a groupchat.

Accomplishments that we're proud of

  • A product story judges can feel in one minute: chaos → card → lock → settle.
  • Whisper + person cards — differentiation you can screenshot (SEALED badge, adjusted split, no exposed secret).
  • Designing for Photon’s brief: agents that participate in human-to-human chat, not a web chatbot cosplay.
  • Clear cut line: card = short/social; Sheet = money/history; Doc = long notes — so the groupchat doesn’t drown.
  • A team plot we could actually divide (line / engine / demo / track writeups) under a 24h clock.

What we learned

  • On messaging platforms, silence is a feature. Wake discipline beats model cleverness.
  • Multi-party decisions need per-person state (wants, vetoes, whispers) — treating the group as one user makes Meta-AI mush.
  • Hackathon Photon wins come from live channel + sharp wedge, not feature count.
  • Social products need an explicit contract: who we are, when we speak, how to stop, what we never leak.
  • Exporting to Sheets/Docs isn’t a side quest — it’s how you keep iMessage feeling like a chat, not a CRM.

What's next for mi amigo

  • Harden live Photon group onboarding (invite flow, contract message, pause/stop).
  • Deeper settle story (clearer payment confirmations, disputed splits, Visa-friendly handoff).
  • Calendar find-a-time + bring-list reminders with per-member consent.
  • Opt-in SMS voice nudges that keep call context without leaking the whole group thread.
  • Trip mode (itinerary memory, optional flight status) once core follow-through is airtight.
  • Richer person-card art themes and fairness rotation so the “table” gets more fun without getting louder.

Built With

Share this project:

Updates

Submission history