Introduction

When developing a DeepSeek Harness (DSH) Agent, a traditional approach is usually to poll external data sources. This method is less efficient and cannot respond to sudden events in a timely manner. The galvanize-dsh plugin solves this problem by providing a set of event-trigger tools for the DSH Agent, allowing it to proactively wake a new DSH session when a file arrives, an email is received, a webhook is triggered, or a Git event occurs.

Plugin Positioning

This is a DSH-native plugin package maintained by jarvis959, designed to listen for external events through the galvanize core daemon. When an event is triggered, it starts a headless DSH session and passes in a preset prompt and event data. The plugin itself is a lightweight validation client, with all logic proxied to the core’s local API.

Core Features

After installation, the plugin injects the following commands into the DSH Agent’s toolset:

  • trigger_add: Registers a trigger (supports event types such as folder watching, email, webhook, and emit), providing an alternative to the “polling” model.
  • trigger_list: Lists all currently registered triggers and their specific configurations.
  • trigger_test: Sends a synthetic event through the real dispatch path to verify whether the trigger logic works correctly.
  • trigger_status: Checks health status, including daemon status, today’s trigger count, last trigger time, and error information.
  • trigger_remove: Removes a specified trigger and cleans up related routes.

Installation and Enablement

Before installation, ensure the system environment meets the following requirements:
* The galvanize core daemon is installed and autostart is enabled.
* DeepSeek Harness CLI is available in the system PATH.
* The Node.js version requirement is met (^22.19 or >=24).

Run the following command to complete the installation:

npx github:lychee888/galvanize-dsh install

The installation process performs strict validation:
1. Checks the galvanize core version handshake.
2. Verifies read-only access to the core.
3. Probes connectivity for the target Profile and Wake Profile.
4. Checks the plugin’s liveness/status.

The installation is complete only when all checks pass (displaying LOADED). After installation, you can rerun the checks with galvanize-dsh verify --profile <name>.

Typical Usage

After installation, you can create triggers via CLI or natural-language commands.

Example 1: Monitor a folder via CLI
Monitor a specified folder and generate a summary when a file arrives:

galvanize add folder ~/inbox --name triage --wake dsh \
  --prompt 'Read {file} and write a triage summary to ~/inbox-out/{file}.md'

echo hello > ~/inbox/demo.txt   # 文件到达后,会在 ~/inbox-out/demo.txt.md 生成摘要

Example 2: Use a natural-language command
Send the command directly in the DSH chat window. The Agent will automatically call trigger_add and test the trigger once:

“wake me when a lab report lands in my inbox”

Applicable Scenarios and Notes

  • Architecture: The plugin is a “thin client.” It does not contain wake or trigger logic. All operations are proxied to the core API (GET /version, POST /manage/<op>), keeping behavior consistent with other plugins such as Hermes / Claude Code / Codex.
  • Conflict Detection: This plugin should not coexist with galvanize mcp. The core detects and flags double mounting via ~/.galvanize/surfaces.json, ensuring only one active plugin surface.
  • Webhook Configuration: When using a webhook-type trigger, you need to configure relay_url and relay_token, and deploy the galvanize relay service.
  • Permission Requirements: The plugin runs with the permissions of the current DSH process. Before installation, review the source code and license (MIT).

Summary

galvanize-dsh transforms DSH from passive polling into an event-driven architecture. With simple configuration, you can implement use cases such as file monitoring and automated summarization. For more details, visit GitHub or the plugin catalog page.