Memory Lens
Part of the Shravan.ai ecosystem· built on FalkorDB

Your agents call you. And remember.

When Claude Code or Codex finishes a task, Summon phones you, asks its open question and takes your spoken instruction. The agent carries on with what you said, and every agent after it finds that decision in one shared graph, with the call it came from.

●  LAST CALL
Claude Code demo-api
S Summon
Ready
Y You
On your phone
Every answer lands in FalkorDB as a node linked to this call.
#
—
Decisions remembered
~
—
Calls in the graph
>
—
Spoken instructions
+
—
Agents sharing memory
* FalkorDB ~ Shravan.ai voice > Claude Code > OpenAI Codex = Model Context Protocol

One memory, any agent, any phone

How it works

A phone line for your agents,
a memory for all of them.

1

Finish

Claude Code or Codex stops. Its Stop hook hands Summon the summary and its open questions.

›
2

Call

The graph decides whether to ring now. Your phone rings; Summon reads the summary and asks.

›
3

Decide

Your answers and instructions become nodes linked to that exact call, never a flat transcript.

›
4

Remember

The agent continues with your words. Every later agent reads them, with the path back to you.

Say it once,
on the phone.

"Keep the old route backward compatible." That sentence becomes a Decision node, linked to the call, the task and the agent that was running. Change your mind later and the new decision supersedes it, history intact.

Decision Call Instruction

One memory for
every agent.

Claude Code, Codex and Cursor read the same graph through one MCP server.

Every answer has
a path back to you.

Ask any agent why it did something and it can show you: Decision → Call → you, with the time you said it, what it replaced, and which agents have read it since.

Track 01 · agents that act on connected data

The graph decides
when your phone rings.

Quiet hours you mentioned on an earlier call, how many calls you missed this hour, and how urgent the task is are all read from FalkorDB. The decision is written back as a node, so you can always see why your phone did, or did not, ring.

  • "Don't call me before 9" becomes a Preference, learned on a call
  • Two missed calls in an hour back the agent off for 30 minutes
  • A hard cap stops a runaway agent from draining your wallet
CALL DECISION
Local time
23:40 IST
Quiet hours
22:00 – 09:00 · learned on a call
Calls this hour
1 of 6
Missed this hour
0
Task priority
normal
RETRY_IN quiet hours 22:00–09:00 · will ring at 09:00
PROVENANCE · CYPHER
// where did this rule come from?
MATCH (n {id: $id})
OPTIONAL MATCH (n)-[:MADE_IN|GIVEN_IN|LEARNED_IN]->(c:Call)
OPTIONAL MATCH (c)-[:ABOUT]->(t:Task)
      -[:IN]->(:Session)-[:RUN_BY]->(a:Agent)
OPTIONAL MATCH (n)-[:SUPERSEDES]->(old)
RETURN n, c.at, t.title, a.name, old

// what did the other agents do while I was away?
MATCH (t:Task)-[:IN]->(s:Session)-[:RUN_BY]->(a:Agent)
WHERE a.name <> $me AND t.done_ts >= $since
RETURN t, a.name

Track 02 · agent memory and coordination

Memory as a graph,
not a pile of transcripts.

Provenance is a path. Handoff is a relationship between sessions. A changed mind is a SUPERSEDES edge. These are one-hop and three-hop questions in Cypher, answered in milliseconds by FalkorDB on every agent turn.

  • One graph per developer, isolated in a single FalkorDB instance
  • Webhook retries can't duplicate a fact: every write is a MERGE
  • Full-text recall across decisions, instructions and tasks

Works with

Wire an agent in one command.
Talk to it from any phone.

>

Claude Code

Stop hook in .claude/settings.json · memory over MCP in .mcp.json

Verified end to end
>

OpenAI Codex CLI

Stop hook in .codex/hooks.json · codex mcp add summon

Verified end to end
>

Cursor

.cursor/mcp.json · stop hook returns a followup_message

Supported
~

Shravan.ai voice

Real calls on an Indian number through the public /v1/calls API · signed webhooks

Voice provider
|

Phone in the loop

Your spoken words become the agent's next instruction through its own Stop hook. No new app to install.

See the loop ›
#

Signed and idempotent

HMAC-verified webhooks, one event one write, and a poll fallback when a webhook goes missing.

See the Cypher ›
=

Private by default

Phone numbers are stored hashed. Unknown callers are rejected. The inbox runs only in the folder you choose.

Read more ›
+

Runs with zero accounts

Mock voice mode answers the "call" in the Lens, so anyone can try the whole loop locally in minutes.

Run it ›

Give your agents a phone line.

Clone it, point it at FalkorDB, and wire any project. Mock mode needs no telephony account; switch to Shravan.ai for real calls.

$uv run summon init . && uv run summon serve