Bundle
dsh-serena
DeepSeek Harness profile bundle: Serena MCP integration — symbolic code intelligence via serena-agent, plus the Claude Code hooks bridge for project activation and tool-usage reminders
- Source
- akash-digitavision
- License
- MIT
- Updated
- Updated 8 days ago
Readme
# dsh-serena
[](https://dsh-plugin.org/plugins/akash-digitavision/dsh-serena)
**One-line value:** install this and every DeepSeek Harness agent gains IDE-grade symbolic code intelligence — `find_symbol`, `find_referencing_symbols`, `rename_symbol`, `replace_symbol_body`, `get_symbols_overview` and more — via the [Serena](https://github.com/oraios/serena) MCP server, plus session hooks that keep agents actually using it.
**Capability category:** 工具与能力 (Tools & Capabilities)
**License:** MIT · **Compatibility:** DSH ≥ 0.2.0-rc.2 (bundles API); Windows/macOS/Linux; Python ≥ 3.11 for the Serena CLI
## What it adds to every agent on the profile
| Row | Module | Purpose |
|---|---|---|
| `mcp-serena` | `@deepseek-ai/dsh-mcp-client` | Spawns the Serena MCP server (stdio) → `mcp__serena__*` tools: symbol search & overview, find references/implementations/declarations, rename & safe-delete symbols, symbolic editing, per-project memories, diagnostics |
| `dsh-hooks-claude-code` | `@deepseek-ai/dsh-hooks-claude-code` (dependency of this bundle) | Runs `~/.dsh/hooks.json`: session-start project activation prompt, tool-drift reminders toward Serena's tools, stop cleanup |
Launched with `--context claude-code --project-from-cwd`: each session auto-activates its workspace as the Serena project, and tools that duplicate DSH built-ins (file read/search/shell) stay hidden.
## Install
**One command (recommended):**
```bash
dsh plugin --profile web add github:akash-digitavision/dsh-serena
```
or in **Settings → Plugin Market** (DSH Plugin Hub), search for `dsh-serena`.
### Prerequisites
1. **The Serena CLI** — the official install puts `serena` on your PATH (the bundle's default):
```bash
# install uv first: https://docs.astral.sh/uv/getting-started/installation/
uv tool install -p 3.13 serena-agent
```
Custom location? Point the bundle at it:
```powershell
setx SERENA_COMMAND "C:\path\to\serena.exe"
```
> **Windows note (Smart App Control / WDAC):** application-control policies may block uv-managed unsigned Python builds. Workaround: build a venv from a trusted/signed interpreter, `pip install serena-agent` into it, and `setx SERENA_COMMAND` to that venv's `serena.exe`.
2. **The hooks file** `~/.dsh/hooks.json` (Windows: `%USERPROFILE%\.dsh\hooks.json`) — copy [`hooks.template.json`](./hooks.template.json):
```json
{
"SessionStart": [{ "matcher": "", "hooks": [{ "type": "command", "command": "serena-hooks activate --client=claude-code" }] }],
"PreToolUse": [{ "matcher": "", "hooks": [{ "type": "command", "command": "serena-hooks remind --client=claude-code" }] }],
"Stop": [{ "matcher": "", "hooks": [{ "type": "command", "command": "serena-hooks cleanup --client=claude-code" }] }]
}
```
`serena-hooks` ships with `uv tool install serena-agent`. If it is not on the DSH process PATH, use the absolute path to the executable in the template.
Then **restart DeepSeek Harness**. Verify by asking an agent: *"activate this project with serena"*.
## Permissions & external services
- Spawns a local `serena` MCP server process (language servers may download per-language tooling on demand)
- Reads/writes only your activated project workspaces; memories stored per-project in `.serena/`
- No accounts, no API keys, no telemetry
## Known limitations
- The hooks-bridge dependency is version-pinned (`@deepseek-ai/dsh-hooks-claude-code` `0.2.0-rc.2`); if your DSH runtime is newer and install is rejected for peer incompatibility, match the version to your runtime
- First symbol query in a new project downloads that language's language server — first call can be slow
## Uninstall
Remove `dsh-serena` from the profile `dsh.profile.bundles` + `dependencies` (or `dsh plugin remove`), then restart the host. The Serena CLI, venv and hooks file are independent of the bundle.
## Credits
Upstream: [oraios/serena](https://github.com/oraios/serena) (MIT / GPL-3.0) — this bundle only wires it into DeepSeek Harness.
Install
dsh plugin --profile web add github:akash-digitavision/dsh-serena
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-serena from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.