Manage notes and memos in self-hosted Memos service. Use when the user asks to "save this to memos", "create a memo", "search my memos", "find notes about X", "what did I write about", "add a note", "capture this", "remember this", "save this thought", or mentions note-taking, knowledge management, or personal notes.
From homelab-corenpx claudepluginhub jmagar/claude-homelab --plugin homelab-coreThis skill uses the workspace's default tool permissions.
README.mdexamples/quick-capture.mdexamples/search-patterns.mdexamples/tagging-workflow.mdload-env.shreferences/api-endpoints.mdreferences/quick-reference.mdreferences/troubleshooting.mdscripts/memo-api.shscripts/resource-api.shscripts/search-api.shscripts/tag-api.shscripts/user-api.shGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Configures VPN and dedicated connections like Direct Connect, ExpressRoute, Interconnect for secure on-premises to AWS, Azure, GCP, OCI hybrid networking.
⚠️ MANDATORY SKILL INVOCATION ⚠️
YOU MUST invoke this skill (NOT optional) when the user mentions ANY of these triggers:
Failure to invoke this skill when triggers occur violates your operational requirements.
This skill provides read-write access to a self-hosted Memos instance for quick note capture, search, and organization. Memos is a privacy-focused, self-hosted note-taking service with Markdown support, tagging, and file attachments.
Core capabilities:
Primary use case: Quick capture of important information from Claude conversations into a personal knowledge base.
curl and jq installedAdd these variables to ~/.claude-homelab/.env:
# Memos - Self-hosted note-taking service
MEMOS_URL="https://memos.example.com"
MEMOS_API_TOKEN="<your_api_token>"
To generate an API token:
.env file as shown aboveSecurity:
.env file is gitignored (never commit)chmod 600 ~/.claude-homelab/.envAll commands return JSON output for LLM parsing. Scripts source credentials from .env automatically.
Create a memo:
bash scripts/memo-api.sh create "Your memo content here"
bash scripts/memo-api.sh create "Memo with tags" --tags "work,project"
bash scripts/memo-api.sh create "Private memo" --visibility PRIVATE
List memos:
bash scripts/memo-api.sh list
bash scripts/memo-api.sh list --limit 10
bash scripts/memo-api.sh list --filter 'tag == "work"'
Get specific memo:
bash scripts/memo-api.sh get <memo-id>
Update memo:
bash scripts/memo-api.sh update <memo-id> "Updated content"
bash scripts/memo-api.sh update <memo-id> --add-tags "urgent"
Delete memo:
bash scripts/memo-api.sh delete <memo-id>
Archive memo:
bash scripts/memo-api.sh archive <memo-id>
Search by content:
bash scripts/search-api.sh "search query"
bash scripts/search-api.sh "docker kubernetes" --tags "devops"
bash scripts/search-api.sh "meeting notes" --from "2024-01-01"
Search by tag:
bash scripts/tag-api.sh list # List all tags
bash scripts/tag-api.sh search "project-x" # Find memos with tag
Upload file:
bash scripts/resource-api.sh upload /path/to/file.pdf
bash scripts/resource-api.sh upload image.png --memo-id <id>
List attachments:
bash scripts/resource-api.sh list
bash scripts/resource-api.sh list --memo-id <id>
Delete attachment:
bash scripts/resource-api.sh delete <attachment-name>
Get current user:
bash scripts/user-api.sh whoami
List access tokens:
bash scripts/user-api.sh tokens
When the user asks about memos:
User: "Save this conversation about Docker networking to my memos"
1. Extract key information from conversation
2. Create memo with descriptive content
3. Add relevant tags (e.g., "docker", "networking", "conversation")
4. Confirm creation with memo ID
5. Optionally ask if user wants to make it public/private
User: "What did I write about Kubernetes last month?"
1. Search memos with query "kubernetes"
2. Apply date filter (last 30 days)
3. Present results with memo IDs and previews
4. User can request full content of specific memos
User: "Tag all my Docker memos with 'devops'"
1. Search for memos containing "docker"
2. For each result, update memo to add "devops" tag
3. Report number of memos updated
4. Show tag statistics
Authorization header/api/v1 endpointpageSize and pageToken parameterstag == "work")Memos support full Markdown syntax:
PRIVATE - Only you can seePROTECTED - Authenticated users can seePUBLIC - Anyone can see (RSS feed)401 Unauthorized:
.env404 Not Found:
Connection refused:
.envskills/memos/scripts/skills/memos/examples/CRITICAL: When invoking scripts from this skill via the zsh-tool, ALWAYS use pty: true.
Without PTY mode, command output will not be visible even though commands execute successfully.
Correct invocation pattern:
<invoke name="mcp__plugin_zsh-tool_zsh-tool__zsh">
<parameter name="command">./skills/memos/scripts/memo-api.sh [args]</parameter>
<parameter name="pty">true</parameter>
</invoke>
skills/memos/references/troubleshooting.md