CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
yonro avatar

XMemo

yonro/memory-os-cli
49 toolsauthHTTPregistry active
Summary

Gives Claude and other AI agents a persistent, user-owned memory layer over remote MCP. The CLI handles OAuth login via xmemo.dev, writes config for Codex, Cursor, Copilot, Gemini, and Antigravity without embedding tokens, and optionally installs behavior profiles that nudge agents to search memory before starting work and save context after decisions. Uses streamable HTTP transport with stable agent instance IDs and zero telemetry. Reach for this when you want conversation history and project context to survive across sessions and tools without scattering state into each editor's isolated storage. The token flow supports both device login and manual credential injection.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Tools

Public tool metadata for what this MCP can expose to an agent.

49 tools
get_mcp_identityCheck XMemo connection status and the connected account/agent. Call this when the user asks whether XMemo is connected.

Check XMemo connection status and the connected account/agent. Call this when the user asks whether XMemo is connected.

No parameter schema in public metadata yet.

store_memoryLow-level memory write with full field control. Use only when a caller needs explicit field-level control; for normal conversational capture use remember.17 params

Low-level memory write with full field control. Use only when a caller needs explicit field-level control; for normal conversational capture use remember.

Parameters* required
agent_idstring
Optional client-supplied agent label for memory attribution.default:
agent_instance_idstring
Optional stable, non-secret agent instance ID for per-client attribution.default:
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: public
confidencenumber
Confidence score for the saved or updated memory, from 0.0 to 1.0.default: 1
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.
device_idstring
Optional client-supplied device identifier for attribution.default:
device_labelstring
Optional human-readable device label for attribution.default:
embedding_jsonstring
Optional JSON array or object containing a precomputed embedding; leave blank for normal use.default:
expires_atstring
Optional ISO 8601 expiration timestamp for the memory.default:
importancenumber
Importance score for the saved or updated memory, from 0.0 to 1.0.default: 0.5
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: semantic
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
pathstring
A simple user-facing category or path for this memory, such as preferences, projects/xmemo, or personal/travel.
provenance_jsonstring
Optional JSON object string describing memory source, evidence, or attribution.default: {}
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
semantic_keystring
Optional stable semantic key used to identify or upsert a memory concept.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
rememberSave a memory so it can be recalled in future conversations. Call this whenever the user states a durable fact, preference, instruction, identity or profile detail, project detail, or recurring workflow likely useful later — you do not need an explicit 'remember this'. Skip tr...19 params

Save a memory so it can be recalled in future conversations. Call this whenever the user states a durable fact, preference, instruction, identity or profile detail, project detail, or recurring workflow likely useful later — you do not need an explicit 'remember this'. Skip tr...

Parameters* required
agent_idstring
Optional client-supplied agent label for memory attribution.default:
agent_instance_idstring
Optional stable, non-secret agent instance ID for per-client attribution.default:
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: public
confidencevalue
Confidence score for the saved or updated memory, from 0.0 to 1.0.
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.
dedupeboolean
Whether to check for and merge likely duplicate memories before saving.default: true
device_idstring
Optional client-supplied device identifier for attribution.default:
device_labelstring
Optional human-readable device label for attribution.default:
embedding_jsonstring
Optional JSON array or object containing a precomputed embedding; leave blank for normal use.default:
expires_atstring
Optional ISO 8601 expiration timestamp for the memory.default:
importancevalue
Importance score for the saved or updated memory, from 0.0 to 1.0.
memory_idstring
Exact XMemo memory reference shown by search or recall.default:
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: auto
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
pathstring
A simple user-facing category or path for this memory, such as preferences, projects/xmemo, or personal/travel.
provenance_jsonstring
Optional JSON object string describing memory source, evidence, or attribution.default: {}
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
semantic_keystring
Optional stable semantic key used to identify or upsert a memory concept.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
add_expenseRecord one expense in the XMemo Ledger. Call this whenever the user states a concrete expense, purchase, income, or refund — for example, 'I spent 25 on lunch' or 'log this expense' — not only on an explicit 'record this'. Capture date, amount, currency, item, and merchant/cat...16 params

Record one expense in the XMemo Ledger. Call this whenever the user states a concrete expense, purchase, income, or refund — for example, 'I spent 25 on lunch' or 'log this expense' — not only on an explicit 'record this'. Capture date, amount, currency, item, and merchant/cat...

Parameters* required
agent_idstring
Optional client-supplied agent label for memory attribution.default:
agent_instance_idstring
Optional stable, non-secret agent instance ID for per-client attribution.default:
amountnumber
Positive transaction amount as a number.
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: private
categorystring
Optional spending category, such as food, transport, or electronics.default:
currencystring
Currency code or label, such as CNY, RMB, JPY, yen, or USD. For ledger search/list tools, leave blank unless the user explicitly requested one currency; labels are normalized to codes.default: CNY
device_idstring
Optional client-supplied device identifier for attribution.default:
device_labelstring
Optional human-readable device label for attribution.default:
itemstring
The purchased item or service, for example 2 watermelons or Nintendo Switch 2.
merchantstring
Optional merchant or store name.default:
notestring
Optional completion note.default:
pathstring
A simple user-facing category or path for this memory, such as preferences, projects/xmemo, or personal/travel.default: finance/ledger/expenses
payment_methodstring
Optional payment method, such as card, cash, Alipay, or WeChat Pay.default:
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
transaction_datestring
Transaction date in YYYY-MM-DD. Leave blank to use today's UTC date.default:
update_stateSave the current working state during long-running work — active task, next action, or blocker — so future turns/sessions can resume. For durable user facts use remember.9 params

Save the current working state during long-running work — active task, next action, or blocker — so future turns/sessions can resume. For durable user facts use remember.

Parameters* required
blocked_reasonstring
Short explanation of why the current work is blocked.default:
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.default:
current_taskstring
Current task or work item to persist for later resume.default:
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
next_actionstring
Next action to persist so future turns can resume the work.default:
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
state_keystring
Working-state key to save, snapshot, or restore, such as active_task.default: active_task
ttl_secondsinteger
Time-to-live in seconds for working state or restart snapshot records.default: 86400
search_memorySearch XMemo memories by natural-language query. Call this when the user asks about saved or past information, AND proactively before answering any question where prior preferences, facts, projects, decisions, or history could change the answer. To delete a memory, use forget.10 params

Search XMemo memories by natural-language query. Call this when the user asks about saved or past information, AND proactively before answering any question where prior preferences, facts, projects, decisions, or history could change the answer. To delete a memory, use forget.

Parameters* required
agent_idstring
Optional client-supplied agent label for memory attribution.default:
agent_instance_idstring
Optional stable, non-secret agent instance ID for per-client attribution.default:
explainboolean
Whether to include retrieval explanation details with search or recall results.default: false
limitinteger
Maximum number of results to return.default: 5
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: %
path_filterstring
Memory path filter; % matches all paths.default: %
prefer_workingboolean
Whether to prioritize working/session-state memories in retrieval.default: false
querystring
Natural-language question or search text.
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
recall_planPlan which memory searches to run before retrieval. Use only for complex tasks; for ordinary answers call recall_context or recall directly.8 params

Plan which memory searches to run before retrieval. Use only for complex tasks; for ordinary answers call recall_context or recall directly.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: %
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
path_filterstring
Memory path filter; % matches all paths.default: %
prefer_workingboolean
Whether to prioritize working/session-state memories in retrieval.default: false
querystring
Natural-language question or search text.
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
recall_contextBuild a context pack from XMemo memories. Call this before answering or planning when the task could benefit from multiple saved memories — preferences, prior conversations, projects, decisions, TODOs, or long-running work.13 params

Build a context pack from XMemo memories. Call this before answering or planning when the task could benefit from multiple saved memories — preferences, prior conversations, projects, decisions, TODOs, or long-running work.

Parameters* required
agent_idstring
Optional client-supplied agent label for memory attribution.default:
agent_instance_idstring
Optional stable, non-secret agent instance ID for per-client attribution.default:
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
limitinteger
Maximum number of results to return.default: 0
max_itemsinteger
Maximum number of memory items to include.default: 8
max_tokensinteger
Approximate maximum response size.default: 1500
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: auto
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
path_filterstring
Memory path filter; % matches all paths.default: %
prefer_workingboolean
Whether to prioritize working/session-state memories in retrieval.default: true
querystring
Natural-language question or search text.
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
list_ledger_transactionsShow XMemo Ledger records. Call this when the user asks about past expenses, purchases, or spending history, or before answering a finance question that depends on recorded transactions. For item searches use query and leave currency blank unless a currency was requested.13 params

Show XMemo Ledger records. Call this when the user asks about past expenses, purchases, or spending history, or before answering a finance question that depends on recorded transactions. For item searches use query and leave currency blank unless a currency was requested.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
categorystring
Optional spending category, such as food, transport, or electronics.default:
currencystring
Currency code or label, such as CNY, RMB, JPY, yen, or USD. For ledger search/list tools, leave blank unless the user explicitly requested one currency; labels are normalized to codes.default:
date_fromstring
Only include ledger transactions on or after this YYYY-MM-DD date.default:
date_tostring
Only include ledger transactions on or before this YYYY-MM-DD date.default:
limitinteger
Maximum number of results to return.default: 20
max_amountvalue
Only include ledger transactions with amount less than or equal to this value.
min_amountvalue
Only include ledger transactions with amount greater than or equal to this value.
offsetinteger
Number of matching records to skip for pagination.default: 0
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
querystring
Natural-language question or search text.default:
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
transaction_typestring
Optional ledger type filter: expense, income, refund, or transfer.default:
get_monthly_ledger_summarySummarize Ledger totals by month and currency. Call this when the user asks for monthly spending, income, refunds, net balance, budget review, or spending trends.6 params

Summarize Ledger totals by month and currency. Call this when the user asks for monthly spending, income, refunds, net balance, budget review, or spending trends.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
currencystring
Currency code or label, such as CNY, RMB, JPY, yen, or USD. For ledger search/list tools, leave blank unless the user explicitly requested one currency; labels are normalized to codes.default:
monthsinteger
Number of recent ledger months to summarize.default: 6
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
transaction_typestring
Optional ledger type filter: expense, income, refund, or transfer.default:
mark_memory_usedRecord that a recalled memory was used in the answer. Call this after a retrieved memory actually influenced your response (not for ignored results).5 params

Record that a recalled memory was used in the answer. Call this after a retrieved memory actually influenced your response (not for ignored results).

Parameters* required
actionstring
Usage action or audit-event action filter, depending on the tool.default: used
contextstring
Short context explaining a memory usage event or pending decision.default:
memory_idstring
Exact XMemo memory reference shown by search or recall.
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
usage_tracking_idstring
Optional tracking ID that links a recalled memory to later usage feedback.default:
record_recall_eval_judgmentEvaluation only — record whether a returned memory was relevant for a query. Do not use in normal conversation.7 params

Evaluation only — record whether a returned memory was relevant for a query. Do not use in normal conversation.

Parameters* required
expected_relevant_totalinteger
Expected number of relevant memories for this recall-evaluation query.default: 0
memory_idstring
Exact XMemo memory reference shown by search or recall.
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
positioninteger
One-based rank position of the memory in the recall results, or 0 if not returned.default: 0
querystring
Natural-language question or search text.
reasonstring
Optional user-facing reason for the deletion.default:
relevantboolean
Whether the memory was relevant to the recall-evaluation query.
run_recall_evalAdmin/evaluation only — aggregate stored recall judgments and optionally tune retrieval. Not for normal conversation.3 params

Admin/evaluation only — aggregate stored recall judgments and optionally tune retrieval. Not for normal conversation.

Parameters* required
auto_tuneboolean
Whether recall evaluation may tune retrieval settings from recorded judgments.default: true
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
record_recall_feedbackRecord recall corrections. Call this when the user says relevant context was missing or wrong, or supplies memories that should have been found.7 params

Record recall corrections. Call this when the user says relevant context was missing or wrong, or supplies memories that should have been found.

Parameters* required
corrected_ids_jsonstring
JSON array of memory IDs that should have been returned for the recall query.default: []
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
missing_ids_jsonstring
JSON array of relevant memory IDs that were missing from recall results.default: []
missing_memories_jsonstring
JSON array of memory snippets or objects that should exist but were missing.default: []
notesstring
Freeform notes explaining recall feedback or corrections.default:
querystring
Natural-language question or search text.
returned_ids_jsonstring
JSON array of memory IDs returned by the recall query.default: []
get_recall_policyInspect XMemo retrieval policy (debug/admin). For actual recall use recall_context/recall/search_memory.

Inspect XMemo retrieval policy (debug/admin). For actual recall use recall_context/recall/search_memory.

No parameter schema in public metadata yet.

get_safety_policyShow the account safety policy. Useful before custom memory-writing that may include sensitive content; normal writes are already sanitized server-side.

Show the account safety policy. Useful before custom memory-writing that may include sensitive content; normal writes are already sanitized server-side.

No parameter schema in public metadata yet.

query_audit_eventsAdvanced audit query by action/time/target. For normal users prefer memory_activity.8 params

Advanced audit query by action/time/target. For normal users prefer memory_activity.

Parameters* required
actionstring
Usage action or audit-event action filter, depending on the tool.default:
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default:
limitinteger
Maximum number of results to return.default: 100
offsetinteger
Number of matching records to skip for pagination.default: 0
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
target_idstring
Optional audit target ID to filter audit events.default:
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
query_consolidation_auditInspect consolidation/lifecycle/reflection audit records (admin). Not for normal recall/save.7 params

Inspect consolidation/lifecycle/reflection audit records (admin). Not for normal recall/save.

Parameters* required
action_typestring
Consolidation, lifecycle, or reflection audit action type to filter by.default:
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default:
limitinteger
Maximum number of results to return.default: 100
offsetinteger
Number of matching records to skip for pagination.default: 0
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
record_eventRecord a significant session event, milestone, decision, or handoff note useful for reconstructing recent work. Not for durable facts/preferences (use remember).6 params

Record a significant session event, milestone, decision, or handoff note useful for reconstructing recent work. Not for durable facts/preferences (use remember).

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.
event_typestring
Timeline event type, such as event, milestone, decision, or handoff.default: event
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
session_idstring
Optional session identifier associated with the event, timeline query, or snapshot.default:
get_timelineShow recent events. Call this when the user asks what happened recently or when resuming work that may depend on recent events.5 params

Show recent events. Call this when the user asks what happened recently or when resuming work that may depend on recent events.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
event_typestring
Timeline event type, such as event, milestone, decision, or handoff.default:
limitinteger
Maximum number of results to return.default: 20
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
session_idstring
Optional session identifier associated with the event, timeline query, or snapshot.default:
create_reminderCreate a TODO item. Alias for create_memory_todo.5 params

Create a TODO item. Alias for create_memory_todo.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.
due_atstring
Optional due time for a memory TODO/action item, preferably ISO 8601.default:
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
list_remindersList TODO items. Alias for list_memory_todos.5 params

List TODO items. Alias for list_memory_todos.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
due_beforestring
Only show memory TODO/action items due before this time.default:
item_statusstring
Optional memory TODO/action-item status filter.default: open
limitinteger
Maximum number of results to return.default: 20
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
complete_reminderComplete a TODO item. Alias for complete_memory_todo.2 params

Complete a TODO item. Alias for complete_memory_todo.

Parameters* required
notestring
Optional completion note.default:
reminder_idstring
The memory TODO/action-item ID to complete.
create_memory_todoCreate a TODO/action item in XMemo with an optional due time. Call this when the user asks to save a task, follow-up, action item, or reminder-style item to revisit later.5 params

Create a TODO/action item in XMemo with an optional due time. Call this when the user asks to save a task, follow-up, action item, or reminder-style item to revisit later.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.
due_atstring
Optional due time for a memory TODO/action item, preferably ISO 8601.default:
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
list_memory_todosList open or completed TODO/action items. Call this when the user asks what tasks, follow-ups, or saved action items are pending or done.5 params

List open or completed TODO/action items. Call this when the user asks what tasks, follow-ups, or saved action items are pending or done.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
due_beforestring
Only show memory TODO/action items due before this time.default:
item_statusstring
Optional memory TODO/action-item status filter.default: open
limitinteger
Maximum number of results to return.default: 20
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
complete_memory_todoMark a TODO/action item completed. Call this when the user says a saved task is done, resolved, or no longer needed; use the exact reference from list_memory_todos.2 params

Mark a TODO/action item completed. Call this when the user says a saved task is done, resolved, or no longer needed; use the exact reference from list_memory_todos.

Parameters* required
notestring
Optional completion note.default:
todo_idstring
The memory TODO/action-item ID to complete.
create_pending_decisionRecord an unresolved decision with its options to revisit later. Use for open choices, not ordinary TODOs.6 params

Record an unresolved decision with its options to revisit later. Use for open choices, not ordinary TODOs.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
contextstring
Short context explaining a memory usage event or pending decision.
due_atstring
Optional due time for a memory TODO/action item, preferably ISO 8601.default:
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
options_jsonstring
JSON array of candidate options for a pending decision.default: []
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
list_pending_decisionsList open/unresolved decisions. Call this when the user asks what decisions are pending, or before planning work that depends on unresolved choices.5 params

List open/unresolved decisions. Call this when the user asks what decisions are pending, or before planning work that depends on unresolved choices.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
due_beforestring
Only show memory TODO/action items due before this time.default:
item_statusstring
Optional memory TODO/action-item status filter.default: open
limitinteger
Maximum number of results to return.default: 20
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
resolve_decisionRecord the chosen option for a previously saved pending decision. Call this when the user states their decision.2 params

Record the chosen option for a previously saved pending decision. Call this when the user states their decision.

Parameters* required
decision_idstring
Exact pending-decision ID returned by list_pending_decisions.
resolutionstring
Chosen resolution text for a pending decision.
create_restart_snapshotSave active state, recent events, TODOs, and pending decisions for restart. Call this before handoff or when context may be lost.9 params

Save active state, recent events, TODOs, and pending decisions for restart. Call this before handoff or when context may be lost.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
decision_limitinteger
Maximum number of pending decisions to include in a restart snapshot.default: 20
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
reminder_limitinteger
Maximum number of TODO/reminder items to include in a restart snapshot.default: 20
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
session_idstring
Optional session identifier associated with the event, timeline query, or snapshot.default:
state_keystring
Working-state key to save, snapshot, or restore, such as active_task.default: active_task
timeline_limitinteger
Maximum number of recent timeline events to include in a restart snapshot.default: 20
ttl_secondsinteger
Time-to-live in seconds for working state or restart snapshot records.default: 604800
restore_restart_snapshotResume previous work from a saved snapshot. Call this when the user asks to resume/restart or after context loss.9 params

Resume previous work from a saved snapshot. Call this when the user asks to resume/restart or after context loss.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: work
record_restore_eventboolean
Whether to write a timeline event after restoring a restart snapshot.default: true
restore_stateboolean
Whether restore_restart_snapshot should restore the saved working-state record.default: true
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
snapshot_idstring
Exact restart snapshot memory ID to restore.default:
source_session_idstring
Session ID whose saved restart snapshot should be restored.default:
state_keystring
Working-state key to save, snapshot, or restore, such as active_task.default:
target_session_idstring
Session ID to associate with restored state and restore events.default:
ttl_secondsinteger
Time-to-live in seconds for working state or restart snapshot records.default: -1
recallRecall the few most relevant saved memories before answering, when prior preferences, known facts, past decisions, or project context may directly affect the response. Use recall_context when many memories are needed.8 params

Recall the few most relevant saved memories before answering, when prior preferences, known facts, past decisions, or project context may directly affect the response. Use recall_context when many memories are needed.

Parameters* required
agent_idstring
Optional client-supplied agent label for memory attribution.default:
agent_instance_idstring
Optional stable, non-secret agent instance ID for per-client attribution.default:
explainboolean
Whether to include retrieval explanation details with search or recall results.default: false
limitinteger
Maximum number of results to return.default: 5
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: %
path_filterstring
Memory path filter; % matches all paths.default: %
prefer_workingboolean
Whether to prioritize working/session-state memories in retrieval.default: false
querystring
Natural-language question or search text.
update_memoryUpdate the content, location, or type of an existing memory. Call this only when the user explicitly asks to correct, revise, move, or reclassify a specific saved memory.18 params

Update the content, location, or type of an existing memory. Call this only when the user explicitly asks to correct, revise, move, or reclassify a specific saved memory.

Parameters* required
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default:
confidencevalue
Confidence score for the saved or updated memory, from 0.0 to 1.0.
contentstring
Text body to save, such as a memory, TODO/action item, event note, or state summary.default:
detect_conflictsboolean
Whether to detect possible conflicts with existing memories during an update.default: true
expires_atstring
Optional ISO 8601 expiration timestamp for the memory.default:
importancevalue
Importance score for the saved or updated memory, from 0.0 to 1.0.
memory_idstring
Exact XMemo memory reference shown by search or recall.
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default:
merge_metadataboolean
Whether to merge new metadata with existing metadata instead of replacing it.default: true
merge_provenanceboolean
Whether to merge new provenance with existing provenance instead of replacing it.default: true
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
pathstring
A simple user-facing category or path for this memory, such as preferences, projects/xmemo, or personal/travel.default:
provenance_jsonstring
Optional JSON object string describing memory source, evidence, or attribution.default: {}
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
semantic_keystring
Optional stable semantic key used to identify or upsert a memory concept.default:
statusstring
Memory status filter or update value, such as active, archived, deleted, or %.default:
supersession_reasonstring
Reason the updated memory supersedes older content.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
forget_memoryDelete a memory (recoverable) by exact reference, when the user explicitly asks to remove or hide it. Use forget or delete_current_memory for permanent deletion.5 params

Delete a memory (recoverable) by exact reference, when the user explicitly asks to remove or hide it. Use forget or delete_current_memory for permanent deletion.

Parameters* required
memory_idstring
Exact XMemo memory reference shown by search or recall.
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
modestring
Deletion mode for forget_memory, such as soft_delete, hard_delete, or redact when supported.default: soft_delete
reasonstring
Optional user-facing reason for the deletion.default:
replacement_contentstring
Replacement text to store when redacting or replacing deleted memory content.default:
forgetPermanently delete one memory by natural target ('latest', 'current', or an exact ID). Call this only when the user explicitly asks to forget/delete a specific memory; search or check activity first if the target is ambiguous.2 params

Permanently delete one memory by natural target ('latest', 'current', or an exact ID). Call this only when the user explicitly asks to forget/delete a specific memory; search or check activity first if the target is ambiguous.

Parameters* required
reasonstring
Optional user-facing reason for the deletion.default:
targetstring
The memory to forget: current or an exact memory ID shown by search.default: current
delete_current_memoryPermanently delete the single active memory (no ID needed). Call this only when exactly one memory exists and the user explicitly asks to delete it; refused if zero or multiple match.1 params

Permanently delete the single active memory (no ID needed). Call this only when exactly one memory exists and the user explicitly asks to delete it; refused if zero or multiple match.

Parameters* required
reasonstring
Optional user-facing reason for the deletion.default:
memory_overviewShow a summary of XMemo memories and recent activity. Call this when the user asks what XMemo remembers without a specific query.

Show a summary of XMemo memories and recent activity. Call this when the user asks what XMemo remembers without a specific query.

No parameter schema in public metadata yet.

memory_statsShow aggregate statistics for XMemo memories — counts by type, source, location, and optional time range. Call this when the user asks for counts, breakdowns, or distributions.8 params

Show aggregate statistics for XMemo memories — counts by type, source, location, and optional time range. Call this when the user asks for counts, breakdowns, or distributions.

Parameters* required
group_bystring
Optional grouping: none, month, agent, location, memory_type, type, source, path, bucket, day, or comma-separated advanced fields.default:
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: %
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
path_filterstring
Memory path filter; % matches all paths.default: %
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
top_ninteger
Maximum number of aggregate groups to return.default: 10
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
memory_activityShow recent memory activity — writes, deletions, TODO changes, ledger changes, and timeline events. Call this when the user asks what changed recently, or before deleting 'latest/recent' memory so the user can confirm the preview.6 params

Show recent memory activity — writes, deletions, TODO changes, ledger changes, and timeline events. Call this when the user asks what changed recently, or before deleting 'latest/recent' memory so the user can confirm the preview.

Parameters* required
activity_typestring
Activity filter: all, writes, deletions, reads, reminders, ledger, or timeline.default: all
include_timelineboolean
Whether to include timeline events in recent memory activity.default: true
limitinteger
Maximum number of results to return.default: 10
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
analyze_memory_textCount a word or phrase across XMemo memories, optionally grouped by month, agent, location, or type. Call this when the user asks how often a word/topic appears.12 params

Count a word or phrase across XMemo memories, optionally grouped by month, agent, location, or type. Call this when the user asks how often a word/topic appears.

Parameters* required
group_bystring
Optional grouping: none, month, agent, location, memory_type, type, source, path, bucket, day, or comma-separated advanced fields.default: none
include_examplesboolean
Whether to include a few short matching memory snippets.default: false
match_modestring
How to match phrase: exact, case_insensitive, or regex_lite.default: exact
max_examplesinteger
Maximum number of short snippets to include.default: 3
max_memoriesinteger
Maximum number of memories to inspect while analyzing text.default: 1000
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: %
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
path_filterstring
Memory path filter; % matches all paths.default: %
phrasestring
Exact word or phrase to count across visible XMemo memories.
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
restore_memoryRestore a previously deleted memory. Call this only when the user explicitly asks to restore or undo a deletion.3 params

Restore a previously deleted memory. Call this only when the user explicitly asks to restore or undo a deletion.

Parameters* required
memory_idstring
Exact XMemo memory reference shown by search or recall.
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
reasonstring
Optional user-facing reason for the deletion.default:
redact_memoryRedact sensitive content from a memory while keeping an audit trail. Call this only when the user explicitly asks to redact.4 params

Redact sensitive content from a memory while keeping an audit trail. Call this only when the user explicitly asks to redact.

Parameters* required
memory_idstring
Exact XMemo memory reference shown by search or recall.
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
reasonstring
Optional user-facing reason for the deletion.default:
replacement_contentstring
Replacement text to store when redacting or replacing deleted memory content.default: [REDACTED]
explain_memoryExplain why a memory exists or matched a query. Call this when the user asks why something was saved or why it was retrieved.4 params

Explain why a memory exists or matched a query. Call this when the user asks why something was saved or why it was retrieved.

Parameters* required
include_embeddingboolean
Whether to include embedding/vector metadata in the returned explanation.default: false
memory_idstring
Exact XMemo memory reference shown by search or recall.
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
querystring
Natural-language question or search text.default:
list_memory_versionsShow version history for a memory. Call this when the user asks for previous content or changes over time.2 params

Show version history for a memory. Call this when the user asks for previous content or changes over time.

Parameters* required
memory_idstring
Exact XMemo memory reference shown by search or recall.
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
list_memory_conflictsList conflicting/inconsistent memories. Call this when the user/admin asks to review unresolved conflicts.3 params

List conflicting/inconsistent memories. Call this when the user/admin asks to review unresolved conflicts.

Parameters* required
limitinteger
Maximum number of results to return.default: 50
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
unresolved_onlyboolean
Whether to show only unresolved memory conflicts.default: true
resolve_memory_conflictResolve a listed memory conflict. Call this only when the user/admin explicitly chooses a resolution strategy.5 params

Resolve a listed memory conflict. Call this only when the user/admin explicitly chooses a resolution strategy.

Parameters* required
conflict_idstring
Exact memory-conflict ID returned by list_memory_conflicts.
merge_contentstring
Merged memory content to apply when resolving a conflict with a merge strategy.default:
metadata_jsonstring
Optional JSON object string with extra metadata for the operation.default: {}
resolution_strategystring
Conflict resolution strategy, such as mark_conflict, keep_existing, replace, or merge.default: mark_conflict
winning_memory_idstring
Memory ID that should win when resolving a conflict.default:
run_lifecycleMaintenance tool. Use only when the user/admin explicitly asks to expire, archive, decay, or dry-run lifecycle processing.8 params

Maintenance tool. Use only when the user/admin explicitly asks to expire, archive, decay, or dry-run lifecycle processing.

Parameters* required
archiveboolean
Whether lifecycle maintenance should archive stale memories.default: true
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
decayboolean
Whether lifecycle maintenance should decay low-value memories.default: true
dry_runboolean
Preview the maintenance action without applying changes.default: false
expireboolean
Whether lifecycle maintenance should expire memories that reached their expiration policy.default: true
limitinteger
Maximum number of results to return.default: 500
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
reflectMaintenance tool. Use only when the user/admin asks to summarize, promote, expire, decay, or archive via reflection. Prefer dry_run unless changes are explicitly requested.11 params

Maintenance tool. Use only when the user/admin asks to summarize, promote, expire, decay, or archive via reflection. Prefer dry_run unless changes are explicitly requested.

Parameters* required
actions_csvstring
Comma-separated maintenance actions to run, such as summarize, promote, expire, decay, or archive.default: summarize,promote,expire,decay,archive
bucketstring
Memory bucket or namespace to read from or write to; use % only for tools that support wildcard reads.default: %
dry_runboolean
Preview the maintenance action without applying changes.default: false
limitinteger
Maximum number of results to return.default: 500
owner_filtervalue
Optional owner/user filter for administrative maintenance tools.
path_filterstring
Memory path filter; % matches all paths.default: %
scopevalue
Optional scope that narrows memory access; leave blank for the token default.
sincevalue
Only include memories or activity on or after this ISO 8601 timestamp.
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
time_window_hoursnumber
Number of recent hours to inspect during reflection maintenance.default: 24
untilvalue
Only include memories or activity on or before this ISO 8601 timestamp.
get_system_statsDetailed memory stats with filters and grouping. For a quick summary use memory_overview or memory_stats.11 params

Detailed memory stats with filters and grouping. For a quick summary use memory_overview or memory_stats.

Parameters* required
group_bystring
Optional grouping: none, month, agent, location, memory_type, type, source, path, bucket, day, or comma-separated advanced fields.default:
memory_typestring
Memory type/category filter or value, such as episodic, identity, procedural, semantic, working, auto, or %.default: %
output_jsonboolean
Return a machine-readable JSON response instead of a human-readable summary.default: false
path_filterstring
Memory path filter; % matches all paths.default: %
scopestring
Optional scope that narrows memory access; leave blank for the token default.default:
sincestring
Only include memories or activity on or after this ISO 8601 timestamp.default:
sourcestring
Optional source filter for system statistics.default:
statusstring
Memory status filter or update value, such as active, archived, deleted, or %.default: %
team_idstring
Optional team/workspace identifier for team-scoped memory access.default:
top_ninteger
Maximum number of aggregate groups to return.default: 20
untilstring
Only include memories or activity on or before this ISO 8601 timestamp.default:
XMemo logo

XMemo CLI

One private memory layer for every AI agent.

Install, authenticate, diagnose, and connect XMemo across editors, CLIs, and autonomous agents from one production-ready command line.

CI npm version npm downloads Node.js version MIT license GitHub stars

MCP compatible XMemo Cloud Privacy first MCP Badge Glama quality score

Quick start · Integrations · Connection modes · Commands · Security


@xmemo/client is the official control plane for connecting AI tools to XMemo. It makes setup repeatable, keeps credentials out of project files, and gives every supported client a consistent path to durable, user-owned memory.

The package is deliberately small: the CLI runtime, safe client configuration, behavior profiles, XMemo skills, and marketplace metadata. Server code, databases, deployment files, logs, and internal operations remain outside the npm distribution.

Architecture

XMemo CLI architecture

Package@xmemo/client
Primary commandxmemo
Local MCP commandxmemo-mcp
Hosted MCPhttps://xmemo.dev/mcp
RuntimeNode.js 20 or later
LicenseMIT

Why XMemo CLI

  • One control plane — login, diagnostics, configuration, profiles, updates, and smoke checks share one predictable interface.
  • Private by design — generated project configuration references a credential; it never embeds the credential value.
  • Native where it matters — OpenClaw and Hermes use dedicated memory integrations instead of duplicating the same capability through MCP.
  • Portable everywhere else — hosted Streamable HTTP MCP and local stdio cover modern editors, terminals, and agent runtimes.
  • Safe automation — supported setup and removal paths offer preview, dry-run, or explicit confirmation before making changes.
  • Small supply-chain surface — the npm package is governed by an explicit file allowlist and release provenance.

Quick start

npm install -g @xmemo/client
xmemo login
xmemo doctor
xmemo setup codex
xmemo status

Replace codex with your client. Preview a configuration before writing it:

xmemo setup cursor --dry-run

XMemo CLI setup workflow

[!TIP] Start with xmemo login, xmemo doctor, and xmemo setup <client>. Hand-edit MCP configuration only when a client has no verified setup path.

Supported integrations

ClientRecommended commandConnection
Codexxmemo setup codexHosted MCP + behavior profile
Cursorxmemo setup cursorHosted MCP + behavior profile
Copilot CLIxmemo setup copilotLocal authenticated proxy
Gemini CLIxmemo setup geminiHosted MCP + OAuth
Antigravityxmemo setup antigravityHosted MCP + OAuth
OpenClawxmemo setup openclawNative memory plugin + Skill
Hermesxmemo setup hermesNative memory provider
Kiroxmemo setup kiroHosted MCP
Grokxmemo setup grokHosted MCP
Other MCP clientsxmemo mcp config --client genericGenerated template

The client registry also covers Windsurf, Cline, Continue, Claude Desktop, Claude Code, Kimi Code, Zed, JetBrains, OpenCode, Qwen, Trae, and compatible MCP hosts. Run xmemo mcp list for the current machine-readable catalog.

Connection modes

Hosted MCP

The recommended universal path is the XMemo Streamable HTTP endpoint:

https://xmemo.dev/mcp

OAuth-capable clients complete authentication in the browser. Other clients reference XMEMO_KEY without copying its value into repository files.

Generic configuration shape:

{
  "mcpServers": {
    "XMemo": {
      "type": "streamable-http",
      "url": "https://xmemo.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${XMEMO_KEY}"
      }
    }
  }
}

Client configuration keys differ; prefer xmemo setup <client> over copying this generic example directly.

Local stdio MCP

xmemo-mcp is the dedicated stdio entry point for marketplaces and clients that launch a local process. Safe discovery exposes 20 tools, three prompts, and two documentation resources without a token. Tool execution still requires authentication.

After a global installation:

xmemo-mcp

Install-free MCP configuration:

{
  "mcpServers": {
    "XMemo": {
      "command": "npx",
      "args": [
        "-y",
        "--package",
        "@xmemo/client@latest",
        "xmemo-mcp"
      ]
    }
  }
}

xmemo mcp serve is equivalent when the CLI is already installed.

Native integrations

OpenClaw and Hermes have dedicated memory providers. Their default setup avoids installing a second, duplicate XMemo tool surface.

# Native OpenClaw plugin + XMemo Skill
xmemo setup openclaw

# Native Hermes memory provider
xmemo setup hermes

Add hosted MCP only when an explicit fallback is desired:

xmemo setup openclaw --with-mcp
xmemo setup hermes --with-mcp

Use --mcp-only to skip the native integration and install only the hosted MCP fallback.

Authentication

Browser login

Recommended for personal accounts:

xmemo login
xmemo auth status

The CLI uses the hosted device-login flow, waits for browser approval, and asks once before storing the issued credential unencrypted in the current user's XMemo config directory. The exact path is shown before approval, file permissions are restricted where the operating system supports it, and the credential value is never printed. Prefer XMEMO_KEY or a managed secret store on shared systems.

For non-interactive automation, record the same decision explicitly:

xmemo login --allow-plaintext

Existing token

Pipe an existing token through stdin so it does not appear in command history:

printf '%s\n' 'your-token' | xmemo token add --from-stdin --allow-plaintext
xmemo token status --verify

PowerShell:

$xmemoToken = Read-Host "XMemo token"
$xmemoToken | xmemo token add --from-stdin --allow-plaintext
Remove-Variable xmemoToken

For CI and managed workstations, expose XMEMO_KEY through the platform's secret manager. Do not commit it to .env, MCP configuration, logs, issue reports, or chat transcripts.

Command reference

Lifecycle and diagnostics
xmemo --version
xmemo update
xmemo update --dry-run
xmemo doctor
xmemo discovery show
xmemo status
xmemo privacy
Authentication
xmemo login
xmemo auth status
xmemo auth-status --verify
xmemo token status --verify
xmemo token add --from-stdin --allow-plaintext
xmemo env example --shell bash
Client setup
xmemo setup <client>
xmemo setup <client> --dry-run
xmemo setup --all
xmemo setup openclaw [--with-mcp|--mcp-only]
xmemo setup hermes [--with-mcp|--mcp-only]
MCP and behavior profiles
xmemo mcp serve
xmemo mcp list
xmemo mcp config --client generic
xmemo mcp add <client> --write
xmemo mcp proxy
xmemo profile install <client>
xmemo profile status <client>
xmemo profile uninstall <client>
xmemo smoke --client codex
Safe removal
xmemo uninstall <client> --dry-run
xmemo uninstall <client> --yes
xmemo uninstall --all --dry-run
xmemo uninstall --all --yes --profiles

Only XMemo-owned entries and marker-scoped behavior profiles are removed. Unrelated MCP servers, credentials, and device identity remain intact.

Run xmemo help or xmemo <command> --help for complete, version-matched options.

Client notes

Codex and Cursor
xmemo setup codex
xmemo smoke --client codex

xmemo setup cursor

Both setup paths write a user-scoped MCP entry and can install a marker-scoped memory behavior profile. Use --no-profile to configure MCP only. Cursor's public marketplace plugin remains OAuth-first and contains no bearer-token configuration.

Gemini CLI and Antigravity
xmemo setup gemini
xmemo setup antigravity

These clients use hosted MCP OAuth. Their generated configuration carries no token value; restart the client and complete the browser login on first use.

OpenClaw
xmemo login
xmemo setup openclaw
openclaw xmemo status

The setup command installs or updates @xmemo/openclaw-memory, installs the XMemo Skill, reuses the shared XMemo credential, and checks plugin status.

Hermes
xmemo login
xmemo setup hermes

The setup command installs or updates hermes-xmemo, configures the native provider, and synchronizes the user-scoped XMemo credential with Hermes.

Copilot CLI
xmemo login
xmemo setup copilot
xmemo mcp proxy

Copilot CLI receives a local proxy entry. The proxy reads the credential from user-scoped storage, adds identity metadata, and forwards requests to hosted MCP without writing secrets into Copilot configuration.

Security by default

ControlDefault behavior
TelemetryNo CLI analytics or usage telemetry
Credential outputToken values are never printed
Project filesGenerated configuration references secrets; it does not embed them
Discoverydoctor, discovery show, and public capability discovery send no token
IdentityOne stable, non-secret agent-instance ID is stored outside git
WritesSetup supports preview/dry-run; broad removal requires confirmation
Local credential storageInteractive login asks first; non-interactive writes require --allow-plaintext; stored tokens are unencrypted
Package contentsAn npm files allowlist excludes tests, operations, logs, and server code

Credential precedence and compatibility aliases are documented by:

xmemo env example --shell bash
xmemo privacy

For private or self-hosted deployments, set XMEMO_URL or pass --url <service-url>. MEMORY_OS_URL remains a compatibility alias.

Package boundary

Published to npm:

bin/
docs/assets/
src/
skills/
plugins/kiro/
plugins/xmemo/
README.md
LICENSE

Not published:

.github/
docs/analysis/
docs/architecture/
test/
coverage/
server code
database migrations
deployment files
logs and local state

Development

npm install
npm run release:check
npm run lint
npm test
npm run pack:dry-run

Before proposing a release, run the complete package gate:

npm run prepublishOnly

The local stdio server can be inspected directly:

node bin/mcp-stdio.js

Release model

Normal releases are produced by GitHub Actions from the exact tagged commit, not from a mutable branch checkout or a developer workstation:

develop → CLI version sync → test → cli-v tag → GitHub Actions → npm publish --provenance

The CLI package and hosted MCP service intentionally have separate version streams:

  • CLI/npm version: package.json, package-lock.json, and the npm package entry in server.json.
  • Hosted MCP/Registry version: the top-level server.json.version and lhm.plugin.json. This version follows the deployed XMemo service.

node scripts/check-release-version.mjs verifies both contracts. A cli-vX.Y.Z tag must equal the CLI/npm version and publishes only npm. The MCP Registry is published separately with the Publish MCP Registry metadata workflow using mcp-vX.Y.Z, which must equal the hosted MCP/Registry version. The separate npm publish workflow is manual recovery only, so creating a GitHub Release cannot publish twice.

Documentation and support

Canonical service documentation lives at xmemo.dev/docs. This repository documents the client; the pages below document the hosted service it connects to.

Quickstartxmemo.dev/docs/quickstart
MCP overview and per-client setupxmemo.dev/docs/mcp/overview
Tool reference (remember, recall, search, …)xmemo.dev/docs/tools/remember
REST APIxmemo.dev/docs/api/authentication
Troubleshootingxmemo.dev/docs/troubleshooting
Machine-readable indexxmemo.dev/llms.txt
  • XMemo
  • MCP server reference
  • Adding a new client
  • Issues
  • Releases

License

MIT © 2025–2026 Yonro

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Categories
AI & LLM ToolsCommunication & Messaging
Registryactive
TransportHTTP
AuthRequired
UpdatedMay 30, 2026
View on GitHub

Related AI & LLM Tools MCP Servers

View all →
lykhoyda avatar
Ask Codex

io.github.lykhoyda/ask-codex

Bridge Claude with OpenAI Codex CLI for AI-to-AI collaboration, code review, and second opinions
10
neonia-io avatar
Neonia: The Cloud Backend for AI Agents

io.neonia/cloud-backend

Multiple MCP tools, persistent graph memory, token-saving data pointers, and more.
5
clauxel avatar
Agentmailrooms Mcp

clauxel/agent-mail-rooms-mcp

A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
clauxel avatar
Geminiupgradeqa Mcp

clauxel/gemini-upgrade-qa-mcp

Remote MCP for Gemini upgrade evals, prompt regressions, output diffs, and eval receipts.
clauxel avatar
Byterovermemory Mcp

com.clauxel.byterovermemory/byterovermemory-mcp

A paid remote MCP for OpenAI Codex memory MCP, built to return verdicts, receipts, usage logs, and a
appdevexpert avatar
PromptOT

com.promptot/mcp

Manage, version, and publish LLM prompts with blocks, variables, and evaluations.