dsh-agora
DSH (DeepSeek Harness) skill plugin: a thin shell that ships the Agora
skill — RTC, RTM, ConvoAI, CLI, Cloud Recording, Server, Server Gateway,
tokens — synced verbatim from
AgoraIO/skills at a pinned release tag.
The plugin registers one bundled skill, agora, into DSH's skill registry —
the same name and content as the Claude Code / Cursor ecosystems.
Install
dsh plugin --profile web add dsh-agora
Then restart the web profile. The agora skill appears in the skill catalog.
From a local checkout (development):
dsh plugin --profile web add /path/to/dsh-agora
pnpm workspace-root gotcha: with pnpm ≥ 8.15 the profile's workspace root rejects a bare
add(ERR_PNPM_ADDING_TO_ROOT). The clean fix is to disable the check once per profile so plaindsh plugin addjust works:echo "ignore-workspace-root-check=true" > ~/.dsh/profiles/web/.npmrc dsh plugin --profile web add dsh-agora(Alternative: add
-wto the command:dsh plugin --profile web add -w dsh-agora. The root cause is dsh'spluginsubcommand forwarding verbatim to pnpm with no package-manager switch — worth an upstream issue if it bites more users.)link: dev mode: the profile must resolve the runtime peer
@deepseek-ai/dsh-skill. Install it in the repo checkout first (pnpm install); otherwiseindex.jsfails withERR_MODULE_NOT_FOUNDat load time (decision D-09).
What it contains
dsh-agora/
├── package.json # dsh.bundle.patch declaration (bundle form)
├── cordis.patch.yml # inserts the provider row into the profile tree
├── index.js # Cordis entry: registers the bundled agora provider
├── scripts/sync-deps.sh # ★ the only automation: tag-sync from AgoraIO/skills
└── assets/agora/ # synced output (gitignored, not committed)
├── SKILL.md # upstream verbatim, zero rewrite
└── references/ # full reference set (54 files)
How content stays in sync
npm publish runs prepack → scripts/sync-deps.sh, which:
- resolves the release tag (
$TAGenv → GitHub latest release → pinned fallbackv1.8.1), - pulls the
AgoraIO/skillstarball for that tag, rsync -a --deletesskills/agora/→assets/agora/— zero rewrite, so the two copies can never drift.
The repo keeps no permanent copy of the skill content; assets/ is
gitignored and rebuilt at release time. Run it manually with
npm run sync:deps.
Skill: agora
Upstream routing: RTC (video/voice calls), RTM (chat/signaling), ConvoAI
(voice AI agents), Agora CLI, Cloud Recording, Server (tokens), Server
Gateway, and cross-product coordination. ConvoAI follows the upstream
"proven baseline first" rule (run the official quickstart before scaffolding
from memory); CLI acceleration is runtime-detected (agora on PATH), never
bundled.
Design rules and decisions (D-01…D-10) and the ROADMAP are kept local-only
under docs/ — not committed to this public repo.
Verify locally
dsh --profile web --dump-config --patch ./cordis.patch.yml # row composes
For a real mount test, install into a throwaway profile:
dsh plugin --profile agoratest add .
dsh --profile agoratest --dump-config | grep agora-skills
License
MIT
No comments yet. Be the first to write one.