Lives in your iMessage group chat

Your group chat can actually get things done.

plansaroundus is an action layer for iMessage. It understands the conversation, remembers the people in it, and turns what the group wants into real actions — calls, payments, plans — right in the same thread. Not another chatbot to open.

Group · Dinner tonight
I'm starving but have zero energy to plan
same, somewhere downtown?
@agent where should we get dinner tonight?
@agent on it — you're both downtown and Priya's off shellfish, so I'm looking there first.
Three spots open at 8. Want me to narrow it down?
Native assistant

It answers inside the chat you already have.

Photon carries messages between iMessage and the assistant. @agent replies in the same conversation — no separate app, no moving the group somewhere else.

Directed at the assistant
A message with @agent is a request it should answer.
A direct conversation
One-on-one chats with the assistant work the same way.
Everything else
Normal group messages provide context without triggering a reply.
Group context

Nobody has to repeat the plan.

Where you are, where you're headed, who's coming, timing, how people want to travel — it's already in the thread, so @agent reads it from there.

Group · Saturday
Let's meet at Columbia.
Then head to Times Square?
@agent how should we get there?
@agent Starting from Columbia and heading to Times Square — want the subway or a ride? I'll pull options for how you all prefer to travel.
Resolved from the chat
“there” = Times Squarestart = Columbia3 people

Context comes from recent messages in that conversation, so a short question gets a full answer.

Personal memory

It stops asking you the same things.

Backboard keeps a memory store per person. It doesn't do the thinking — it hands the useful bits to Gemini, which writes the answer.

no shellfishusually starts at Columbiaprefers the subwaygroup likes Italianwe picked Carbone last time
Where memory sits in the loop
iMessage
Photon
Conversation context
Backboard memory
Gemini
Response sent through Photon
iMessage

Memories stay tied to the person they belong to. For a group question, @agent can pull what's relevant about several participants at once.

Getting places

Transportation, handled.

Gemini does the reasoning; Google Maps grounding supplies real places and location context. When exact route or timing data isn't available, @agent says so instead of guessing.

↗
Columbia → Times Square
Both places resolved via Maps grounding · example card, not live route data
Send to chat
“How do we get there?”
“Should we walk or take the subway?”
“What's near us?”
“What station should we use?”
Stay aware

“Is this walk okay at midnight?”

@agent checks public NYPD complaint data stored in Tiger Data around the block you're on, at the hour you're asking about, and tells you how it compares to that area's usual pattern.

Group · Walking home
@agent is it okay to walk through Washington Square at midnight?
Historically quieter than its peak: fewer reports around midnight than around 4pm near the park. Stick to the lit paths on the west side.
Historical NYPD reports, not a live safety score.
Time-aware
Counts are compared by hour of day from a Tiger Data hypertable, so 2pm and 2am get different answers.
Block-level
It looks at the streets around a specific point, never labels a whole neighborhood.
Honest by design
No “safe/unsafe” score and no demographic data. It's context from public reports, clearly labeled.
Talk or text

Send a voice memo. Get one back.

Hold the mic button in iMessage and just ask. ElevenLabs transcribes it, @agent answers in text (with links), then replies out loud as a voice memo.

Direct · @agent
▶0:06
1. Caffe Reggio, 5 min walk: espresso and cannoli. 2. The Stand, 10 min: comedy tonight.
▶0:14
Restaurant planning

From “we should get dinner” to an actual plan.

No forms. @agent asks in conversation for whatever's missing — a name, a number, seating — before it acts.

Group · Booking
@agent book Carbone for the 7 of us around 8
@agent Got the place, party size and time. I still need a name and phone number for the reservation.
Rohan, 555-0142
AI phone calls

It calls the restaurant.

We're integrating ElevenLabs so the assistant can hold a natural phone conversation. Gemini decides what to say; ElevenLabs is the voice on the line.

Calling Carbone…
00:42
“Hi — I'd like a table for seven at 8pm on Saturday, under Rohan.”
Reservation confirmed
Carbone · Saturday 8:00 PM
7 people · confirmed by the restaurant on the call
example result card · nothing is reported as booked until the restaurant says so
Group chat→Missing details confirmed→ElevenLabs call→Restaurant's answer→Back into iMessage
Conversational payments

Settle up without leaving the chat.

Every customer has their own XRPL Testnet wallet. Payments settle wallet to wallet on XRPL Testnet, and nothing is sent until the person asking says yes.

Group · Uber
I got the Uber, it was $40
@agent send Keith $20 for it
@agent I'm about to send Keith $20. Confirm $20?
yes
Sent $20 to Keith. https://testnet.xrpl.org/transactions/…
  1. 1iMessage request
  2. 2Gemini reads recipient + amount + reason
  3. 3Explicit confirmation from the sender
  4. 4Deterministic policy check (no LLM)
  5. 5Signed from the sender's own Testnet wallet
  6. 6Validated ledger result + hash
  7. 7Reply in the same iMessage chat
demo example · settles in test XRP on XRPL Testnet, not a real-money transfer
Live settlement

Real ledger, test money.

Customer wallets, balances, and validated transactions read live from XRPL Testnet, plus payments the guardrails refused before anything was signed.

XRPL Testnet · no real money
  1. 1Request
    Someone asks @agent to pay
  2. 2Confirmation
    The same person says yes in the same chat
  3. 3Policy check
    Deterministic rules, no model
  4. 4Sign
    Only after ALLOW
  5. 5XRPL
    Submitted to XRPL Testnet
  6. 6Validated
    tesSUCCESS on a validated ledger
Connecting to the live XRPL Testnet feed…
All together

Discussion → decision → action. One thread.

These aren't separate mini-apps. The same conversation can move from picking a place, to booking it, to paying, to getting there.

Group · Friday night — demo example
  1. “@agent where should we get dinner?”
    Conversation context + Backboard preferences
  2. “Carbone sounds good. Can you book it?”
    ElevenLabs calls the restaurant
  3. “They need a deposit.”
    Assistant explains the required payment
  4. “Pay it.”
    Asks for explicit confirmation → Ripple transaction
  5. “How do we get there?”
    Gemini + Maps location context
All of this happens inside the same iMessage thread — nobody switches apps.
Actions, not answers

Conversation → context → reasoning → action.

You shouldn't have to bounce between Maps, a restaurant site, a phone call, and the group chat to sort out one evening.

“How do we get there?”
→ Location context from Maps
“Where should we eat?”
→ Group context + memory
“Can you reserve it?”
→ AI phone call
“Send Keith $20 for it”
→ Confirmed Ripple transaction
“What did we decide?”
→ Conversation + memory retrieval
“Split it and book it”
→ Several actions, one thread
Built with

One brain, many hands.

Checking integration status…

Photon
iMessage infrastructure
  • Receives iMessage conversations
  • Identifies spaces and group chats
  • Sends replies back to the right chat
Gemini
Intelligence and reasoning
  • Interprets natural-language requests
  • Reasons over recent conversation context
  • Handles intent and follow-up questions
Backboard
Persistent user memory
  • Separate memory per person
  • Retrieves useful prior information
  • Supplies memory to Gemini when relevant
Google Maps
Real-world location context
  • Place lookup and nearby locations
  • Transportation context
  • Grounded geographic information
ElevenLabs
Voice and phone interaction
  • Gives the agent a natural speaking voice
  • Conducts the reservation call with restaurant staff
  • Transcribes voice memos and replies with one
Tiger Data
Time-series city data
  • NYPD complaint history in a Postgres hypertable
  • Hour-of-day comparisons around a location
  • City event feeds for “what's on near us”
Ripple
Payments and transactions
  • Executes test transactions
  • Turns conversational payment requests into actions
  • Returns transaction status to the agent
  • Requires confirmation before execution
Architecture

How it's wired.

iMessage
Photon
Agent orchestrator
Backboard
user memory
Gemini
reasoning
↳ Maps grounding
places / location context
↳ Tiger Data
NYPD history / city events
Action layer
ElevenLabs → restaurant calls
Ripple → payments
Result
Photon
Original iMessage conversation
Demo story

One night, start to finish.

  1. 1Friends are talking in an iMessage group chat.
  2. 2Someone asks: “@agent find us somewhere for Italian tonight.”
  3. 3It uses the conversation and each person's memory to suggest a fit.
  4. 4The group picks a restaurant.
  5. 5Someone says: “@agent book it for the 7 of us around 8.”
  6. 6It already has most details and asks only for what's missing.
  7. 7The ElevenLabs integration calls the restaurant.
  8. 8Gemini runs the conversation logic during the call.
  9. 9The restaurant confirms or turns down the requested time.
  10. 10If a deposit is needed, @agent asks for confirmation, then Ripple runs the (test) transaction.
  11. 11The real result lands back in the original iMessage group.

Add @agent to your group.

One number, added to the chat you already have.

Get your beta spot ↗

plansaroundus · conversations shown are demo examples, not real bookings