Graph memory
While traditional memory (core.md or notes.md) stores raw text, Graph memory structures knowledge as a web of relationships. This allows coding agents to answer complex architectural questions like "What depends on this API endpoint?" or "Why was this UI library chosen over the alternative?"
Nodes
A node is a specific entity in your project's ecosystem. Nodes can represent:
- Files/Modules (e.g.,
src/auth.ts) - Concepts/Systems (e.g.,
The Billing Engine) - Decisions (e.g.,
Decision: Use Tailwind) - External Dependencies (e.g.,
NextAuth.js) - Tasks/Tickets (e.g.,
JIRA-1234)
Every node has a unique identifier, a label, and optional metadata.
Edges
An edge connects two nodes, defining their relationship. Edges can be directed and typed.
Common edge types include:
depends_on(A requires B to function)implements(A fulfills the interface of B)resolves(A fixes bug B)supersedes(A replaces decision B)relates_to(A and B are contextually linked)
Edges can also carry weight, confidence scores, and source references back to the code or documentation where the relationship was discovered.
Using graph memory
You can interact with graph memory through multiple surfaces:
- Local Graph:
@tekmemo/graphprovides the TypeScript contracts and local graph behavior, saving nodes and edges as JSON lines in.tekmemo/. - Cloud APIs: TekMemo Cloud exposes project-scoped graph APIs for managing massive graphs.
@tekmemo/cloud-clientwraps these endpoints. - Agent Tools:
@tekmemo/mcp-serverexposes graph tools to coding agents so they can traverse relationships at runtime.