Agent Skills by ALSEL
汎用個人生産性⭐ リポ 146,041品質スコア 90/100

siyuan

curlを使用してセルフホスト型の知識ベース内のブロックやドキュメントを検索、閲覧、作成、管理できるSiYuan Note APIです。

description の原文を見る

SiYuan Note API for searching, reading, creating, and managing blocks and documents in a self-hosted knowledge base via curl.

SKILL.md 本文

SiYuan Note API

SiYuan のカーネル API を curl 経由で使用して、セルフホスト型ナレッジベース内のブロックとドキュメントを検索、読み込み、作成、更新、削除できます。追加ツールは不要です。curl と API トークンがあれば十分です。

前提条件

  1. SiYuan(デスクトップまたは Docker)をインストールして実行する
  2. API トークンを取得する:Settings > About > API token
  3. ~/.hermes/.env に保存する:
    SIYUAN_TOKEN=your_token_here
    SIYUAN_URL=http://127.0.0.1:6806
    
    SIYUAN_URL が設定されていない場合は http://127.0.0.1:6806 がデフォルトになります。

API の基本

すべての SiYuan API 呼び出しは JSON ボディを含む POST です。すべてのリクエストは以下のパターンに従います:

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/..." \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"param": "value"}'

レスポンスは以下の構造の JSON です:

{"code": 0, "msg": "", "data": { ... }}

code: 0 は成功を意味します。他の値はエラーです。詳細は msg を確認してください。

ID フォーマット: SiYuan の ID は 20210808180117-6v0mkxr のような形式です(14 桁のタイムスタンプ + 7 文字の英数字)。

クイックリファレンス

操作エンドポイント
全文検索/api/search/fullTextSearchBlock
SQL クエリ/api/query/sql
ブロック読み込み/api/block/getBlockKramdown
子ブロック読み込み/api/block/getChildBlocks
パス取得/api/filetree/getHPathByID
属性取得/api/attr/getBlockAttrs
ノートブック一覧/api/notebook/lsNotebooks
ドキュメント一覧/api/filetree/listDocsByPath
ノートブック作成/api/notebook/createNotebook
ドキュメント作成/api/filetree/createDocWithMd
ブロック追加/api/block/appendBlock
ブロック更新/api/block/updateBlock
ドキュメント名変更/api/filetree/renameDocByID
属性設定/api/attr/setBlockAttrs
ブロック削除/api/block/deleteBlock
ドキュメント削除/api/filetree/removeDocByID
Markdown としてエクスポート/api/export/exportMdContent

一般的な操作

検索(全文検索)

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/search/fullTextSearchBlock" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "meeting notes", "page": 0}' | jq '.data.blocks[:5]'

検索(SQL)

ブロックデータベースを直接クエリします。SELECT ステートメントのみが安全です。

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/query/sql" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"stmt": "SELECT id, content, type, box FROM blocks WHERE content LIKE '\''%keyword%'\'' AND type='\''p'\'' LIMIT 20"}' | jq '.data'

便利なカラム:idparent_idroot_idbox(ノートブック ID)、pathcontenttypesubtypecreatedupdated

ブロックコンテンツを読み込む

ブロックコンテンツを Kramdown(Markdown ライク)フォーマットで返します。

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/block/getBlockKramdown" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "20210808180117-6v0mkxr"}' | jq '.data.kramdown'

子ブロックを読み込む

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/block/getChildBlocks" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "20210808180117-6v0mkxr"}' | jq '.data'

人間が読める形式のパスを取得

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/filetree/getHPathByID" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "20210808180117-6v0mkxr"}' | jq '.data'

ブロック属性を取得

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/attr/getBlockAttrs" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "20210808180117-6v0mkxr"}' | jq '.data'

ノートブックを一覧表示

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/notebook/lsNotebooks" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}' | jq '.data.notebooks[] | {id, name, closed}'

ノートブック内のドキュメントを一覧表示

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/filetree/listDocsByPath" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"notebook": "NOTEBOOK_ID", "path": "/"}' | jq '.data.files[] | {id, name}'

ドキュメントを作成

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/filetree/createDocWithMd" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notebook": "NOTEBOOK_ID",
    "path": "/Meeting Notes/2026-03-22",
    "markdown": "# Meeting Notes\n\n- Discussed project timeline\n- Assigned tasks"
  }' | jq '.data'

ノートブックを作成

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/notebook/createNotebook" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "My New Notebook"}' | jq '.data.notebook.id'

ドキュメントにブロックを追加

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/block/appendBlock" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "parentID": "DOCUMENT_OR_BLOCK_ID",
    "data": "New paragraph added at the end.",
    "dataType": "markdown"
  }' | jq '.data'

他にも利用可能:/api/block/prependBlock(同じパラメータで、最初に挿入)と /api/block/insertBlockparentID の代わりに previousID を使用して特定のブロックの後に挿入)。

ブロックコンテンツを更新

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/block/updateBlock" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "BLOCK_ID",
    "data": "Updated content here.",
    "dataType": "markdown"
  }' | jq '.data'

ドキュメント名を変更

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/filetree/renameDocByID" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "DOCUMENT_ID", "title": "New Title"}'

ブロック属性を設定

カスタム属性は custom- プレフィックスを付ける必要があります:

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/attr/setBlockAttrs" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "BLOCK_ID",
    "attrs": {
      "custom-status": "reviewed",
      "custom-priority": "high"
    }
  }'

ブロックを削除

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/block/deleteBlock" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "BLOCK_ID"}'

ドキュメント全体を削除する場合:/api/filetree/removeDocByID{"id": "DOC_ID"} で使用します。 ノートブックを削除する場合:/api/notebook/removeNotebook{"notebook": "NOTEBOOK_ID"} で使用します。

ドキュメントを Markdown としてエクスポート

curl -s -X POST "${SIYUAN_URL:-http://127.0.0.1:6806}/api/export/exportMdContent" \
  -H "Authorization: Token $SIYUAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id": "DOCUMENT_ID"}' | jq -r '.data.content'

ブロックタイプ

SQL クエリで使用される一般的な type 値:

タイプ説明
dドキュメント(ルートブロック)
p段落
h見出し
lリスト
iリストアイテム
cコードブロック
m数式ブロック
tテーブル
bブロッククオート
sスーパーブロック
htmlHTML ブロック

よくある落とし穴

  • すべてのエンドポイントは POST です。読み取り専用操作であっても GET を使用しないでください。
  • SQL の安全性:SELECT クエリのみを使用してください。INSERT/UPDATE/DELETE/DROP は危険であり、送信してはいけません。
  • ID 検証:ID は YYYYMMDDHHmmss-xxxxxxx パターンに一致します。それ以外は拒否してください。
  • エラーレスポンスdata を処理する前に、レスポンス内で常に code != 0 をチェックしてください。
  • 大規模ドキュメント:ブロックコンテンツとエクスポート結果は非常に大きくなる可能性があります。SQL で LIMIT を使用し、jq を通してパイプして必要な部分のみを抽出してください。
  • ノートブック ID:特定のノートブックで作業する場合は、最初に lsNotebooks 経由でそのID を取得してください。

代替案:MCP サーバー

curl ではなくネイティブ統合を希望する場合は、SiYuan MCP サーバーをインストールしてください:

# ~/.hermes/config.yaml の mcp_servers 内:
mcp_servers:
  siyuan:
    command: npx
    args: ["-y", "@porkll/siyuan-mcp"]
    env:
      SIYUAN_TOKEN: "your_token"
      SIYUAN_URL: "http://127.0.0.1:6806"

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
NousResearch
リポジトリ
NousResearch/hermes-agent
ライセンス
MIT
最終更新
2026/5/12

Source: https://github.com/NousResearch/hermes-agent / ライセンス: MIT

関連スキル

汎用個人生産性⭐ リポ 7,456

newsblur-cli

ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。

by samuelclay
汎用個人生産性⭐ リポ 58,643

caveman-compress

自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」

by JuliusBrussee
ALSEL独自Anthropic Claude個人生産性

find-skills

日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。

by 株式会社ALSEL
汎用個人生産性⭐ リポ 39,967

planning-and-task-breakdown

仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。

by addyosmani
Anthropic Claude個人生産性⭐ リポ 132,723

docx

このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。

by anthropics
汎用個人生産性⭐ リポ 39,967

idea-refine

アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: NousResearch · NousResearch/hermes-agent · ライセンス: MIT