Skip to content

dsh-plugin-hello

Verified

dsh-plugin-hello Β· v0.1.0 Β· MIT

A minimal DeepSeek Harness community plugin that adds a callable hello tool

Install

dsh plugin add dsh-plugin-hello

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Creators

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: "<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