Pi-compatible tool suite recreated inside DeepSeek Harness: installs lower-case read/write/edit/bash/find/grep/ls core tools while retaining DSH-backed web, task, plan, todo, think, and slash extensions.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:kingguuu8-svg/dsh-pi-compatible
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
Two Full Access-only DeepSeek Harness agent presets whose core tool contract is frozen to @earendil-works/pi-coding-agent 0.84.2.
- Pi-compatible Core exposes exactly seven lower-case tools:
read,bash,edit,write,grep,find, andls. - Pi-compatible Plus exposes the same core plus explicit DSH-backed Web, Task, Todo, Plan, Think, Slash, and compaction capabilities.
The presets use DSH's filesystem, subprocess, attachment, session, cancellation, model-routing, and presentation seams. They are designed and tested only with the danger-full-access permission preset; they do not implement escalation workflows for narrower policies.
Product contract
Core tools
| Tool | Pi-compatible behavior |
|---|---|
read(path, offset?, limit?) |
Head truncation at 2,000 lines or 50 KiB, offset continuation, a 64 MiB whole-file safety cap, and PNG/JPEG/GIF/WebP/BMP handling subject to DSH attachment capabilities |
bash(command, timeout?) |
Fresh real Bash process per call, no persistent state, no default timeout, tail truncation with a private full-output spill file |
edit(path, edits[]) |
Original-file matching, unique non-overlapping edits, Pi-style fuzzy punctuation fallback, BOM and CRLF/LF preservation, one guarded atomic write |
write(path, content) |
Complete UTF-8 write through DSH; missing parent directories are created by the DSH local filesystem backend |
grep(...) |
ripgrep JSON search, default 100 matches, 500-character line clipping, optional context/glob/literal/case control |
find(pattern, path?, limit?) |
fd glob search, default 1,000 results, .gitignore-aware relative paths |
ls(path?, limit?) |
One directory, dotfiles included, case-insensitive sort, / after directories, default 500 entries |
All seven tools are visible by default. This intentionally differs from Pi 0.84.2's default four-tool activation (read, bash, edit, write): DSH does not reproduce Pi's dynamic tool-activation mechanism.
Plus extensions
pi-compatible-plus additionally registers:
WebFetchWebSearchTaskTodoWriteExitPlanModeThinkSlashCommand/plan/compact- DSH basic compaction and tool-result pruning
These are DSH-backed extensions, not Pi 0.84.2 core tools.
Install
Install the bundle into the DSH Web profile:
dsh plugin --profile web add kingguuu8-svg/dsh-pi-compatible
Or install a local checkout:
dsh plugin --profile web add .
The bundle installs both presets into:
${DSH_HOME:-~/.dsh}/.agent-presets/pi-compatible/
${DSH_HOME:-~/.dsh}/.agent-presets/pi-compatible-plus/
Installation is idempotent and does not overwrite a complete existing preset. Set force: true on the bundle row in the profile patch to replace packaged files during an upgrade. A forced 0.1.x → 0.2.0 migration also removes the known package-owned legacy modules from the Core directory; unrelated user files are preserved.
After installation, create a new session and choose Pi-compatible Core or Pi-compatible Plus.
Runtime configuration
| Variable | Meaning |
|---|---|
PI_COMPAT_BASH_PATH |
Absolute path to the real Bash executable |
PI_COMPAT_FD_PATH |
Absolute path to fd |
PI_COMPAT_RG_PATH |
Absolute path to rg |
PI_COMPAT_OFFLINE=1 |
Disable fd/rg network download |
PI_OFFLINE=1 |
Pi-compatible alias that also disables fd/rg download |
DSH_HOME |
DSH home and the private pi-compatible/bin cache root |
Bash resolution follows Pi's platform intent: on Windows, Git Bash under Program Files is preferred before PATH Bash. PowerShell is never silently presented as bash.
fd and rg resolution is:
- explicit environment override;
- system executable on PATH;
- cached executable under
<DSH_HOME>/pi-compatible/bin; - latest compatible GitHub release download, unless offline mode is enabled.
When GitHub publishes a SHA-256 asset digest, the downloader verifies it. Downloaded files and extraction directories are private to the current user.
Persona customization
The default persona is intentionally short and direct. To customize it, copy the preset to a new id and edit that copy's agent.cordis.yml. Tool compatibility is the stable product contract; persona text is not.
Compatibility boundaries
- Pi baseline is permanently frozen to
0.84.2for this product line. - Compatibility means schema and key behavior, not byte-identical error messages or Pi's TUI rendering.
- DSH owns path authorization, filesystem publication, subprocess-tree cancellation, attachments, sessions, and UI cards.
- BMP is recognized, but DSH rc.6/rc.7 attachments do not accept BMP;
readreturns a conversion instruction instead of an image block. - Pi resizes large images to 2,000×2,000. DSH's attachment seam has no resize operation, so supported images are stored at their original dimensions and the deviation is disclosed in the tool result.
- Text
readrejects files above 64 MiB before whole-file decoding. Grep context expansion skips files above 10 MiB. These safety bounds prevent one tool call from exhausting the long-lived DSH host. - Windows is the release-blocking platform. POSIX paths remain supported on a best-effort basis.
- The preset shadows only the model-facing
sandbox:policyandapproval:policyruntime-context prose because it duplicates the Full Access contract and mentions tool parameters that do not exist in Pi. DSH enforcement remains active, and all other runtime contexts remain available. - The preset does not reject a narrower DSH permission mode at mount time. Such modes are unsupported; host denial is reported directly and the model is instructed not to request escalation.
Development
npm run check
npm test
npm run test:integration
- Unit tests use DSH seam mocks and require no LLM API key.
test:integrationuses the globally installed DSH rc.6 local filesystem and subprocess packages, executes real Git Bash, and exercises downloaded/cached fd and ripgrep.- The running DSH Web host is separately validated by creating blank Core and Plus sessions through
session.create; no model request is required for mount validation.
Trust
A user preset is a Cordis composition and has the authority of the plugins it loads. This bundle is intentionally Full Access-only and can execute arbitrary Bash commands and modify arbitrary files allowed by the host process. Review the source before installation.
License
MIT. See THIRD_PARTY_NOTICES.md for the Pi 0.84.2 behavior reference.
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 31789
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 4052
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1130
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 499
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 482
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 445
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.