memory-os-cliBLOCK
XMemo: user-owned Memory OS for AI agents. Public client (@xmemo/client), MCP distribution, Skills and plugins.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://xmemo.dev)
[](https://github.com/yonro/memory-os-cli/actions/workflows/ci.yml) [](https://www.npmjs.com/package/@xmemo/client) [](https://clawhub.ai/skill/xmemo) [](https://www.npmjs.com/package/@xmemo/client) [](./LICENSE) [](https://modelcontextprotocol.io/) [](https://lobehub.com/mcp/yonro-memory-os-cli) [](https://glama.ai/mcp/servers/yonro/memory-os-cli)
XMemo is a user-owned Memory OS for AI agents: persistent memory, project context and session continuity with agent identity, provenance and governed access, shared across AI clients through MCP, the CLI and a public REST API surface.
English · 简体中文 | Documentation · Hosted MCP
Quick start · What this repo contains · Beyond MCP · Integrations · Connection modes · Plugins · Commands · Versioning · Security
What this repository contains
- **[
@xmemo/client](https://www.npmjs.c
fda340df171cOBSERVED · 2026-10-10Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add client --env XMEMO_KEY=${XMEMO_KEY} -- npx -y @xmemo/[email protected] mcp serveExposed tools (6)
5 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
content | read | The text to remember. |
path | read | Category path, e.g. preferences, projects/myapp. |
project-context | read | Build a context pack from XMemo for the current project or task. |
query | read | What to search for in memory. |
recall | read | Recall relevant memories from XMemo before answering a question. |
remember | write | Save a memory to XMemo for future recall across sessions. |
Trust audit
BLOCKgrade F · trust 48/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (11 observation(s))
- Network
- declared (4 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- pinned
- Secrets in source
- found
Findings (25)
'OpenClaw egress proxy is required when using OpenClaw secrets. Enable secrets.egressProxy.enabled and ensure execution runs in Gateway-hosted exec (HTTPS_PROXY and NODE_USE_ENV_PROXY=1 must be set).'
const SENSITIVE_NAMES = /(^\.env(?:\..*)?$|^\.npmrc$|^\.pypirc$|^\.netrc$|^id_(?:rsa|dsa|ecdsa|ed25519)$|secret|token|credential|private.?key|\.(?:pem|p12|pfx|key)$)/i;
- Prefer `XMEMO_KEY` or a managed secret store. Use `--allow-plaintext` only after accepting that processes running as the same operating-system user may read the local credential file.
console.log(`✅ Authorization successful. Token stored in the explicitly approved user credential file: ${credentialsPath}\nToken value was not printed. Project files were not modified.`);await fs.writeFile(credFile, JSON.stringify({ token: 'test_token_1234567890', version: 1 }));const token = 'mem_os_test_token_1234567890';
const token = 'mem_os_test_token_1234567890';
const token = 'mem_os_test_token_1234567890';
const token = 'mem_os_test_token_1234567890';
queries are sent to xmemo.dev, so keep secrets and sensitive identifiers out of query text
xmemo-skill-1.1.35.fixture
{ pattern: /\beval\s*\(/, name: 'eval()', codeOnly: false },patternName: 'eval()',
content: 'export const fn = new Function("a", "return a");\n',import { writeLine } from '../../core/io.js';import { fileExists } from '../../core/runtime.js';} from '../../clients/registry.js';
import { fileExists } from '../../core/runtime.js';} from '../../clients/registry.js';
node scripts/xmemo-skill-smoke-test.mjs --execute-writes --base-url http://127.0.0.1:8080
const baseUrl = `http://127.0.0.1:${port}`;assert.equal(template.snippet.mcpServers['XMemo'].url, 'http://127.0.0.1:8765/mcp');
assert.equal(plan.selectedClient.template.mcpServers['XMemo'].url, 'http://127.0.0.1:8765/mcp');
assert.equal(config.mcpServers['XMemo'].url, 'http://127.0.0.1:8765/mcp');
- **Privacy by Default**: The CLI and xmemo-mcp stdio proxy send no telemetry, and generated configs reference XMEMO_KEY instead of embedding plaintext tokens ([data boundary details](https://docs.xme
Gates applied: no_behavioural_pass.
fda340df171cfull audit observations/trust-audit/mcp-server/yonro__memory-os-cli.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | fda340df171c | BLOCK | F | 48 | first audit |
Questions
What is the memory-os-cli MCP server?
XMemo: user-owned Memory OS for AI agents. Public client (@xmemo/client), MCP distribution, Skills and plugins.
What tools does memory-os-cli expose?
6 in total: 5 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is memory-os-cli safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (48/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does memory-os-cli need?
It reads JARVIS_AUTHD_SOCK and XMEMO_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does memory-os-cli run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @xmemo/skill-installer at 0.4.190.
How current is this page?
The grade is for one exact copy of the source (fda340df171c), read on 2026-10-10. The repository is watched and re-audited when it changes.