flexx logoflexx docs

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

ToolWhat it does
memory_rootsReturn the root nodes (User, Machine, Projects). Call this first for orientation.
memory_recallRecall knowledge — by query, by traversing the graph from a node, or filtered by type. Supports scope: "repo" to stay within the current repository.
memory_searchSemantic (vector) search across all nodes by content.
memory_rememberCreate or update a node. Re-using a node's name and type deduplicates instead of creating a near-duplicate.
memory_relateCreate a typed edge between two nodes.
memory_forgetArchive 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_remember with an existing node's node_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_forget when something is superseded, so stale context does not mislead the next agent.

On this page