sidermem-cli
v1.3.3
Published
SiderMem CLI Client - Manage your AI context from the terminal
Downloads
1,019
Maintainers
Readme
SiderMem CLI
SiderMem CLI is a command-line interface for managing your AI context and personal memories. Sync, search, create, and access your cloud-stored memories directly from your terminal.
What's New in 1.3.0
- Smarter
capture-agy/capture-gemini: Supports capturing both global~/.gemini/GEMINI.md(namespace:agyglobal) and project-specific interactive skills from~/.gemini/tmp/<projectName>/memory/skills/(namespace: absolute path format e.g.,/Users/zhoufan/Public/workspace/sidermem). - Aligned Absolute Path Namespaces: Namespaces now align to the full local absolute project path (e.g.,
/Users/foo/workspace/myapp) instead of encoded folder names, eliminating collisions and allowing different AI agents (e.g., Claude Code and Antigravity) to seamlessly share the same cloud memory partition. - Smart
SKILL.mdTitle Mapping: Fixed a critical cloud overwrite bug where multi-file project skills namedSKILL.mdwould collide in the same namespace.SKILL.mdfiles are now intelligently remapped to use their outermost parent skill directory name as the memory title. - Replaced
sidermem capturewith three dedicated commands:sidermem capture-claude,sidermem capture-codex, andsidermem capture-gemini(aliascapture-agy). capture-claudescans~/.claude/projects/and presents an interactive project list (arrow-key selection) — no need to know the project's encoded name. It automatically excludes the internalMEMORY.mdindex file.capture-codexrecursively captures all global Codex memories from~/.codex/memoriesunder thecodexglobalnamespace.- All capture commands show a per-file plan (insert / update / noop) and require confirmation before writing. Use
-y, --yesto skip.
Quick Start
Installation
npm install -g sidermem-cliAuthentication
sidermem loginThe CLI will prompt for your email address, send a 6-digit one-time code to that inbox, then ask you to paste it in. Your session is stored locally and auto-refreshed — you only need to log in once.
? Enter your email address: [email protected]
✔ OTP sent to [email protected]
? Enter the 6-digit code from your email: 482019
✔ Successfully logged in!To sign out and clear the local session:
sidermem logoutCommands
sidermem status
Shows your plan tier, memory quota, and how many memories you have used.
SIDERMEM ACCOUNT STATUS
CLI Version: 1.2.0
Email: [email protected]
Plan Tier: FREE
Usage: 4 / 10 memoriessidermem list
Lists your most recent memories, newest first.
sidermem list # last 20 memories
sidermem list -l 50 # last 50 memories
sidermem list -s "meeting" # search by keyword (matches title and content)
sidermem list --json # machine-readable JSON arrayOptions:
| Flag | Description |
| :--- | :--- |
| -l, --limit <n> | Max number of results (default: 20) |
| -s, --search <term> | Case-insensitive search across title and full content |
| --json | Output as a JSON array: [{uuid, title, created_at}] |
sidermem create
Creates a new memory. There are three mutually exclusive modes:
Mode 1 — Pipe content via stdin (most common for scripting)
This is the primary way to create memories non-interactively. You must supply --title when piping; without it the CLI will error.
# Pipe the output of any command
cat notes.txt | sidermem create --title "Project Notes"
# Pipe a multi-line heredoc directly in the terminal
sidermem create --title "Quick idea" << 'EOF'
Some longer text here.
Can span multiple lines.
EOF
# Capture command output
git log --oneline -20 | sidermem create --title "Recent commits"
# Pipe from clipboard (macOS)
pbpaste | sidermem create --title "Clipboard snapshot"Note: If you run
sidermem create --title "..."with nothing piped and no other flags, the CLI will hang waiting for input on stdin. PressCtrl+D(EOF) to submit what you typed, orCtrl+Cto abort.
Mode 2 — Read a local file
The memory title defaults to the filename. You cannot combine --file with --title or --content.
sidermem create --file ./report.txt
sidermem create --file ~/docs/architecture.mdMode 3 — Inline content via flags
Pass both --title and --content as flags in one shot. Best for short, single-line content.
sidermem create --title "API endpoint" --content "POST /v1/memories — requires Bearer token"Options:
| Flag | Description |
| :--- | :--- |
| -f, --file <path> | Read content from a local file (title = filename) |
| -t, --title <string> | Memory title (required for stdin and inline modes) |
| -c, --content <string> | Inline content string |
| --json | Output result as JSON: {uuid, title} |
Limits: Content is capped at 128 KB. If you exceed your plan's memory quota, the upload is rejected with a quota_exceeded error.
sidermem show <id>
Prints the full content of a memory. Accepts a full UUID or a partial prefix (see Partial UUID Matching below).
sidermem show 5f2a
sidermem show 5f2a3b1c-dead-beef-... # full UUID also works
sidermem show 5f2a --json # output {uuid, title, content}sidermem info <id>
Prints metadata for a memory, including its AI-generated summary if one has been computed.
sidermem info 5f2a
sidermem info 5f2a --json # {uuid, title, source_type, characters, updated_at, summary} MEMORY INFO
Title: Project Notes
UUID: 5f2a3b1c-...
Type: manual
Characters: 1,402
Last Updated: 5/19/2026, 10:30:00 AM
AI Summary:
A set of notes from the Q2 planning session covering...sidermem update <id>
Updates the title, content, or both. Accepts partial UUIDs.
sidermem update 5f2a --title "New title"
sidermem update 5f2a --content "Replacement content"
sidermem update 5f2a --title "Renamed" --content "Also new body"At least one of --title or --content must be provided.
sidermem delete <id>
Soft-deletes a memory (it is flagged inactive and hidden from all queries, but not permanently erased). Prompts for confirmation by default.
sidermem delete 5f2a # interactive confirmation prompt
sidermem delete 5f2a --yes # skip confirmation (useful in scripts)sidermem capture-claude
Captures Claude Code memory files into SiderMem. Scans ~/.claude/projects for all projects that have local memory files, then presents an interactive list for you to pick one.
sidermem capture-claude -t memory # select project interactively
sidermem capture-claude -t memory --dry-run # preview without writing
sidermem capture-claude -t memory --yes # skip confirmation prompt
sidermem capture-claude -t memory --json # output results as JSONEach project's namespace is its full absolute path (e.g., /Users/foo/workspace/myapp), which is globally unique, highly readable, and perfectly aligned across all memory capture sources.
The command checks existing cloud memories first, then prints a per-file plan — new memory, update existing, or noop/unchanged — before asking for confirmation.
Options:
| Flag | Description |
| :--- | :--- |
| -t, --type <type> | Capture type: currently only memory |
| --dry-run | Preview inserts/updates without writing |
| --json | Output capture results as JSON |
| -y, --yes | Skip confirmation prompt |
sidermem capture-codex
Captures all global Codex memory files from ~/.codex/memories into SiderMem under the codexglobal namespace. Scans recursively and shows a plan before writing.
sidermem capture-codex -t memory # capture with confirmation
sidermem capture-codex -t memory --dry-run # preview without writing
sidermem capture-codex -t memory --yes # skip confirmation prompt
sidermem capture-codex -t memory --json # output results as JSONOptions:
| Flag | Description |
| :--- | :--- |
| -t, --type <type> | Capture type: currently only memory |
| --dry-run | Preview inserts/updates without writing |
| --json | Output capture results as JSON |
| -y, --yes | Skip confirmation prompt |
sidermem capture-gemini (Alias: capture-agy)
Interactive command to capture your global Gemini/Antigravity Added Memories from ~/.gemini/GEMINI.md (namespace: agyglobal) or project-specific skills from ~/.gemini/tmp/<projectName>/memory/skills/ (namespace: absolute path format e.g., /Users/zhoufan/Public/workspace/sidermem). It displays an interactive select prompt listing the global target and all discovered projects with their respective memory file counts.
sidermem capture-gemini -t memory # interactive select & capture with confirmation
sidermem capture-gemini -t memory --dry-run # preview changes without writing
sidermem capture-gemini -t memory --yes # skip final confirmation prompt
sidermem capture-gemini -t memory --json # output plan as JSON
# You can also use the short alias capture-agy
sidermem capture-agy -t memoryOptions:
| Flag | Description |
| :--- | :--- |
| -t, --type <type> | Capture type: currently only memory |
| --dry-run | Preview inserts/updates without writing |
| --json | Output capture results as JSON |
| -y, --yes | Skip confirmation prompt |
Partial UUID Matching
Every command that takes a <uuid> argument also accepts a prefix of the UUID — as few as 4 characters is usually enough to be unambiguous.
# Full UUID
sidermem show 5f2a3b1c-1234-5678-abcd-ef0123456789
# Equivalent — just the first 4 characters
sidermem show 5f2aIf your prefix matches more than one memory, the CLI prints all matches and asks you to be more specific:
✖ Ambiguous ID "5f": 2 matches found.
Please be more specific. Matches:
- 5f2a3b1c-... (Project Notes)
- 5fe901d2-... (Old draft)JSON Output
Every read command supports --json for scripting and piping into other tools:
# List all memories and extract UUIDs with jq
sidermem list --json | jq '.[].uuid'
# Get just the content of a memory
sidermem show 5f2a --json | jq -r '.content'
# Create and capture the new UUID
NEW_ID=$(sidermem create --title "Note" --content "..." --json | jq -r '.uuid')
echo "Created: $NEW_ID"Command Reference
| Command | Description |
| :--- | :--- |
| sidermem login | Authenticate via email OTP |
| sidermem logout | Clear local session |
| sidermem status | Show plan tier and memory usage |
| sidermem list | List memories (-l limit, -s search, --json) |
| sidermem show <id> | Print full content (partial UUID, --json) |
| sidermem info <id> | Show metadata and AI summary (partial UUID, --json) |
| sidermem create | Create from --file, --content, or stdin + --title |
| sidermem update <id> | Update --title and/or --content (partial UUID) |
| sidermem delete <id> | Soft delete, with confirmation (--yes to skip) |
| sidermem capture-claude | Capture Claude Code memory files (excludes MEMORY.md index) |
| sidermem capture-codex | Capture global Codex memory files recursively into codexglobal |
| sidermem capture-gemini | Capture global Gemini/Antigravity Added Memories into geminiglobal |
