studyzy/dsh-lazy-tools
dsh-lazy-tools brings CodeBuddy-style deferred tool loading to DeepSeek Harness: tool schemas stay out of the model's context until they are actually needed. Tools are deferred by default while a coding core stays available (read, write, edit, bash, glob, grep, web_search, web_fetch, ask_user_question, skill), so their schemas and names never reach the model context; the model discovers deferred tools on demand through tool_search (exact name or keyword, Chinese and English) and then calls them directly after activation via defer_execute_tool. It is a pure exposure-control layer: it owns no tools and cannot proxy execution, it only subtracts from the model-facing tool list on the system-prompt/assemble waterfall, so it composes with every other restriction and tool source. CodeBuddy-style Defer(...) / NoDefer(...) patterns with * wildcards and a global deferToolLoading switch are supported, and the guard tools (tool_search, defer_execute_tool, run_code) can never be deferred.
Install
dsh plugin --profile <profile> add git:github.com/studyzy/dsh-lazy-toolsInstall the GitHub repo as an external bundle with the line above; the bundle injects a plugin named lazy-tools via cordis.patch.yml. The README also documents git clone-then-local-directory and dsh plugin --profile <profile> add link:/path/to/dsh-lazy-tools forms. No configuration is required -- the built-in preset runs right after install.
Compatibility
DeepSeek Harness 0.2.0-rc.2 (@deepseek-ai/dsh-* 0.2.0-rc.2, @deepseek-ai/cordis 4.0.4, @deepseek-ai/schemastery 3.18.4 are declared in peerDependencies, so the compatibility preflight accepts the bundle). Works with any model and provider because it is implemented purely at the agent layer. Activation applies from the next turn; state is not persisted across sessions.
Details
- Repo: studyzy/dsh-lazy-tools
- Category: Other
- Stars: 1
- Version: source install from GitHub (no npm registry package claimed); targets DSH 0.2.0-rc.2; MIT
- Last push: 2026-08-14
- First seen: 2026-08-14
Recent updates
The README documents the defer / noDefer / deferToolLoading config keys and precedence (noDefer > defer > deferToolLoading), the note that naming either defer or noDefer replaces the preset entirely, and the design constraints (activation from the next turn, deferred tools invisible until searched, restrictions compose for free, PTC presentation degrades to a no-op, state not persisted across sessions).
FAQ
- How do I install dsh-lazy-tools?
- Run dsh plugin --profile <profile> add git:github.com/studyzy/dsh-lazy-tools (or install from a local clone). No configuration is needed -- the built-in preset runs right after install.
- How does the model find hidden tools?
- Per the README, deferred tools are removed from the model-facing list and the model discovers them on demand through tool_search (exact name via tool_names or keyword via queries), then calls them directly from the next request after activation.
- Does it change my other restrictions?
- No. The README states it only subtracts from the model-facing tool list on system-prompt/assemble and never widens another policy; a tool denied by another policy never reaches the list or the search catalog.
Alternatives
boomzikazita/dsh-skill-lazy · morluto/leantoken · Fishquito7/dsh-skill-viewer