Memory
Your personal AI knowledge vault that remembers everything important about your projects, preferences, and workflows. Never explain the same thing twice.
Overview
Section titled “Overview”Memory Management is an intelligent context persistence system that stores, organizes, and retrieves important information across all your AI interactions. Think of it as your AI’s long-term memory.
Key Benefits
Section titled “Key Benefits”- Never Repeat Yourself: Store context once, use everywhere
- Instant Recall: Find any memory in milliseconds
- Auto-Context: AI automatically references relevant memories
- Rich Metadata: Tags, categories, and custom fields
- Cross-Platform: Web, API, and MCP access
What Are Memories?
Section titled “What Are Memories?”Memories are text-based information snippets that provide context to AI conversations:
- Project specifications
- Coding standards and conventions
- Personal preferences and style guides
- Workflow procedures
- Important facts and decisions
- Team guidelines
- Technical constraints
Creating Memories
Section titled “Creating Memories”Manual Creation
Section titled “Manual Creation”- Navigate to Memory in the sidebar
- Click Create New Memory
- Enter memory details:
- Text: The memory content
- Project: Organization grouping (optional)
- Metadata: Tags, category, priority, custom fields
- Click Save
Example Memory
Section titled “Example Memory”Project: vibexp-backendCategory: coding-standardsPriority: high
TypeScript Style Guide:- Use functional components with hooks- Prefer const over let- Use async/await over promises- Follow Airbnb ESLint rules- Document complex functions with JSDocAutomatic Creation via MCP
Section titled “Automatic Creation via MCP”Connected AI tools can create memories during conversations:
vibexp_io_create_memory({ team_id: "<team-uuid-or-slug>", project_id: "<project-uuid>", text: "User prefers React with TypeScript and Tailwind CSS", metadata: { category: "coding_preferences", priority: "medium" }})Organizing Memories
Section titled “Organizing Memories”Project Grouping
Section titled “Project Grouping”Organize memories by project:
user/preferencescompany/main-apppersonal/workflowsclient/project-xMetadata Organization
Section titled “Metadata Organization”Categories
Section titled “Categories”Organize by category:
coding_standardsproject_specsworkflow_procedurespersonal_preferencesteam_guidelines
Priorities
Section titled “Priorities”Set importance levels:
high: Critical context always referencedmedium: Important but context-dependentlow: Nice-to-have background information
Custom Tags
Section titled “Custom Tags”Add searchable tags:
- Technology:
typescript,react,nodejs - Domain:
frontend,backend,devops - Purpose:
style-guide,architecture,deployment
Linking Memories to What They Explain
Section titled “Linking Memories to What They Explain”Tags group memories; relations connect them to specific resources. A memory that
records why a decision was made can be attached to that resource, which is then
explained-by the memory, so the reasoning surfaces next to the thing it
justifies rather than only in search. See Relations.
Memory Lifecycle Status
Section titled “Memory Lifecycle Status”Every memory has a lifecycle status that controls where it appears:
- active — the default. Active memories show up in memory lists and in search results.
- draft — a work in progress. Drafts appear in default memory lists so you can keep refining them, but they are never returned by search, so AI tools won’t pick them up as context.
- archived — retired. Archived memories are hidden from default lists and from search, but remain reachable when you filter the list by the
archivedstatus explicitly.
Changing a Memory’s Status
Section titled “Changing a Memory’s Status”- In the app — the memory create/edit form includes a status selector, each memory shows a status badge in the list and detail views, and the memory list has a status filter (including “All statuses”) so you can find drafts and archived memories.
- Over MCP —
vibexp_io_create_memoryandvibexp_io_update_memoryboth accept astatusparameter (active,draft, orarchived), so connected AI tools can, for example, park an unconfirmed fact as a draft or archive an outdated one.
Searching and Filtering
Section titled “Searching and Filtering”Semantic Search
Section titled “Semantic Search”Search finds memories by meaning, not just by matching words:
Search: "React hooks best practices"Surfaces memories about React hooks and best practices even when they use different wording. Semantic search is the default.
Keyword search syntax
Section titled “Keyword search syntax”In keyword mode (no embedding provider) the search box supports these operators:
"exact phrase": words in quotes must appear together, in order.word1 OR word2: match either term (plain words are ANDed by default).term -excluded: exclude results containing a term.
Title matches rank highest, and ranking is length-normalized so a short, on-topic title beats a long document that merely mentions the term. A single mistyped word still matches by typo tolerance.
In semantic mode (embedding provider configured) the query is embedded as text, so these operators are treated as ordinary words rather than search operators.
Advanced Filters
Section titled “Advanced Filters”Filter memories by:
- Tag: Custom tag filtering (tags come from memory metadata)
- Status: Memory lifecycle status
- Metadata: The metadata filter matches on any metadata key-value pairs.
Pick a key, then one or more values (with typeahead from the values your
team actually uses). Keys combine with AND, values within a key with OR.
Tag filtering is the same mechanism applied to
metadata.tags, and all of it is applied server-side - Project: Use the global project selector in the app header to scope the list to one project (or all)
Fields like category and priority live in each memory’s free-form metadata and are searchable.
The memory create and edit form includes a key-value metadata editor for adding or changing metadata pairs directly in the UI.
To query memories by the metadata they carry, see Metadata filtering.
Auto-Context Injection
Section titled “Auto-Context Injection”How It Works
Section titled “How It Works”When using AI tools connected via MCP:
- You start a conversation
- AI analyzes the context and topic
- Relevant memories are automatically searched
- Matching memories are injected as context
- AI uses this context in responses
Relevance Matching
Section titled “Relevance Matching”Memories are ranked by semantic relevance to the query (vector similarity). When recency ranking is enabled, relevance is blended with how recently a memory was created or updated. Ranking is configurable per team on the team’s Search Settings page (presets or advanced tuning of the relevance/created/updated weights and half-life), falling back to the instance defaults. Without an embedding provider, matching falls back to keyword (full-text) search with typo tolerance.
Manual Reference
Section titled “Manual Reference”You can also manually reference memories:
"Using the coding standards from memory...""Apply the deployment procedure we discussed..."Connected AI tools can search and retrieve specific memories on demand.
Updating Memories
Section titled “Updating Memories”Edit Existing
Section titled “Edit Existing”- Find the memory
- Click Edit
- Update text or metadata
- Save changes
Version History
Section titled “Version History”Every save snapshots the memory’s content as a version. The memory view
keeps the full version history: browse earlier snapshots, diff them against
the current text, and restore an older version when a change went wrong.
The instance keeps the 20 most recent versions per memory by default
(retention.content_version_limit).
MCP Integration
Section titled “MCP Integration”Creating Memories
Section titled “Creating Memories”// AI tools create memories during conversationsvibexp_io_create_memory({ team_id: "<team-uuid-or-slug>", project_id: "<project-uuid>", text: "User's testing framework preference: Jest with React Testing Library", status: "active", // optional: active (default), draft, or archived metadata: { category: "testing", priority: "medium", tags: ["jest", "react", "testing"] }})Listing Memories
Section titled “Listing Memories”// AI tools list memories for context with the generic list_resources toolvibexp_io_list_resources({ team_id: "<team-uuid-or-slug>", resource_type: "memory", project_id: "<project-uuid>", search: "database", limit: 5})Retrieving Specific Memory
Section titled “Retrieving Specific Memory”// Get a memory's full content by ID with the generic get_resource toolvibexp_io_get_resource({ team_id: "<team-uuid-or-slug>", resource_type: "memory", id: "<memory-uuid>"})Updating Memories
Section titled “Updating Memories”// Update memory content, status, or metadatavibexp_io_update_memory({ team_id: "<team-uuid-or-slug>", memory_id: "<memory-uuid>", text: "Updated content...", status: "archived", // optional lifecycle change metadata: { priority: "high" }})Deleting Memories
Section titled “Deleting Memories”AI tools delete a memory with the generic vibexp_io_delete_resource tool, passing resource_type: "memory" and the memory’s id:
vibexp_io_delete_resource({ team_id: "<team-uuid-or-slug>", resource_type: "memory", id: "<memory-uuid>"})Deletion also removes the memory’s search embeddings. Prefer archiving (status: "archived") when you might want the memory back.
Common Use Cases
Section titled “Common Use Cases”Coding Preferences
Section titled “Coding Preferences”Category: coding_preferencesPriority: high
TypeScript Preferences:- Strict mode enabled- Functional components only- Use Zod for validation- Prefer composition over inheritanceProject Context
Section titled “Project Context”Project: client/ecommerce-appCategory: project_specs
Architecture:- Next.js 14 with App Router- PostgreSQL database- Prisma ORM- Tailwind CSS for styling- Deployed on VercelWorkflow Procedures
Section titled “Workflow Procedures”Category: workflowsPriority: medium
Git Workflow:1. Create feature branch from main2. Make changes with conventional commits3. Run tests locally4. Push and create PR5. Wait for CI and review6. Squash merge to mainTeam Guidelines
Section titled “Team Guidelines”Project: company/main-appCategory: team_guidelinesPriority: high
Code Review Guidelines:- All PRs require 2 approvals- Must pass all CI checks- Update documentation for new features- Add tests for bug fixesTips and Best Practices
Section titled “Tips and Best Practices”Memory Content
Section titled “Memory Content”- Be specific and concise
- Include relevant context
- Use clear, searchable language
- Update regularly as preferences change
Metadata Strategy
Section titled “Metadata Strategy”- Use consistent categories across memories
- Assign appropriate priorities
- Add multiple relevant tags
- Include project context when applicable
Organization
Section titled “Organization”- Group related memories by project
- Use hierarchical projects for large organizations
- Regular cleanup of outdated memories
- Archive old memories instead of deleting
Search Optimization
Section titled “Search Optimization”- Include keywords in memory text
- Use tags for common search terms
- Add context in metadata
- Keep memory text focused
API Access
Section titled “API Access”REST API Endpoints
Section titled “REST API Endpoints”All memory endpoints are team-scoped:
# List memories (optional filters: project_id, search, status, ...)GET /api/v1/{team_id}/memories?project_id={project_id}
# Get specific memoryGET /api/v1/{team_id}/memories/{memory_id}
# Create memoryPOST /api/v1/{team_id}/memories
# Update memoryPUT /api/v1/{team_id}/memories/{memory_id}
# Delete memoryDELETE /api/v1/{team_id}/memories/{memory_id}See API Keys for authentication.
Frequently Asked Questions
Section titled “Frequently Asked Questions”How many memories can I store?
Section titled “How many memories can I store?”Unlimited. Create as many memories as needed for your context library.
How does auto-context work?
Section titled “How does auto-context work?”When AI tools are connected via MCP, they automatically search your memories for relevant context based on conversation topics and keywords.
Can I control which memories are used?
Section titled “Can I control which memories are used?”Yes. Use priority levels and project grouping to control which memories are most likely to be referenced.
Are memories shared between projects?
Section titled “Are memories shared between projects?”Memories can be project-specific or global. Project-specific memories are only referenced in that project context.
Can I export memories?
Section titled “Can I export memories?”There is no built-in export button. Use the REST API
(GET /api/v1/{team_id}/memories) to list your memories as JSON, or connected
AI tools via MCP to retrieve them.
How secure are my memories?
Section titled “How secure are my memories?”All memories are encrypted at rest and in transit. Access is controlled via API keys with user-specific isolation.
Related Features
Section titled “Related Features”- MCP Server Integration - Auto-inject memories in AI conversations
- Artifacts - Store larger content pieces
- Prompts - Reusable AI templates