Skip to content

Latest commit

 

History

History
268 lines (233 loc) · 26 KB

README.md

File metadata and controls

268 lines (233 loc) · 26 KB

Hi, I'm PerryLink 👋

GitHub stars GitHub followers GitHub repos merged upstream repositories where a merge is credited actively maintained plugins compliance checkers
npm names npm downloads 30d npm provenance license node
dsh host corridor OpenSSF Scorecard — dsh-auto-review Glama (flagship MCP server jevcore) certified (flagship dsh-auto-review) MCP Registry
plugin index Gitee mirror dshfind downloads across the family DSH Desktop Market source Zenodo DOI

I fix other people's projects, and I maintain a plugin family for DeepSeek Harness. Independent open-source developer in Beijing — not affiliated with DeepSeek, and not a DeepSeek employee.

Upstream — 442 merged pull requests in 92 repositories that are not mine, from AWS, Apple, Docker, Microsoft, NVIDIA, Prometheus, Redis, Tencent and the vLLM project down to one-person projects. The family — 100 actively maintained Apache-2.0 plugins: security, workflows, research, messaging bridges, developer experience, and since 2026-10-08 a 53-checker compliance suite plus nine newer compliance tools. Every plugin has one page at perrylink.github.io — 123 pages, complete in the served HTML with no JavaScript rendering them, so a reader who arrives from a search result sees the text rather than a loading state.

▶ Start here

Plugin What it gives you Install
dsh-auto-review Second-model auto-review on the approval chain, fail-closed by default (240★) dsh plugin --profile web add dsh-auto-review
dsh-research-report Verifiable research reports: content-addressed evidence ledger, manifest seal hash, byte-level citation checks, drift detection, disproof ledger (213★) dsh plugin --profile web add dsh-research-report
dsh-industry-research Industry/company research: chain-map SVG with bottleneck detection, timeline, company cards, adversarial review (214★) dsh plugin --profile web add dsh-industry-research
dsh-memento Approval-gated cross-session memory (ctx.memory + SQLite) (142★) dsh plugin --profile web add dsh-memento
dsh-permission-rules Claude Code-style declarative allow/deny/ask rules plus a process-level network policy (135★) dsh plugin --profile web add dsh-permission-rules
dsh-mcp-panel MCP management console: /mcp + Settings tab + trial calls (91★) dsh plugin --profile web add dsh-mcp-panel
dsh-phocinae Local, non-generative verdicts for the approval chain: a small typed decision model behind phocinae_ask / phocinae_gate, with fail-closed escalation for everything it does not answer (1★) dsh plugin --profile web add dsh-phocinae

🦭 Phocinae — a 144.3M typed decision model

Separate from the harness: I train small language models. Phocinae-Largha-150M-v1 (Apache-2.0) is a typed decision model — no text generation; one forward pass returns a verdict per question with calibrated confidence. GPU 21.0 ms (RTX 5090) p50 per decision, CPU-only 1.64 s per case; English typed-decisions 0.906 (400 cases / 2,000 decisions, re-measured 2026-10-09), Chinese (machine-translated eval set) 0.848. With a τ=0.6 escalate gate, 55.0% of agent decisions stay local (79.6% at τ=0.5) and kept-subset accuracy moves 0.906 → 0.9936 (+0.0876) — the gate makes the system better, not just cheaper. Weights on Hugging Face and ModelScope; server pip install phocinae-server, DSH bundle dsh-phocinae (npm i dsh-phocinae). Reproduction ships with the repo: seeds, row-set hashes, environment and eval scripts.

🧭 dsh-score — public evidence for good plugins

The family publishes public evidence and scores instead of another star ranking:

  • dsh-score — per-surface evidence registry, badges, bench runner and contribution receipts. Live: https://perrylink.github.io/dsh-attention-index/. Prior-only rows are E0 / unrated; paired with / without bench results are the only path to a quality slot. Repo rename to dsh-score-index pending.
  • dsh-community-bench — the in-app consumer: Settings → Plugins → Community Bench. It reads the public registry; it does not compute a local score.
dsh plugin --profile web add dsh-community-bench

🔧 Upstream & community contributions

Every repository below is external to PerryLink/*, every row is merged work, and open proposals are deliberately not listed. ★ re-measured 2026-10-26 for every row; the third column names the party that owns the project, because the account name alone does not say whether that is a company, a standards body or one person. Every external repository above 2,500★ that carries merged work is listed.

Repository ★ 项目归属方
deer-flow 84,442 ByteDance — the official bytedance org
ruflo 79,411 ruvnet (rUv / Reuven Cohen) — individual maintainer
reactive-resume 44,887 reactive-resume org — independent open-source project (rxresu.me)
black 42,048 Python Software Foundation — the official psf org; the Black formatter
zoxide 40,298 ajeetdsouza (Ajeet D'Souza) — individual maintainer; the smarter cd command
fiber 40,231 the gofiber project — the official gofiber org (gofiber.io), the Express-inspired Go web framework
laya 34,352 NandhaKishorM — individual maintainer
cli 24,306 the urfave org — community-maintained Go CLI framework
learn-harness-engineering 21,639 walkinglabs community org — the harness-engineering tutorial site
awesome-dsh-plugin 20,845 awesome-dsh-plugin org — community catalog, no company behind it
MMKV 18,769 Tencent — the official Tencent org; the key-value store behind WeChat
SkillOpt 18,692 Microsoft — the official microsoft org
ioredis 15,347 Redis — the official redis org; the Node.js Redis client
FlashMLA 13,194 DeepSeek — the official deepseek-ai org
txtai 13,036 NeuML — the txtai project of NeuML, an independent open-source project
mcp 9,835 Amazon Web Services (AWS) — the official awslabs org
BrowserSkill 9,608 Tencent — the official Tencent org
dsh-web 9,560 zhu1090093659 — individual maintainer
Cordis 9,404 cordiverse org — the kernel DeepSeek Harness vendors as @deepseek-ai/cordis
dsh-market 9,026 dsh-market org — the community plugin market behind dshmarket.com
jc 8,695 kellyjonbrazil (Kelly Brazil) — individual maintainer
models.dev 7,395 anomalyco org — the model-catalogue site behind models.dev
kraken 6,773 Uber — the official uber org; the Kraken P2P Docker registry
koishi 6,287 koishijs org — the cross-platform chatbot framework
ouroboros 6,277 Q00 (@zep-us) — individual maintainer
client_golang 6,043 Prometheus — the official prometheus org (CNCF project); the Go instrumentation client
teamai-cli 5,665 Tencent — the official Tencent org
go-sdk 5,275 the modelcontextprotocol org — the Go SDK for MCP
aibrix 5,162 the vLLM project — the official vllm-project org
embedding-atlas 4,998 Apple — the official apple org
docker-agent 4,610 Docker, Inc. — the official docker org
DSH-better-sidebar 4,571 omdsh-dev community org — the DeepSeek Harness sidebar plugin
agent-client-protocol 4,516 agentclientprotocol org — governed jointly by Zed Industries and JetBrains
content 3,674 Nuxt — the official nuxt org
evalscope 3,592 modelscope org — the ModelScope model-hub project
deepseek-harness-desktop 3,288 dsh-tauri community org — self-described non-official and non-commercial
fastmcp 3,277 punkpeye (Frank Fiegel) — individual maintainer at Glama
minio-go 3,010 MinIO — the official minio org; the Go client for MinIO and S3-compatible storage
open5gs 2,791 the open5gs 5G core project — community, no company owner
claude-agent-acp 2,692 agentclientprotocol org — governed by Zed and JetBrains
NeMo-Agent-Toolkit 2,676 NVIDIA — the official NVIDIA org
Twenty-one of them, briefly — what was broken and who merged it
  • deer-flow — a portability fix in a blocking-IO test, merged by WillemJiang; the largest row in the table.
  • zoxide — a bare z under _ZO_ECHO=1 called Set-Location without -Passthru, so the $dir assignment was $null and strict mode threw PropertyNotFoundException; the no-path branch now passes -Passthru. Merged by ajeetdsouza, who dropped the regression test from the branch before merging.
  • prometheus/client_golang — checkMetricConsistency compared each label name with the previous one before the pairs were sorted, so non-adjacent duplicates passed and a scrape of the registry was dropped as a whole; the sort now runs before the duplicate loop, with an adjacent control and a non-adjacent regression test. Merged by bwplotka.
  • fiber — an optional path parameter swallowed the / after it, so /api/:day-:month?-:year? matched one segment too many; merged by ReneWerner87.
  • black — _write_to_stdout() already translates \n into the platform newline, so the trailing-newline fixup appended a second one: CRLF input without a trailing newline could come out as \r\r\n. It now appends a bare \n and lets the writer translate it; merged by cobaltt7.
  • urfave/cli — HandleExitCoder recognised an ExitCoder only through a bare type assertion, so an exit error wrapped with fmt.Errorf("%w") printed nothing and fell back to exit code 1. The MultiError ordering is unchanged; Juneezee rebased it onto a main that now requires Go 1.26, squashed the two golden-regenerating commits, and switched the last lookup to errors.AsType before merging.
  • kraken — the cache file reader opened to duplicate a committed upload to a replica was never closed, leaking one file descriptor per replica for every uploaded blob; both replication paths now register it with the server's closer set. Merged by gkeesh7 after sambhav-jain-16 asked for the two cases to be one table.
  • ioredis — an auto-pipelining fix, merged by PavelPashov.
  • nuxt/content — generateItemSurround dropped the previous item whenever before was larger than the item's index, instead of returning a shorter window; approved and merged by farnabaz minutes apart.
  • MMKV — the Win32 flag mapper put the creation disposition into dwDesiredAccess, so restoring over an existing mapped file failed; it now goes to dwCreationDisposition, with a test that does the restore. Merged into dev by lingol, so no commit of this account sits on master.
  • txtai — cut down over three pull requests after the maintainer asked three times; merged by davidmezzetti.
  • AWS awslabs/mcp — a one-file UTF-8 fix, merged by markjschreiber with two approvals.
  • Tencent BrowserSkill — merged by iuyo5678 with eight checks green.
  • Apple embedding-atlas — line-ending normalization in a release script, merged by donghaoren.
  • vLLM aibrix — two flaky-test fixes.
  • Microsoft SkillOpt — a UTF-8 state-file fix.
  • koishi — the maintainer found and fixed a regression in this account's own patch before merging it.
  • NVIDIA NeMo-Agent-Toolkit — three review rounds to make remove_r1_think_tags actually remove think blocks; merged by NVIDIA's rapids-bot.
  • jc — a Windows platform-name fix; it started counting when master caught up the next day.
  • modelscope evalscope — a UTF-8 BOM dataset fix, merged by Yunnglin.
  • MinIO minio-go — RemoveObjects reported a single error for a whole batch, hiding which object had failed; it now reports one result per failed object, merged by klauspost.

Eight more repositories between 1,000★ and 2,500★, the long tail below that, the per-merge record behind the 442, the laya ledger and the deepseek-ai picture are all in PROJECTS.md.

📦 The rest of the family

The roster holds 108 repositories — 110 declare the dsh.bundle.patch contract, minus the two retired corridor legs — and 100 are actively maintained (3 retired, 5 frozen), plus the support repositories — dsh-kit, dsh-catalog, the certification registry and the CI checker — and one third-party plugin carried as a row. The install list is plugins.txt in dsh-kit, which still records the 2026-10-19 cut; the roster figure here is measured from each repository's own package.json and includes nine tools published 2026-10-23 that the list has not picked up yet. The machine-readable catalogue is dsh-catalog, which is also the DSH Desktop Market source. One line per plugin, with its status and npm name, is in PROJECTS.md — 105 rows in ten tables.

# Some of what is in it
🔒 Security 4 dsh-permission-rules · dsh-mask · dsh-defend
🔁 Workflows 8 dsh-checkpoint-rewind · dsh-github · dsh-test-drive
✨ Experience & UX 4 dsh-memento · dsh-composer-history · dsh-output-styles
🧪 Evaluation 3 dsh-doublecheck · dsh-score · dsh-auto-review
📊 Observability & cost 5 dsh-observe · dsh-autotier · dsh-fast · dsh-phocinae
🎨 Content & knowledge 5 dsh-talk · dsh-translate · dsh-library
🛠️ Developer experience 6 dsh-mcp-panel · dsh-plugin-guide · jevcore
📱 Messaging & bridges 4 dsh-phone-inbox · dsh-ticktick · dsh-reach · dsh-wechat
🔬 Research 4 dsh-research-report · dsh-industry-research · dsh-fund-research
✅ Compliance checkers & tools 62 A register or record set read against a versioned rule pack, ten domains from tendering to litigation, plus nine newer tools — the list is in PROJECTS.md

🪦 Retired & frozen (2026-10-05)

A maintainer review against the official harness and the wider ecosystem retired three plugins because the harness now implements the capability natively — dsh-background-agents (native continuable subagents), dsh-session-pin (built-in session pinning) and dsh-team-rooms (Agent Teams) — and froze five of its own plugins because a better-adopted alternative now exists — dsh-budget, dsh-draw, dsh-claude-move, dsh-reach and dsh-defend — and carries the third-party dsh-wechat row as frozen for the same reason.

Retired does not mean broken: compatibility updates stop, existing installs keep working, and the capability is either official now or served better elsewhere. The per-plugin measurements — this repository's weekly downloads against the alternative's, and what each row was retired in favour of — are in PROJECTS.md, under "Retired & frozen — the full tables".

🌍 Where the plugins live

  • GitHub (this profile), Gitee and npm — source, CI and releases here; 101 repositories are mirrored to Gitee by a daily job (default branch and all tags; the mirror list does not yet include the nine 2026-10-23 tools). The perrylink npm account holds 117 names and 1,665 versions; 105 of them carry a SLSA provenance attestation on at least one version, 96 on the current latest.
  • npm downloads — 232,500 over the trailing 30 days (window 2026-09-26..10-25). dshfind lists 35 of the family's repositories in its sitemap and publishes a download badge for 9 of them — three at 10k+, two at 5k+, two at 2k+, one at 1k+ and one at 500+ — which add to 45,500+. The badges are rounded tiers, so that is a floor and not a total.
  • DSH Desktop Market — add https://cdn.jsdelivr.net/gh/PerryLink/dsh-catalog@main/deploy/artifacts/v1/plugins.json under Market → Sources to browse the family in-app (109 packages, catalogue generated 2026-10-26).
  • MCP Registry — four servers, all published from their release workflows over GitHub OIDC: dsh-cert-mcp, dsh-customs-mcp, jevcore-mcp and laya-mcp.
  • GitHub Actions — dsh-github and dsh-test-drive also ship composite actions, so they install as uses: PerryLink/dsh-test-drive@vX.
  • Third-party directories — a dozen-plus DSH lists and indexes ingest the dsh-plugin topic; the family is scored on OpenSSF Scorecard.
中文介绍

独立开源开发者,在北京,与 DeepSeek 无隶属关系。两条线:给别人的项目修 bug(AWS、Apple、Docker、 Microsoft、NVIDIA、Redis、Tencent、vLLM,也包括一个人的小项目),以及给 DeepSeek Harness 维护一套 Apache-2.0 插件生态 —— 安全、工作流、研究、消息桥接、开发者体验,加上一批合规核查插件。

每个插件都有一页静态介绍:perrylink.github.io,正文直接写在 HTML 里,不靠 JavaScript 渲染。也向上游 Cordis(DeepSeek Harness 所基于的 插件内核框架)与 deepseek-ai 提交修复,逐条清单在 PROJECTS.md。

还有一条在别处:一个根本起不来的进程现在能起来了。claude-agent-acp #1146 让 src/index.ts 里那处没有保护的顶层 await 不再因一次瞬时错误就中断模块求值、在发出任何一条 ACP 消息 之前退出。

数字只在上面的英文部分维护一份,逐条清单、名册与退役表在 PROJECTS.md;这里不重复, 以免两处走样。


Measured, not remembered. The full inventory — the merge-by-merge upstream record, the 105-row plugin roster, the retired and frozen tables, and the npm and registry figures with their caveats — is in PROJECTS.md. How every figure is measured is in INSTRUMENTATION.md, and what each round corrected is in CHANGELOG.md.