Introduction¶
The DSH ecosystem emphasizes “everything is a plugin.” Developers or users often need a complete scenario (such as a “browser development environment”), rather than installing plugins one by one. dsh-recipe aims to package dsh plugins into scenario recipes, using tools to list, search, apply, and compose these environments for one-click deployment.
Core Features¶
- Browse all recipes: View scenario configurations provided by the community.
- Search recipes by need: Match the required environment using natural language.
- Expand a recipe: Expand a recipe into an ordered plugin list and a sequence of installation commands.
- Merge recipes: Combine multiple recipes into a complete environment, automatically deduplicating and preserving order.
- Local execution: Implemented with pure logic, with zero network requests, zero dependencies, and zero file writes.
Installation and Enablement¶
Installing this plugin requires specifying a profile. Run the following command to add dsh-recipe to the current environment:
dsh plugin --profile <profile> add dsh-recipe
Usage¶
After installation, use the recipe tool to perform operations. The tool supports the following actions:
| Action | Parameters | Behavior Description |
|---|---|---|
list |
— | List all available recipes |
search |
need |
Match recipes by natural-language requirement |
apply |
recipeId or need |
Expand the recipe to generate an ordered plugin list and a sequence of installation commands |
compose |
recipeId1,recipeId2 |
Merge multiple recipes into a complete environment (deduplicate and preserve order) |
The apply and compose commands usually output a menu-style list, meaning one dsh plugin add command per line. A model can execute them directly or ask the user for confirmation.
Built-in Recipes¶
The plugin includes 10 common scenario recipes, with the following plugin counts:
| id | Name | Plugin Count |
|---|---|---|
browser-dev-env |
Browser development environment | 4 |
notification-suite |
Notification suite | 6 |
academic-writing |
Academic writing kit | 5 |
mobile-remote |
Mobile remote control | 3 |
security-hardening |
Security hardening suite | 4 |
memory-kit |
Memory persistence kit | 5 |
fun-break |
Fun break | 4 |
model-routing |
Model routing optimization | 5 |
workflow-automation |
Workflow automation | 5 |
market-manager |
Plugin market management | 5 |
Technical Implementation and Dependencies¶
- Implementation: Pure logic implementation (
lib/recipe.js), with no dependency on external services. - Data sources: Recipe data is stored in
lib/recipe-data.json, and plugin mappings are stored inlib/plugins.json. - Recipe format: JSON format, including
id,name,description,tags, and apluginsarray (the array order is the installation order). - Dependency libraries: As a DSH plugin, it requires the following peer dependencies at runtime:
@deepseek-ai/cordis@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery- Security features: Fully local execution, no network requests, no file write operations, and no processing of sensitive information.
Testing¶
Run the following command to verify the plugin functionality:
node test/recipe.test.mjs