Tools & Capabilities

dsh-plugin-hello

xu1132/dsh-plugin-hello · ★ 0

xu1132

A minimal DeepSeek Harness community plugin. It registers a single model-callable tool, hello , that greets a caller by name. It is the smallest complete example of a…

License
MIT
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:xu1132/dsh-plugin-hello

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. What it does
  2. Install into a profile
  3. Configure
  4. Development
  5. Structure
  6. License

A minimal DeepSeek Harness community plugin. It registers a single model-callable tool, hello, that greets a caller by name. It is the smallest complete example of a dsh-plugin bundle and a good starting point for a first contribution.

What it does

When the plugin loads, it registers the hello tool on ctx.tools:

  • Input: name (string, required) — the person to greet.
  • Output: "<greeting>, <name>!" — for example Hello, Ada!.

The greeting prefix is configurable and defaults to Hello.

Install into a profile

dsh plugin forwards to pnpm inside the profile directory, so any pnpm install form works:

dsh plugin --profile demo add github:you/dsh-plugin-hello

The first run initializes the profile with @deepseek-ai/dsh-base, links this package, and appends it to the profile's dsh.profile.bundles because package.json declares dsh.bundle. A git install fetches sources, so pnpm runs the prepare script to build lib/ from src/. pnpm 10+ refuses that script until it is allowlisted; dsh prints the exact allowBuilds entry to copy into the profile's pnpm-workspace.yaml. Verify the composed layer, then boot:

dsh --profile demo --dump-config   # shows a "# == dsh-plugin-hello" layer
dsh --profile demo

Ask the model: Use the hello tool to greet Ada. It calls hello and receives Hello, Ada!.

Configure

Set a custom greeting by overriding the row in the profile's cordis.patch.yml:

- id: hello
  name: dsh-plugin-hello
  config:
    greeting: Howdy

Invalid configuration fails the load.

Development

pnpm install
pnpm run typecheck
pnpm run build     # emits lib/index.js and lib/index.d.ts
pnpm run test

Structure

hello/
├── package.json       # bundle manifest (dsh.bundle), scripts, deps
├── cordis.patch.yml   # the configuration layer the bundle inserts
├── src/index.ts       # the plugin: name / inject / Config / apply
├── tests/hello.spec.ts
├── tsconfig.json
└── vitest.config.ts

License

MIT