In DSH Web development, invoking Skills, switching Agents, or viewing plugin information usually requires manually typing the full command. dsh-quick-invoke is a standalone Cordis plugin for DSH Web that provides a unified / quick entry, candidate selection, and Host command execution capabilities for Skills, Agent presets, and Plugins.

This plugin is maintained by thuCGRA. It does not modify the DSH core and does not provide direct-invocation syntax for arbitrary Tools. Tool invocation is still selected by the Agent based on natural language and continues to go through DSH’s tools, approval, guard, and permission processes.

Core Features

The plugin primarily provides the following command capabilities:

  • Unified / quick entry: Enter / in DSH Web to view available commands.
  • Skill quick invocation: Enter /skill and select a candidate to directly initiate a Skill invocation.
  • Agent switching: Enter /agent and select a candidate to switch the Agent preset (must be in an empty session and follow the official API).
  • Plugin discovery and inspection: Use the /plugin command to view the list of loaded plugins and inventory information.
  • Host command support: Supports candidate selection and Host command execution for Skills and Agents.
  • Automatic input focus restoration: After a candidate is confirmed, only the input field is populated, and the input focus is automatically restored after the draft is populated, so the user can continue typing without manually clicking.

Installation and Enablement

Prerequisites

  • A Node.js environment.
  • DSH 0.1.1-rc.2 or a compatible version is installed.
  • An existing DSH Web profile that combines commands, skills, agent presets, plugin inventory, and command UI-related plugins.
  • The current user has write permissions to the DSH profile directory.

Installation Steps

Enter the plugin directory and install it using the DSH profile plugin management command:

cd $localPath/dsh-quick-invoke
dsh plugin --profile web add "$PWD"

After installation, restart the Web profile to load Host registration and the Client bundle:

dsh web --no-open

Usage Examples

The plugin provides the following typical usages:

  • View command candidates:
    Enter / in the DSH Web input field to see candidates such as /skill, /agent, and /plugin.
  • Invoke a Skill:
    Enter /skill, select the target Skill, and the input field is populated with the command. Continue entering the task and then manually send it.
    /skill quick-invoke-test 验证快捷调用链路
    /skill quick-invoke-skill-context 请复述任务上下文
  • Invoke an Agent:
    Enter /agent and select an available preset. After sending, the Host processes it through the official agentPreset.select API.
    /agent quick-invoke-agent 分析这个问题
  • Plugin management:
    View the plugin list and detailed information.
    /plugin list
    /plugin inspect dsh-quick-invoke

How It Works and Limitations

Architecture and Execution Flow

The plugin is divided into Host and Client parts, using different Cordis contexts:
* Host: Registers and executes commands, queries Skills and Agent presets, and performs operations through official API seams.
* Client: Decorates the command menu, retrieves dynamic candidates, locates the session, and populates the input field.

The execution flow is as follows:
1. The user enters /.
2. The DSH Web command UI presents candidates.
3. The user selects a candidate. Only the input field is populated; no remote operation is executed.
4. The user manually sends the full command.
5. The Host executes the command, performs parsing, validation, and permission checks, and logs command/run and command/done events.

Important Limitations

  1. Plugin enable/disable: The plugin does not support /plugin enable or /plugin disable commands. Use the DSH profile CLI to manage enabling and disabling plugins.
  2. Plugin open: /plugin open explicitly fails when no generic opener is available and does not fall back to internal logic.
  3. Agent switching constraints: Switching Agent presets is constrained by the Agent lifecycle. It must be performed on an empty Agent and must use the official agentPreset.select API. If the official seam is inaccessible, the command explicitly fails.
  4. Project-level resources: Project-level Skills and Agent presets are only for demonstration and discovery and cannot be used directly as global resources.

Notes

  • Candidate behavior: Selecting a candidate only populates the input field and does not automatically send a message. The plugin restores focus after the draft is populated.
  • Project-level discovery: Presets under .dsh/agent/ are only for discovery, are marked as unregistered, and are not selectable.
  • Source code review: The plugin does not modify the DSH core, but review the source code before use to ensure it meets the dependency requirements of the current environment.

Conclusion

dsh-quick-invoke streamlines the Skill and Agent invocation workflow in DSH Web through a unified / entry and candidate mechanism. It remains consistent with the DSH core architecture without disrupting existing tool invocation or security processes.