From homelab-core
Manages notes in self-hosted Memos service via API scripts: create, list, search, update, delete, tag, attach files, and organize. Activates on save-to-memos, search-notes, or note-taking requests.
How this skill is triggered — by the user, by Claude, or both
Slash command
/homelab-core:memosThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**⚠️ MANDATORY SKILL INVOCATION ⚠️**
⚠️ 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.mdnpx claudepluginhub jmagar/claude-homelab --plugin tautulliManages persistent semantic memory across sessions: store/retrieve knowledge/TODOs/issues, hybrid semantic search, hierarchy/tags organization, and maintenance tools.
Stores, recalls, queries, and audits durable project knowledge as file-backed entries and a working notepad that survives conversation compaction.
Persistent memory for AI agents via hosted MCP. Remember decisions, recall project context, manage TODOs, and govern memory across sessions and tools.