dsh-plugin-hello
A minimal DeepSeek Harness community plugin that adds a callable hello tool 适合想学习插件结构或做首次贡献的开发者,功能仅为示例问候,非实用工具。
Other repositories with this package name
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xu1132/dsh-plugin-helloREADME
Read the full README ↗dsh-plugin-hello
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:
", !"— for exampleHello, 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