dsh-plugins
其他 活跃维护

dsh-plugins

lihuu/dsh-plugins

个人工具链插件集合,内置工作区文件引用与懒加载技能子模块,可灵活扩展工具功能,无需冗余配置即可适配个性化工作流,使用门槛低。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
182 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:lihuu/dsh-plugins
git clone https://github.com/lihuu/dsh-plugins.git
git clone git@github.com:lihuu/dsh-plugins.git
README.md main

English | 中文

dsh-plugins

Personal unified plugin collection for DeepSeek Harness. All self-authored plugins live here in one place, so a fresh machine can install everything with a single command.

Plugins

Plugin Location Kind Purpose
dsh-file-ref plugins/dsh-file-ref (repo subdirectory) Web plugin (browser + host) Composer @file — locate a workspace file and insert its full absolute path
dsh-lazy-skill plugins/dsh-lazy-skill (submodule → lihuu/dsh-lazy-skill) Host plugin Lazily load skill bundles
dsh-tavily-search plugins/dsh-tavily-search (repo subdirectory) Host plugin Tavily-backed WebSearchProvider for ctx.web — makes the web_search tool use Tavily
llm-ollama-cloud plugins/llm-ollama-cloud (repo subdirectory) Host plugin (LLM provider) Registers the ollama-cloud-direct route against the Ollama cloud OpenAI-compatible API; minimal deps: dsh-llm + cordis + eventsource-parser

Install (on a new machine)

# 1. Clone (with submodules)
git clone --recurse-submodules https://github.com/lihuu/dsh-plugins.git
cd dsh-plugins

# 2. Install everything to the local DSH
./install.sh

install.sh:

  • symlinks each plugin into $DSH_HOME/plugins/<name>
  • ensures the matching rows exist in the patch file (idempotent — no duplicates)
  • wires the two runtime resolution links every @local plugin needs (below)
  • source edits under the symlink take effect immediately

Patch target (choose one):

./install.sh                 # global: rows in $DSH_HOME/cordis.patch.yml → ALL profiles
./install.sh --profile web   # per-profile: rows in $DSH_HOME/profiles/web/cordis.patch.yml → that profile only

The source links (steps above) are shared machine infrastructure either way;
only the patch row target changes.

Runtime resolution links (important)

The dsh loader resolves @local/<name> through
~/.dsh/profiles/node_modules/@local/<name>, and each plugin's own imports of
@deepseek-ai/* / eventsource-parser resolve through the node_modules
symlink inside the plugin — which points at ~/.dsh/profiles/node_modules, the
SDK dependency closure the running dsh installation maintains and heals
from its own dependency graph on every launch (no npm install needed). Both
links are machine-specific and gitignored; install.sh creates them on each
machine:

~/.dsh/profiles/node_modules/@local/<name>  → ~/.dsh/plugins/<name>
~/.dsh/plugins/<name>/node_modules          → ~/.dsh/profiles/node_modules

So "one command on a fresh machine" is complete: clone → ./install.sh →
restart, and dependencies resolve.

After installing, restart dsh-web for the host halves to take effect:

launchctl kickstart -k gui/501/com.lihu.dsh-web

Browser-side changes appear on page refresh (or via HMR).

Adding a plugin

  1. Create a directory under plugins/ with the source
  2. Add one line to the link_plugin list in install.sh
  3. Add a matching row to the rows table in install.sh
  4. Commit

Note: the loadable bundle dist/index.js is committed (so a fresh machine needs
no build toolchain) — always run npm run build after editing src/ and before
committing, so the committed bundle stays current.

Layout

dsh-plugins/
├── install.sh                    one-shot install into ~/.dsh
├── plugins/
│   ├── dsh-file-ref/             file-ref source (managed directly here)
│   └── dsh-lazy-skill/           submodule (own repository, pointer)
└── README.md

Per-plugin docs

License

MIT