Answers from the documentation; checking which model is on duty
Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
cli-anything-siyuan - Skill - OpenSmartRoute
Skillv1.0.0
cli-anything-siyuan
SiYuan (思源笔记) CLI — manage notebooks, documents, blocks, and search your knowledge base from the terminal.
Imported from hkuds/cli-anything (skills/cli-anything-siyuan/SKILL.md). Install upstream with npx skills add hkuds/cli-anything --skill cli-anything-siyuan. Copyright stays with the author.
cli-anything-siyuan
CLI harness for SiYuan (思源笔记),
a local-first knowledge management and note-taking application.
This CLI connects to a running SiYuan kernel via its HTTP API
(http://127.0.0.1:6806) and provides structured access to notebooks,
documents, blocks, search, and export.
Prerequisites
SiYuan must be running (Settings → About shows the API token)
Python 3.10+
Install: pip install cli-anything-siyuan or pip install -e . from agent-harness/
Command Groups
notebook — Notebook management
Subcommand
Description
list
List all notebooks
create <name>
Create a new notebook
rename <id> <name>
Rename a notebook
remove <id>
Delete a notebook
open <id>
Open a notebook
doc — Document management
Subcommand
Description
create <notebook> <path> [--md "content"]
Create a document
list <notebook> [path]
List documents
tree <notebook> [--path / --depth]
Show doc tree
get <id>
Get document path by ID
rename <id> <title>
Rename a document
remove <id>
Delete a document
block — Block operations
Subcommand
Description
insert <data> [--previous / --parent]
Insert a block
update <id> <data>
Update a block
delete <id>
Delete a block
get <id>
Get block kramdown source
children <id>
Get child blocks
Other commands
Command
Description
sql <stmt>
Execute SQL on the block database
search <query>
Full-text search across blocks
export md <doc-id>
Export document as Markdown
tag list
List all tags
version
Show SiYuan kernel version
status
Show connection and session status
repl
Start interactive REPL
Agent Guidance
Always use --json for machine-readable output
Power search: use sql "SELECT * FROM blocks WHERE content LIKE '%keyword%'" for SQL-level access
Document IDs look like 20210817205410-2kvfpfn (timestamp-based)
API token can be found in SiYuan Settings → About
Connection defaults: http://127.0.0.1:6806
Examples
# List notebooks (JSON)cli-anything-siyuan --json notebook list# Create a document with Markdown (--md flag, watch shell escaping)cli-anything-siyuan doc create nb1 /projects/new --md "## Title\n\nContent"# Create a document — pipe Markdown via stdin (avoids shell escaping)# PowerShell here-string (literal, no escaping needed):@'## TitleContent with `backticks` and (parentheses) and "quotes"'@ | cli-anything-siyuan doc create nb1 /projects/new --md -# Bash heredoc:# cat <<'EOF' | cli-anything-siyuan doc create nb1 /projects/new --md -# ## Title# Content with `backticks` and (parentheses)# EOF# SQL searchcli-anything-siyuan sql "SELECT id, content FROM blocks WHERE content LIKE '%meeting%' LIMIT 5"# Exportcli-anything-siyuan export md doc123# Enter REPLcli-anything-siyuan
Error Handling
Connection errors: check that SiYuan is running and the API token is correct
API errors: returned as {"code": N, "msg": "..."} — check the message field
Auth errors: verify the token in ~/.siyuan-cli.json or SIYUAN_TOKEN env var
Installed into a catalogue, chosen by a router
Install cli-anything-siyuan and it becomes one more candidate the router can pick - when it fits.
A listing is a routing target with a manifest: what it does, which domains it covers, what it costs and who publishes it. Once installed it sits beside your own models and tools, is scored like any other candidate for each request, and shows up in the trace when it wins. Ratings come from workspaces that installed it, one per account.
When a provider is down or over quota the request moves on; the trace says it did.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
# after Install: the listing is in your workspace's routing pool - a plan picks it for its slotcurl-s-X POST https://osr-api.kindrock-caaab1a2.centralindia.azurecontainerapps.io/api/v1/route -H 'Authorization: Bearer $OSR_API_KEY' -H 'Content-Type: application/json' -d '{"text": "...", "plan": true}'
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.