dsh-worktable README

The project's README from github.com/Aisland-SJL/dsh-worktable. As one markdown file: README.md.

dsh-worktable 🖥️

English · 简体中文

An agent-project workbench for DeepSeek Harness — a sidebar app drawer that turns every project into dockable windows, plus a built-in control room that watches them all in real time.

📸 Screenshots

Control room 🖥️ Control room — the built-in default project: a live card grid watching every project (working / needs you / done) with glassmorphism cards on a blueprint grid
Worktable sidebar 🧩 Worktable sidebar — the app drawer: projects, shortcuts and the pinned control-room entry
Split workspace 🪟 Our projects — every project opens as a dockable split workspace (resident apps like Travel Atlas included)

✨ Feature tour

🧩 Sidebar app drawer

🪟 Dockable split workspace

🖥️ Control room (built-in default project)


At a glance

🧩 Plugin type Cordis plugin — host routes + web client, pure additive (no official plugin replaced)
🪟 Workspace engine Self-built split engine rendered into the host shell overlay seat
💬 Chat pane Reuses the host conversation — the plugin only selects sessions (sessions.open)
📡 Status data Mirror of the host session runtime snapshots (subscription-driven)
💾 State localStorage only (dsh.worktable.*); no workspace files touched
🎨 UI TypeScript + React (host externals) + vanilla CSS, dark-first with light theme

Quick start

  1. Install (pick one):

    A · one-liner (recommended) — straight from the GitHub Release tarball, no Git needed:

    dsh plugin --profile web add "https://github.com/Aisland-SJL/dsh-worktable/releases/latest/download/dsh-worktable.tgz"
    

    B · local clone (for hacking on the source) — link: accepts a local absolute path only (no spaces in the path):

    git clone https://github.com/Aisland-SJL/dsh-worktable.git
    dsh plugin --profile web add "link:<absolute path of the cloned dsh-worktable directory>/01_content"
    # e.g. cloned into D:\tools → dsh plugin --profile web add "link:D:/tools/dsh-worktable/01_content"
    

    Either way the add command registers dsh-worktable in the profile bundle list (writes to ~/.dsh, may ask for authorization). If the dsh command is missing, use npx @deepseek-ai/dsh instead.

  2. Restart the DSH web process, refresh the GUI

  3. Open the control room: click the pinned 🖥️ control-room card → bind one conversation (join existing or create new) → you get the live card grid

  4. Create projects: sidebar + → pick a layout preset, set a project folder


Architecture

One package ships the host Cordis plugin and the web client:


Development & testing

cd 01_content
npm install
npm run build     # lib/index.js + lib/client.js
node --check lib/index.js

Troubleshooting

Q: After a DeepSeek Harness update, the worktable fails to open / the service fails to start?

Don't panic: your data is safe — projects, bindings and layouts live in the browser (localStorage), and project files stay in your own project folders; upgrading or repairing never touches them. Pick the case that matches:

Case A: Harness works, only the worktable needs updating

Case B: Harness itself is down (service fails to start / "Failed to load plugins")

Help me fix DeepSeek Harness custom-plugin loading (the error is usually "Failed to load plugins" or the service failing to start):

  1. Run npx @deepseek-ai/dsh web to upgrade to the latest and start; if it works, done.
  2. If it still fails: open ~/.dsh/profiles/web/package.json, find every dependency starting with link:, and compute their common parent directory (e.g. if all plugins live under D:\projects, the parent is D:\projects).
  3. Create a node_modules directory junction in that parent pointing to ~/.dsh/profiles/node_modules: mklink /J "\node_modules" "%USERPROFILE%.dsh\profiles\node_modules"; if that parent already has a node_modules, retry one level up.
  4. Restart dsh web and open http://127.0.0.1:3080 to confirm the worktable is back.

This issue has been reported to the DeepSeek Harness team and is being fixed; upgrading after the fix ships resolves it permanently.

Point-to-annotate 📌

Every window title bar has a small annotate button (chat-bubble with a plus) next to the collapse toggle. Click it, your cursor becomes a blue speech bubble — click anywhere in a window to drop an input box, type what you want changed ("make this text bigger"), and hit ✓. The message is packaged (window number + coordinates + the clicked element + your request), filled into the chat input without sending — press Enter when ready, and the agent works through the annotation protocol (verify with a screenshot or the window, or ask one targeted question instead of guessing).

Known limits


Privacy

No telemetry, no network calls beyond the host APIs and the plugin routes. All user state stays in localStorage. Optional update check: a read-only GET to the GitHub Releases API (automatic at most once a day, plus a manual "Check now" button); nothing is uploaded, and it can be disabled in Settings.


License

MIT

dsh-worktable (Aisland-SJL/dsh-worktable)

Searching Database…

What is this?dsh-worktable is a plugin for DeepSeek Harness (DSH) that gives you a sidebar app drawer where every self-hosted project opens as a dockable, resizable window, plus a built-in control room that shows every project's live status (working / needs you / done) in one dashboard.
Is this a standalone app or a plugin for something else?It's a Cordis plugin that adds host API routes plus a web client on top of DeepSeek Harness's existing shell — it's purely additive and doesn't replace any official DSH plugin.
Do I need DeepSeek Harness already set up?Yes — this is a plugin for DeepSeek Harness (DSH); it only runs inside a running DSH web instance and reuses its existing chat/session system instead of having its own.
Is it fully stable on macOS?No — Windows is the only fully tested platform; macOS support is experimental, with the core file-path code adapted for cross-platform use but no completed end-to-end test on real macOS hardware, and the terminal pane is a plain PowerShell host with no native PTY parity.
Where does my project data and layout info go?Everything (projects, bindings, layouts) stays in the browser's localStorage with no telemetry; the only outbound call is an optional once-a-day read-only GitHub Releases check that can be disabled in Settings.
What exactly is the control room?It's a pinned, undeletable first project bound to one management conversation that shows a live 3-column card grid mirroring every other project's state (working / needs you / done), runtime, and subagent counts — it reads host session snapshots via an event-driven mirror with zero polling and zero token cost.
What is the point-to-annotate feature?Clicking the annotate button turns your cursor into a speech bubble; clicking anywhere in a window packages the window number, coordinates, clicked element and your typed request into the chat input (unsent) so any agent can act on it without a verbal location description.
What panes can I put in a dockable workspace besides the terminal?Built-in panes include a file explorer, terminal, browser, an animation site viewer, and a custom window where you describe a requirement and the agent builds the result, which auto-mounts into that window and locks it.
Size
4.2 MB
Stars
762
Age
2mo
Commits · 90 Days