DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-roam-planner

Roam Planner

Trip planning workspace for DeepSeek Harness: map panel, itinerary store and Roam tools.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-roam-planner@0.2.3
READMECompatibilityVersions

Compatibility and provenance

Roam Planner is published as dsh-roam-planner and currently resolves to version 0.2.3. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
10/20/2026

Versions

0.2.3stable
10/20/2026
0.1.1stable
10/20/2026

Related plugins

Loading related plugins…

Latest
0.2.3
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
1.3 MB
Files
23
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
0
Last push
10/20/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in productivity-workflow.

Ds Harness Remoteds-harness-remoteEnd-to-end encrypted remote access to DeepSeek Harness and experimental Codex workspaces from desktop, web, and Android, with dsh-TUI Host support.Archive Manager@michengai/dsh-archive-manager归档、恢复、收藏和永久删除会话,并诊断损坏的会话日志。 · Archive, restore, favorite, and permanently delete sessions, and diagnose damaged session logs.Remotedsh-remoteRemote-work assistant for DeepSeek Harness: connect SSH (password/key/agent/keyboard-interactive, multi-hop ProxyJump), list hosts from ~/.ssh/config, pick a remote workspace, operate on it with 21 rw_* tools, conflict-aware mirror sync, an embedded PTY tConfig Managerdsh-config-managerBackup, restore, export, import, migrate and sync your DeepSeek Harness (DSH) configuration: settings, plugins, MCP servers, skills, agent presets and workspaces. One-click migration to another machine. DSH 配置一键备份、恢复、导出、导入、迁移与同步插件。

README

dsh-roam-planner

Trip planning inside DeepSeek Harness: talk a plan into existence, watch it land on a map, and adopt it when it looks right.

The agent edits a draft. A candidate is frozen for review, and only an explicit Adopt commits it — so a hallucinated revision can never overwrite a plan you already accepted.

Requirements

  • DeepSeek Harness ^0.2.1-rc.2 (engines.dsh)
  • No extra services: no Docker, no database, no API key required

Install

plugin_manager install_bundle <this package or directory>

Then restart DSH: the host half loads its tools and /roam/api routes at startup. After the restart the sidebar shows a Roam Planner icon, and the agent gains the roam_* tools.

First run

  1. Click the sidebar icon — an empty panel says to ask the agent for a plan.

  2. In any conversation:

    Plan two relaxed days in Suzhou for me and my parents

  3. The agent calls roam_get_snapshot, roam_prepare_draft (place names only — the host geocodes them) and roam_fill_routes. The panel polls every few seconds and follows along.

  4. roam_save_candidate freezes the plan; a green Adopt plan button appears.

  5. Adopt it. Editing afterwards reopens a draft, and the panel shows what changed against the adopted version.

Optional: Amap key

Place lookup and routing work without a key (OpenStreetMap + OSRM), but Chinese addresses resolve far better through Amap.

Settings → Roam Planner → Amap Web-service key (not a JS API key). The key is written to the host credential store under ROAM_PLANNER_AMAP_KEY, is never sent back to the page, and takes effect on the next lookup — no restart.

Configuration

Everything below lives in the plugin row's config in cordis.patch.yml:

KeyDefaultMeaning
basemapIdosmBasemap selected on first use
basemapsnullReplacement provider catalogue (array of {id, label, url, attribution, maxZoom, crs}); null uses the built-ins
geocodernominatimnominatim, amap, or off
amapKeynullDeployment-level key; a key saved in Settings wins
defaultCitynullCity appended to place names, e.g. 苏州
dataDirnullDirectory for the JSON fallback store

External MCP sidecars (optional)

Railway tickets and Xiaohongshu notes are not built in. The plugin speaks MCP itself — stdio and streamable http — so any sidecar can be attached through config, and servers start on the first call rather than at activation.

The agent reaches them through roam_mcp_servers, roam_mcp_tools and roam_mcp_call.

Railway: use the bundled proxy

server/railway-mcp.js is our own MCP server in front of the third-party 12306 sidecar. It owns the railway business API, so the caller gets a time window, a station filter and a row cap instead of an entire day of trains:

ParameterMeaning
from_station, to_station, dateThe query itself (date = YYYY-MM-DD)
time_from, time_toDeparture window, HH:MM
stationKeep trains serving this station (a city has many)
limitMaximum trains returned, default 10, max 50
- id: roam-planner
  config:
    mcpServers:
      - name: railway
        command: node
        args: ['<plugin>/server/railway-mcp.js']
        env:
          RAILWAY_PYTHON: 'C:\...\python.exe'        # has mcp-server-12306 installed
          RAILWAY_PYTHONPATH: 'C:\...\site-packages'

A raw streamable http sidecar is configured with transport: http and url. Add command (plus optional args/env) and the bridge starts the process on first use, waits for the port and then speaks HTTP — nothing has to be launched by hand.

SidecarSourceNotes
12306 ticketsdrfccv/mcp-server-12306The project states non-commercial use only
Xiaohongshu notesxpzouying/xiaohongshu-mcpNeeds a one-time login; serves HTTP on :18060

Tools

ToolEffect
roam_get_snapshotRead the session trip (creates an empty draft if none)
roam_prepare_draftApply a title/days change; stops need only a name
roam_save_candidateFreeze the draft for review
roam_adoptCommit the candidate
roam_fill_routesFill missing leg geometry and durations (Amap or OSRM)
roam_forecastDaily weather at each day's first stop (read-only)
roam_search_placesKeyword search for real places (needs an Amap key)
roam_mcp_servers / roam_mcp_tools / roam_mcp_callReach an attached MCP sidecar

Data

  • Trips live in the DSH storage domain ($DSH_HOME/storages/roam_planner.json), falling back to <dataDir>/.roam/store.json when the domain is unavailable.
  • The Amap key lives in the credential store, never in the trip data.
  • The page remembers the chosen basemap locally; that is a viewing preference, not trip data.

Troubleshooting

SymptomCause / fix
Panel says the host routes are unavailableThe host half failed to activate — restart DSH
Map is blank but the day list rendersBasemap tiles could not load (network or provider policy)
Routes are straight dashed linesNo route source answered; fill them with roam_fill_routes
Weather chips missingThe forecast has no data for those dates yet

License

MIT — see LICENSE. This is an independent implementation; see PROVENANCE.md for the boundary against the upstream project it was inspired by.