DeepSeek Harness: Community Plugins
Last updated: 2026-08-31
DSH's "everything is a plugin" is not just a technical architecture — it's an ecosystem vision. The official team provides core tools, while the community contributes unlimited possibilities. From database operations to API integration, from code analysis to automated deployment, community plugins continuously expand DSH's capability boundaries.
📋 Prerequisites: Completed 06-tools.md, familiar with tools and plugin basics
1. What You'll Learn
- Plugin marketplace and the dsh-plugin GitHub topic
- Community plugin installation and management
- Recommended community plugins
- Plugin security evaluation methods
- Plugin development and publishing flow
2. Plugin Marketplace and Discovery
(1) Ways to Discover Plugins
DSH has no centralized plugin marketplace. Plugins are discovered through:
| Channel | Description | URL |
|---|---|---|
| GitHub Topic | Repositories tagged dsh-plugin |
github.com/topics/dsh-plugin |
| Official Docs | Recommended plugin list | docs.deepseek.com/dsh/plugins |
| Community Forum | User sharing and discussion | community.deepseek.com |
| npm Search | Packages with @dsh-plugin/ prefix |
npmjs.com/search?q=@dsh-plugin |
(2) Plugin Naming Convention
Community plugins follow a unified naming convention:
npm package name: @dsh-plugin/plugin-name
GitHub repository name: dsh-plugin-name
Configuration reference name: plugin-name
Examples:
npm: @dsh-plugin/database → GitHub: dsh-plugin-database
npm: @dsh-plugin/git-enhanced → GitHub: dsh-plugin-git-enhanced
npm: @dsh-plugin/docker → GitHub: dsh-plugin-docker
(3) Searching Community Plugins
▶ Example 1: Search Plugins with GitHub CLI
# Search repos with dsh-plugin topic
gh repo list --topic dsh-plugin --limit 20
# Sort by stars
gh search repos "dsh-plugin" --sort stars --limit 20
▶ Example 2: Search Plugins with npm
# Search dsh plugin packages
npm search @dsh-plugin
# View specific plugin details
npm info @dsh-plugin/database
3. Installing Community Plugins
(1) Installation Methods
DSH supports three plugin installation methods:
| Method | Command | Description |
|---|---|---|
| npm Install | dsh plugin add @dsh-plugin/name |
Auto-download from npm |
| GitHub Install | dsh plugin add github:user/repo |
Install from GitHub |
| Local Path | dsh plugin add ./path/to/plugin |
Install locally developed plugin |
▶ Example 3: Installing a Database Plugin
# Install from npm
dsh plugin add @dsh-plugin/database
# Installation output
📦 Installing @dsh-plugin/database@1.2.0...
✅ Plugin installed successfully!
Available tools:
- database.query: Execute SQL queries
- database.migrate: Run database migrations
- database.schema: Inspect database schema
(2) Installing from Source
# Install from GitHub repository
dsh plugin add github:alice/dsh-plugin-redis
# Install specific branch
dsh plugin add github:alice/dsh-plugin-redis#feature/cluster-support
# Install specific version tag
dsh plugin add github:alice/dsh-plugin-redis#v2.1.0
(3) Managing Installed Plugins
▶ Example 4: Plugin Management Commands
# List installed plugins
dsh plugin list
# Output
📦 Installed Plugins:
@dsh-plugin/database v1.2.0 ✅ enabled
@dsh-plugin/redis v2.1.0 ✅ enabled
@dsh-plugin/git-enhanced v0.8.0 ⚠️ disabled
# Disable plugin (without uninstalling)
dsh plugin disable @dsh-plugin/redis
# Enable plugin
dsh plugin enable @dsh-plugin/redis
# Uninstall plugin
dsh plugin remove @dsh-plugin/database
# Update plugin
dsh plugin update @dsh-plugin/database
(4) Managing Plugins via Configuration File
Plugins can also be managed through the configuration file:
# dsh.config.yaml
plugins:
# npm plugin
- name: "@dsh-plugin/database"
version: "^1.2.0"
enabled: true
config:
default_connection: "postgresql://localhost/mydb"
# GitHub plugin
- name: "@dsh-plugin/redis"
source: "github:alice/dsh-plugin-redis"
version: "v2.1.0"
enabled: true
config:
host: "localhost"
port: 6379
# Local plugin
- name: "my-custom-tool"
source: "./plugins/my-custom-tool"
enabled: true
4. Recommended Community Plugins
(1) Database Category
| Plugin | Function | Stars | Status |
|---|---|---|---|
| @dsh-plugin/database | SQL queries, migrations, Schema inspection | 2.1k | ✅ Active |
| @dsh-plugin/redis | Redis operations, cache management | 890 | ✅ Active |
| @dsh-plugin/mongodb | MongoDB document operations | 650 | ✅ Active |
| @dsh-plugin/prisma | Prisma ORM integration | 430 | ⚠️ Experimental |
▶ Example 5: Database Plugin Usage
# dsh.config.yaml
plugins:
- name: "@dsh-plugin/database"
config:
connections:
main: "postgresql://localhost/myapp"
analytics: "postgresql://localhost/analytics"
The Agent can directly query the database:
👤 Alice: Query the 10 most recently registered users from the users table
🤖 Agent:
🔧 Using tool: database.query
→ Connection: main
→ Query: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
→ Results: 10 rows
(2) DevOps Category
| Plugin | Function | Stars | Status |
|---|---|---|---|
| @dsh-plugin/docker | Docker container management | 1.5k | ✅ Active |
| @dsh-plugin/k8s | Kubernetes resource operations | 980 | ✅ Active |
| @dsh-plugin/ci | CI/CD pipeline management | 560 | ✅ Active |
| @dsh-plugin/terraform | IaC infrastructure management | 340 | ⚠️ Experimental |
(3) Code Quality Category
| Plugin | Function | Stars | Status |
|---|---|---|---|
| @dsh-plugin/linter | ESLint/Pylint integration | 1.8k | ✅ Active |
| @dsh-plugin/test-runner | Test running and coverage | 1.2k | ✅ Active |
| @dsh-plugin/code-metrics | Code complexity analysis | 780 | ✅ Active |
| @dsh-plugin/deps-audit | Dependency security audit | 920 | ✅ Active |
▶ Example 6: Linter Plugin Usage
👤 Bob: Check code quality in the src/ directory
🤖 Agent:
🔧 Using tool: linter.check
→ Directory: src/
→ Config: .eslintrc.json
→ Results: 12 warnings, 3 errors
Errors:
- src/utils/format.ts:45 — Unexpected any type
- src/routes/api.ts:128 — Missing return type
- src/models/user.ts:23 — Unused import
(4) API Integration Category
| Plugin | Function | Stars | Status |
|---|---|---|---|
| @dsh-plugin/github | GitHub API operations | 2.3k | ✅ Active |
| @dsh-plugin/jira | JIRA task management | 560 | ✅ Active |
| @dsh-plugin/slack | Slack message sending | 890 | ✅ Active |
| @dsh-plugin/notion | Notion page operations | 450 | ✅ Active |
5. Plugin Security Evaluation
(1) Evaluation Framework
Always perform a security evaluation before installing any community plugin:
graph TD
A[Discover Plugin] --> B[Review Source Code]
B --> C[Check Dependencies]
C --> D[Review Permissions]
D --> E[Evaluate Maintenance Status]
E --> F{Security Evaluation Passed?}
F -->|Yes| G[Install and Use]
F -->|No| H[Abandon or Fix Before Using]
(2) Evaluation Checklist
| Check Item | Description | Risk Level |
|---|---|---|
| Source code review | Read main code to confirm no malicious logic | 🔴 Critical |
| Dependency check | Verify dependencies in package.json are trustworthy | 🔴 Critical |
| Permission review | What file/network/system permissions the plugin requests | 🟡 Important |
| Maintenance status | Last update time, Issue response speed | 🟡 Important |
| Community rating | GitHub Stars, downloads, user feedback | 🟢 Reference |
| License | Open source license type and restrictions | 🟢 Reference |
(3) Source Code Review Key Points
▶ Example 7: Reviewing Plugin Source Code
# Clone plugin repository for review
git clone https://github.com/user/dsh-plugin-example.git
cd dsh-plugin-example
# Check main entry file
cat src/index.ts
# Check dependencies
cat package.json | grep -A 20 "dependencies"
# Check for suspicious network requests
grep -r "fetch\|http\|axios\|request" src/
# Check for filesystem operations
grep -r "fs\.\|readFile\|writeFile\|exec\|spawn" src/
# Check for environment variable access
grep -r "process\.env" src/
(4) Plugin Permission System
DSH plugins must declare their required permissions:
// Plugin permission declaration
export default definePlugin({
name: 'dsh-plugin-example',
permissions: [
'fs.read', // Read files
'fs.write', // Write files
'network.outbound', // Outbound network requests
'shell.execute', // Execute Shell commands
'env.read' // Read environment variables
],
// ...
});
When installing, DSH shows the permission requests:
📦 Installing @dsh-plugin/example@1.0.0
⚠️ This plugin requests the following permissions:
✅ fs.read — Read files in workspace
⚠️ network.outbound — Make outbound HTTP requests
🔴 shell.execute — Execute shell commands
Continue installation? (y/n)
6. Plugin Development and Publishing
(1) Plugin Development Template
▶ Example 8: Creating a Plugin Using the Template
# Use the official template
npx @deepseek-ai/create-dsh-plugin my-plugin
# Output
📁 Creating plugin: my-plugin
├── src/
│ └── index.ts
├── package.json
├── tsconfig.json
└── README.md
✅ Plugin scaffolded! Run:
cd my-plugin
npm install
npm run dev
(2) Plugin Project Structure
dsh-plugin-my-plugin/
├── src/
│ ├── index.ts # Plugin main entry
│ ├── tools/ # Tool definitions
│ │ └── my-tool.ts
│ └── services/ # Service definitions
│ └── my-service.ts
├── package.json
├── tsconfig.json
├── dsh-plugin.yaml # Plugin metadata
└── README.md
(3) Publishing to npm
# Build
npm run build
# Publish
npm publish --access public
# Add GitHub Topic
# In GitHub repository settings, add topic: dsh-plugin
(4) dsh-plugin.yaml Metadata
name: dsh-plugin-my-plugin
version: 1.0.0
description: "A custom DSH plugin for database operations"
author: "Alice"
license: "MIT"
repository: "https://github.com/alice/dsh-plugin-my-plugin"
keywords:
- dsh-plugin
- database
- tools
permissions:
- fs.read
- network.outbound
compatibility:
dsh: ">=0.5.0"
❓ FAQ
dsh plugin disable), then check the error logs. If it's a compatibility issue, try installing a compatible version or contact the plugin author.priority field in configuration.dsh plugin add ./path/to/plugin to install local plugins, or configure an internal npm registry.dsh plugin update <name> to update a single plugin, or dsh plugin update --all to update all plugins. We recommend backing up your workspace before updating.📖 Summary
- Community plugins are discovered via GitHub topic
dsh-pluginand npm@dsh-plugin/prefix - Three installation methods: npm, GitHub, local path
- Common plugin categories: database, DevOps, code quality, API integration
- Six security evaluation factors: source code, dependencies, permissions, maintenance status, community rating, license
- Plugins must declare required permissions; permission requests are shown during installation
- Develop plugins using the
create-dsh-plugintemplate; publish to npm + GitHub
📝 Exercises
1. ⭐ Basic: Search the dsh-plugin topic on GitHub, list 3 plugins that interest you most, and describe their functionality and why you'd want to use them.
2. ⭐⭐ Intermediate: Install a community plugin (e.g., @dsh-plugin/database), configure the connection information, and have the Agent query a piece of data through the plugin. Record the installation and configuration process.
3. ⭐⭐⭐ Challenge: Develop a simple DSH plugin (e.g., a "current time query" tool), use the create-dsh-plugin template to create the project, write the tool logic, install it locally, and have the Agent successfully invoke it.