Skip to content
dsh.fish
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

  • 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.
Source