memos について
memos は、コマンドラインからセルフホストの Memos を読み書きするスキルです。Markdown メモ、タグ、添付ファイルに対応し、アーカイブや公開範囲も管理できます。操作結果は JSON で出力されます。
主な機能
- 01メモの作成、読み取り、更新、削除
- 02内容、タグ、メタデータによる検索
- 03ファイル添付のアップロードと管理
- 04タグによる整理とメモの関連付け
- 05アーカイブと公開範囲の制御
活用シーン
- 01会話の要点をメモに保存
- 02話題や日付からメモを検索
- 03複数のメモにタグを付与
- 04ファイルをアップロードしてメモに添付
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jmagar/ claude-homelab --skill memosインストール後、Claude Code で/memosを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
load-env.shREADME.mdexamples/quick-capture.mdsearch-patterns.mdtagging-workflow.mdreferences/api-endpoints.mdquick-reference.mdtroubleshooting.mdscripts/memo-api.shresource-api.shsearch-api.shtag-api.shuser-api.sh詳細
Memos スキル
⚠️ スキルの呼び出しは必須です ⚠️
ユーザーが次のトリガーのいずれかに言及した場合、このスキルを必ず呼び出してください(任意ではありません)。
- 「これを Memos に保存して」「メモを作成して」「メモを追加して」
- 「自分のメモを検索して」「X についてのメモを探して」「何について書いたっけ」
- 「自分のメモを一覧表示して」「最近のメモを表示して」「どんなメモがある?」
- 「メモを更新して」「メモを編集して」「メモを削除して」
- 「このメモにタグを付けて」「タグを追加して」「メモを整理して」
- 「メモにアップロードして」「ファイルをメモに添付して」
- 「メモをアーカイブして」「メモをピン留めして」「メモを公開して」
- 「memos」「メモ」「ノート」「個人的な知識」への言及
トリガーに該当する場合にこのスキルを呼び出さないと、運用要件に違反します。
目的
このスキルは、セルフホスト可能な Memos インスタンスに対する読み書きアクセスを提供し、メモのすばやい記録、検索、整理を可能にします。Memos は、Markdown、タグ、ファイル添付に対応した、プライバシーを重視するセルフホスト型のメモサービスです。
主な機能:
- メモの作成、読み取り、更新、削除
- 内容、タグ、メタデータによるメモの検索
- ファイル添付のアップロードと管理
- タグを使ったメモの整理
- アーカイブと公開範囲の管理
- 関連するメモ同士のリンク
主なユースケース: Claude との会話から重要な情報を個人用ナレッジベースにすばやく記録します。
セットアップ
前提条件
- Memos インスタンスが稼働しており、アクセス可能であること
- Memos UI で API アクセストークンを生成していること
curlとjqがインストールされていること
認証情報の設定
次の変数を ~/.claude-homelab/.env に追加します。
# Memos - Self-hosted note-taking service
MEMOS_URL="https://memos.example.com"
MEMOS_API_TOKEN="<your_api_token>"
API トークンを生成するには:
- Memos インスタンスにログインします
- Settings → Access Tokens に移動します
- 「Create」をクリックし、生成されたトークンをコピーします
- 上記のとおり
.envファイルに追加します
セキュリティ:
.envファイルは gitignore 対象です(絶対にコミットしないでください)- 権限を設定します:
chmod 600 ~/.claude-homelab/.env - トークンにはユーザーアカウントと同じ権限があります
コマンド
すべてのコマンドは、LLM による解析用に JSON 出力を返します。スクリプトは .env から認証情報を自動的に読み込みます。
メモの操作
メモを作成:
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
メモを一覧表示:
bash scripts/memo-api.sh list
bash scripts/memo-api.sh list --limit 10
bash scripts/memo-api.sh list --filter 'tag == "work"'
特定のメモを取得:
bash scripts/memo-api.sh get <memo-id>
メモを更新:
bash scripts/memo-api.sh update <memo-id> "Updated content"
bash scripts/memo-api.sh update <memo-id> --add-tags "urgent"
メモを削除:
bash scripts/memo-api.sh delete <memo-id>
メモをアーカイブ:
bash scripts/memo-api.sh archive <memo-id>
検索操作
内容で検索:
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"
タグで検索:
bash scripts/tag-api.sh list # List all tags
bash scripts/tag-api.sh search "project-x" # Find memos with tag
リソース(添付ファイル)の操作
ファイルをアップロード:
bash scripts/resource-api.sh upload /path/to/file.pdf
bash scripts/resource-api.sh upload image.png --memo-id <id>
添付ファイルを一覧表示:
bash scripts/resource-api.sh list
bash scripts/resource-api.sh list --memo-id <id>
添付ファイルを削除:
bash scripts/resource-api.sh delete <attachment-name>
ユーザー操作
現在のユーザーを取得:
bash scripts/user-api.sh whoami
アクセストークンを一覧表示:
bash scripts/user-api.sh tokens
ワークフロー
ユーザーがメモについて尋ねた場合:
- 「これを自分の Memos に保存して」 → 重要な内容を抽出し、適切なタグを付けてメモを作成します
- 「X について何を書いたっけ?」 → 内容やタグでメモを検索し、結果を提示します
- 「プロジェクト Y のメモを探して」 → タグ検索または内容フィルターを使用します
- 「Z についてのメモを更新して」 → メモを検索し、ID を取得して、内容を更新します
- 「そのメモを削除して」 → ユーザーに確認してから、ID を指定して削除します
詳細なフロー:すばやく記録する
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
補足
API の詳細
- 認証:
Authorizationヘッダーに Bearer トークンを指定します - ベース URL:
/api/v1エンドポイント - レート制限: 公開された制限はありません(セルフホスト型)
- ページネーション:
pageSizeとpageTokenパラメーターを使用します - フィルタリング: Google AIP-160 標準(例:
tag == "work")
メモの形式
Memos は Markdown の全構文に対応しています。
- 見出し、リスト、コードブロック
- リンクと画像
- タスクリスト(- [ ] および - [x])
- 表
公開範囲の選択肢
PRIVATE- 自分だけが閲覧できますPROTECTED- 認証済みユーザーが閲覧できますPUBLIC- 誰でも閲覧できます(RSS フィード)
ベストプラクティス
- 内容を具体的にする: UI では最初の行がプレビューとして表示されます
- 一貫したタグを付ける: 小文字を使い、複数語のタグにはハイフンを使います(例:「project-alpha」)
- 古いメモをアーカイブする: ワークスペースを整理された状態に保ちます
- 関連するメモをリンクする: コンテキストを示すためにメモの関連付けを使います
よくあるエラー
401 Unauthorized:
.envの API トークンを確認します- トークンの有効期限が切れている可能性があります(Memos UI で再生成してください)
404 Not Found:
- メモ ID が存在することを確認します
- MEMOS_URL が正しいことを確認します
接続が拒否されました:
- Memos インスタンスが起動していません
.envの URL を確認します
参考資料
- 公式ドキュメント: https://usememos.com/docs
- API リファレンス: https://usememos.com/docs/api
- スクリプト:
skills/memos/scripts/ - 使用例:
skills/memos/examples/
🔧 エージェントツールの使用要件
重要: zsh-tool を使用してこのスキルのスクリプトを実行する場合は、必ず pty: true を使用してください。
PTY モードを使用しないと、コマンドは正常に実行されても、出力が表示されません。
正しい呼び出しパターン:
<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