MindMemOS CLI Guide

August 18, 2026 · View on GitHub

English   │   简体中文

1. Overview

mindmemos is the command-line tool shipped with the MindMemOS Python SDK (mindmemos_sdk). It lets you operate the memory service directly from the terminal: write and search memories, manage SDK-registered Skills, and inspect local configuration and connectivity.

It is a thin wrapper over the SDK: every command reads the local config file (~/.mindmemos/settings.json) and calls the mindmemos service over HTTP, so you neither hand-craft requests nor repeat the service address on the command line.

2. Installation

pip install mindmemos-sdk

Verify the command is available:

mindmemos --help

The command is exposed as a global mindmemos executable via project.scripts.

3. Quick Start

3.1 Configure authentication

Before first use, run mindmemos auth to configure the service address, API key, and default user:

mindmemos auth

You will be prompted for three settings:

SettingLocal self-hosted serviceOfficial cloud service
Base URLhttp://127.0.0.1:8000https://mindmemos.cn
API keyAn enabled key from config/mindmemos/api_keys.yamlA key issued via the website
User idA stable identifier, e.g. u_123A stable identifier, e.g. u_123

Or pass them as flags to skip the prompts:

mindmemos auth --base-url http://127.0.0.1:8000 --api-key dev-api-key-001 --user-id u_123

The configuration is saved to ~/.mindmemos/settings.json. The local service auto-determines project_id from the API key, so you do not need to specify it.

3.2 Inspect configuration and connectivity

# Show current configuration (API key is masked by default)
mindmemos config show

# Show the full API key
mindmemos config show --show-secret

# Verify the config is valid and the service is reachable
mindmemos doctor

3.3 Add a memory

mindmemos memory add --content "I like iced Americanos."

3.4 Search memories

mindmemos memory search "What kind of coffee does the user like?" --top-k 5

See the "Memory commands" section below for more parameters. The CLI only makes the call and displays results; extraction, scoring, and storage all happen on the server.

4. Command Overview

mindmemos
├── auth                  Configure API key, user, and service address interactively
├── config                Show / reset local configuration
│   ├── show
│   └── reset
├── memory                Memory operations
│   ├── add               Add a dialogue message as memory
│   ├── search            Search memories
│   ├── get               List / filter memories in the current project
│   ├── update            Update a memory's content
│   ├── delete            Delete a memory
│   ├── feedback          Submit explicit / implicit feedback
│   └── dreaming          Trigger the dreaming pipeline
├── skill                 Manage SDK-registered Skills
│   ├── register          Register and upload a local Skill
│   ├── list              List registered Skills
│   ├── show              Show a single Skill
│   ├── evolve            Trigger cloud Skill evolution
│   ├── push              Upload local changes as a new version
│   ├── pull              Pull version metadata (without changing files)
│   ├── update            Update one or all Skills
│   ├── rollback          Roll back to a specific version
│   ├── history           Show version history
│   ├── diff              Show version differences
│   └── unregister        Remove a Skill from management
└── doctor                Check SDK configuration and connectivity

Every command supports --help for full parameter details:

mindmemos memory add --help

5. Memory Commands (mindmemos memory)

Memory commands use the credentials configured by mindmemos auth — no need to repeat them.

5.1 Add memory add

The most common form passes a single message:

mindmemos memory add --content "I like iced Americanos."

Specify a role (default user):

mindmemos memory add --content "Remember this preference" --role system

Multi-turn messages can be passed as JSON, either inline or from a file (when provided, --content / --role are ignored):

# Inline JSON
mindmemos memory add --messages-json \
  '[{"role":"user","content":"I like iced Americanos."},{"role":"assistant","content":"Got it."}]'

# From a file
mindmemos memory add --messages-json-file ./messages.json

Async mode (returns a request_id immediately, without waiting for extraction):

mindmemos memory add --content "I like iced Americanos." --async

Other options:

OptionDescription
--user-idOverride the configured default user
--app-id / --agent-id / --session-idContext identifiers for scoping / filtering
--metadata-jsonBusiness metadata (JSON object)
--skill-context-jsonSkill context array, overriding SDK auto-detection
--jsonPrint the full result as machine-readable JSON

Example output:

Added 1 memory item(s):
- [did] m_8f3a: I like iced Americanos.
mindmemos memory search "What kind of coffee does the user like?" --top-k 5

Common options:

OptionDescription
--top-kNumber of results, default 10
--search-strategySearch strategy, fast (default) or agentic
--rerankEnable reranking
--score-thresholdRerank relevance threshold (0-1); only meaningful with --rerank
--filterFilter DSL (JSON object string)
--user-id etc.Override request context
--jsonPrint the full result as JSON

5.3 List and filter get

List memories in the current project, optionally filtered:

# List the 20 most recent
mindmemos memory get --top-k 20

# Filter with a filter DSL
mindmemos memory get --filter '{"field":"value"}'

5.4 Update and delete

# Update a memory's content
mindmemos memory update <memory_id> --content "new content"

# Delete a memory (-y skips the confirmation)
mindmemos memory delete <memory_id> --yes

5.5 Feedback feedback

By default this runs implicit feedback, letting the server analyze recent adds; pass --text for explicit feedback:

# Implicit feedback
mindmemos memory feedback

# Explicit feedback, which also requires the messages that produced it
mindmemos memory feedback --text "This memory is inaccurate" \
  --messages-json '[{"role":"user","content":"..."}]'

5.6 Dreaming dreaming

Trigger the dreaming pipeline, either synchronously or asynchronously:

# Enqueue asynchronously (default)
mindmemos memory dreaming --async

# Wait for completion
mindmemos memory dreaming --sync

6. Skill Commands (mindmemos skill)

mindmemos skill manages local Skills that are registered with the SDK and can evolve in the cloud.

Register a local Skill (path may be a directory or a SKILL.md file):

mindmemos skill register ./my-skill
# Give it an alias for later commands
mindmemos skill register ./my-skill --alias my-skill

Common operations:

# List / show registered Skills
mindmemos skill list
mindmemos skill show <skill-id-or-alias>

# Trigger cloud evolution (sync by default; --async enqueues)
mindmemos skill evolve <skill-id-or-alias> --sync

# Push local changes as a new version; pull version metadata
mindmemos skill push <skill-id-or-alias>
mindmemos skill pull <skill-id-or-alias>

# Update one or all Skills (--all updates everything, -y skips confirmation)
mindmemos skill update <skill-id-or-alias> --yes
mindmemos skill update --all --yes

# Unregister (--delete-files also removes the local directory)
mindmemos skill unregister <skill-id-or-alias> --delete-files --yes

Version management:

# Show version history
mindmemos skill history <skill-id-or-alias>

# Roll back to a specific version
mindmemos skill rollback <skill-id-or-alias> --to <version-id> --yes

# Diff between two versions
mindmemos skill diff <skill-id-or-alias> --from <version-id> --to <version-id>

Before applying changes that may touch local files (update / rollback), the command prints a plan and asks for confirmation.

7. Configuration (mindmemos config)

# Show current configuration
mindmemos config show
mindmemos config show --show-secret   # Show the full API key

# Reset and delete the local configuration
mindmemos config reset
mindmemos config reset --yes          # Skip the confirmation

The config file lives at ~/.mindmemos/settings.json; set the MINDMEMOS_CONFIG_DIR environment variable to use a different config directory.

The API key is sensitive and is masked in config show by default (use --show-secret to reveal it).

8. Troubleshooting

SymptomPossible cause / fix
No SDK config at … Run mindmemos auth first.Not configured yet; run mindmemos auth
No api_key configuredAPI key missing; re-run mindmemos auth
transport: not ready …doctor found the service unreachable. Confirm the service is up and base_url is correct: http://127.0.0.1:8000 for local, https://mindmemos.cn for cloud
Authentication error from the serviceThe API key is invalid or disabled; check the cloud key or an enabled key in config/mindmemos/api_keys.yaml
ENOENT in a plugin environmentA GUI-launched process does not inherit the terminal PATH; configure mindmemos as an absolute path or wrap it with uv run mindmemos. See OpenClaw plugin integration

Run mindmemos doctor anytime as a one-shot config / connectivity check.