Memory
A graph-backed memory layer that gives AI agents durable context across sessions, clients, and machines. Works with a free account and any MCP client — no install required.
What Memory is
AI models forget everything when a conversation ends. Memory gives them a durable place to put what matters: decisions you've made, conventions you follow, project goals, and how you like to work.
It is a graph — nodes connected by typed edges — scoped to you, exposed over MCP. Any client you connect can read and write it, and what one agent learns, the next one can recall.
Memory needs no install
Unlike Remote, Memory has nothing to install. Create a free account, add
https://relay.flexx.dev/v1/mcp to your AI tool, and the memory tools are
available immediately — even with no machine connected.
Memory tools
| Tool | What it does |
|---|---|
memory_roots | Return the root nodes (User, Machine, Projects). Call this first for orientation. |
memory_recall | Recall knowledge — by query, by traversing the graph from a node, or filtered by type. Supports scope: "repo" to stay within the current repository. |
memory_search | Semantic (vector) search across all nodes by content. |
memory_remember | Create or update a node. Re-using a node's name and type deduplicates instead of creating a near-duplicate. |
memory_relate | Create a typed edge between two nodes. |
memory_forget | Archive a node (soft delete) — use it when information goes stale. |
Node types
user, project, decision, convention, goal, component, environment,
session, preference, open_question.
Relation types
has_preference, owns, decided, because, follows_convention,
depends_on, related_to, supersedes, part_of, conflicts_with,
active_in.
A small graph beats a big pile: when you store a node, link it to related nodes you already know about. Connected nodes are what make later recall useful.
Scoping
Every node belongs to a scope:
user— personal and global. Preferences, how you like to work, facts that apply everywhere. Nodes default to this scope.repo— tied to a repository's git remote. Architectural decisions, conventions, and build quirks that belong to one project.
With scope: "repo", flexx detects the git remote of the project it is working in
so the node is tagged with the right repository, and memory_recall with
scope: "repo" returns only that repository's nodes.
Working outside the daemon's workspace?
When the agent is operating on a directory other than the daemon's configured
workspace, pass project_root (or call set_workspace first) so repo-scoped
nodes are tagged with the repository you actually mean.
See your memory
The dashboard renders the graph: browse nodes, search, inspect edges, and see what each session has learned. Memory is on by default for every account; it can be toggled in settings.
Shared across clients and machines
Memory lives on the server, not in any one client. If you connect Cursor on your laptop, Claude on your desktop, and Flexx Agent in the browser, they all read and write the same graph. A machine does not have to be online for memory to work.
From conversations to memory
The Router logs conversations scoped by project. A distillation job promotes durable facts from those conversations into Memory, so context your agents generate in day-to-day work can become permanent knowledge without anyone writing it down by hand.
Best practices
- Store the why, not the what. The code already says what; memory should say why a decision was made.
- Prefer updating over duplicating. Call
memory_rememberwith an existing node'snode_id, or reuse its name and type. - Link eagerly. A decision linked to its project and its reasoning is far more useful later than an isolated fact.
- Forget deliberately. Use
memory_forgetwhen something is superseded, so stale context does not mislead the next agent.
SSH Access
SSH into your remote machines through the flexx relay. Auto-configured ProxyCommand, works behind NAT and firewalls.
Bring Your Own Models (Router)
Add your own model providers — Anthropic, OpenAI, OpenRouter, Groq, or any OpenAI-compatible endpoint — and use them in Flexx Agent or from your own code through one router.