npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sidermem-cli

v1.3.3

Published

SiderMem CLI Client - Manage your AI context from the terminal

Downloads

1,019

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.md Title Mapping: Fixed a critical cloud overwrite bug where multi-file project skills named SKILL.md would collide in the same namespace. SKILL.md files are now intelligently remapped to use their outermost parent skill directory name as the memory title.
  • Replaced sidermem capture with three dedicated commands: sidermem capture-claude, sidermem capture-codex, and sidermem capture-gemini (alias capture-agy).
  • capture-claude scans ~/.claude/projects/ and presents an interactive project list (arrow-key selection) — no need to know the project's encoded name. It automatically excludes the internal MEMORY.md index file.
  • capture-codex recursively captures all global Codex memories from ~/.codex/memories under the codexglobal namespace.
  • All capture commands show a per-file plan (insert / update / noop) and require confirmation before writing. Use -y, --yes to skip.

Quick Start

Installation

npm install -g sidermem-cli

Authentication

sidermem login

The 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 logout

Commands

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 memories

sidermem 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 array

Options:

| 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. Press Ctrl+D (EOF) to submit what you typed, or Ctrl+C to 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.md

Mode 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 JSON

Each 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 JSON

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-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 memory

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 |


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 5f2a

If 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 |