huangfuren/dsh-outline ↗★ 1

dsh-outline

在会话中检索、阅读和写入知识库 适合需要与 Outline 知识库进行双向同步和检索的用户。

套件
dsh-outline
相容性
待驗證
Harness 依賴範圍
>=0.1.5-rc.2 <1.0.0
Cordis 依賴範圍
>=4.0.0 <5
版本
0.8.0
授權
MIT
最近更新
2026年9月20日

同名套件的其他儲存庫

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:huangfuren/dsh-outline

Configuration

The recommended way is the GUI card (Settings → Plugins → plugin configuration → Outline Knowledge Base):

FieldDescription
Service URL (baseUrl)Outline instance root, e.g. https://outline.example.com
API Tokencreate one at Outline → Settings → API keys
Writable paths (empty = read-only)comma-separated directory paths, e.g. Collection A,Knowledge Base/Dir 1; only these directories and their children are writable
Local save directorylocal directory where outline_save_local writes Markdown files; empty = $DSH_HOME/outline-auto-saves (fallback $HOME/outline-auto-saves). Restart the web profile after changing
Synonyms (config row only)synonyms in the plugin config row (YAML map, e.g. synonyms: { 部署: [上线, 发布] }): on a zero-hit search the plugin retries with mapped words (ladder: original → first word → synonyms) before giving up

Click Save — applies immediately. Alternatively, configure via environment variables (OUTLINE_BASE_URL / OUTLINE_API_TOKEN) or the plugin config row in cordis.patch.yml. Advanced options in the plugin config row: timeoutMs (request timeout, default 15000), cacheTtlMs (read-cache lifetime in ms, default 60000, range 1000–300000) and synonyms (see above; config-row only, restart to reload).

Read-only by default (v0.3.0): with no writable paths configured, all write tools (outline_create / outline_update_document / outline_delete) refuse to run — no approval prompt is even shown. To allow writes, list the directories that may be modified. A path like Knowledge Base/Dir 1 covers every child under Dir 1; a bare Collection A covers the whole collection. Any path that cannot be resolved (missing collection, invisible directory, moved document) is refused — writes always fail closed.

The public package must not contain organization-specific collection names, URLs, tokens, or document examples. Deployment-specific values are configured per installation — never publish an internal collection name as a schema default or UI placeholder.

Migrating from 0.2.x

0.3.0 removes the protectedCollections deny-list in favor of the writablePaths allow-list. After upgrading, every write is refused until you configure writable paths. If you previously protected a collection via the deny-list, simply leave it out of writablePaths — a collection that is not listed is not writable. Delete the old protectedCollections setting from your plugin config row, then set writablePaths to the directories you actually write to.