Bundle
dsh-plugin-hello
A minimal DeepSeek Harness community plugin that adds a callable hello tool
- Source
- xu1132
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# dsh-plugin-hello
A minimal [DeepSeek Harness](https://github.com/deepseek-ai/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:
```sh
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:
```sh
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`:
```yaml
- id: hello
name: dsh-plugin-hello
config:
greeting: Howdy
```
Invalid configuration fails the load.
## Development
```sh
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](LICENSE)
Install
dsh plugin --profile web add github:xu1132/dsh-plugin-hello#5ce5be43d40e1ba1b76751e23db301c44044dbf5
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-plugin-hello from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.