A persistent canvas for DeepSeek Harness.
Worka brings notes, tools, and ongoing agent work together on one desk.
Worka is a DSH plugin. Turn conversations into notes, build small interactive tools, and keep related work together on a spatial canvas. Your existing DSH host owns models, credentials, sessions, permissions, and upgrades.
- Think on a canvas. Arrange, resize, pin, and group notes; keep ordinary conversations lightweight.
- Keep useful results. Save research, plans, and task progress in persistent notes with shared state.
- Build interactive notes. Notes can contain React views and background actions, with built-in Todo, weather, and execution-desk templates.
- Continue work across sessions. Connect notes, schedule actions, and follow progress without keeping a browser tab open.
- Use native DSH conversations. Model selection, streaming, attachments, approvals, and questions come from the host.
Worka is designed for a single user running trusted note code. Background work needs a running DSH host and an awake computer. Closing the browser does not stop it; stopping DSH does.
You need:
- A working DSH Web profile, with your model provider configured in DSH.
- Node.js 24+ and Bun 1.3.11+ available to the host. Bun builds interactive notes.
- DSH
0.1.5-rc.2(the supported prerelease baseline).
Install from a release archive, or build the same archive from source. The package is not yet published to npm. From a checkout of this repository:
bun install --frozen-lockfile
bun run packInstall the resulting archive into your existing Web profile:
dsh plugin --profile web add ./artifacts/dsh-workbench-plugin-0.1.1.tgz
dsh --profile webIf DSH is already running, wait for active tasks to finish and restart it through your normal host workflow. Open /workbench/ on the same address as DSH, for example http://127.0.0.1:3080/workbench/ when the host uses port 3080. There is no separate Worka server or port.
Replace web with your existing Web profile name. A bare new profile may not include the Web services this plugin needs; follow the DSH profile documentation to set up the host first.
The dev loop boots the plugin from dist/ on a standalone DSH install, so the running server does not depend on this repository's node_modules/.bin/dsh:
npm i --prefix .workbench/dsh-rc2 @deepseek-ai/dsh@0.1.5-rc.2 # once
bun scripts/start.ts --build # build, then boot on :4280bun scripts/start.ts --help lists the flags: --port, --patch, --dsh, --replace (stop whatever holds the port first), --dump. Edits under src/web/** only need bun run build plus a browser reload; anything under src/ outside src/web also needs a restart. The script warns when src/ is newer than dist/plugin.js.
Double-click an empty area of the canvas and ask:
Create an ideas note with two items: organize my research and plan a small project. Make the items editable and let me add more.
Then:
Add a progress view to this note and keep its existing contents.
Chat remains a native DSH conversation. A persistent note is created when you ask for one. Editing note code produces a draft; activate it explicitly to apply the change.
The default package contains Todo, weather, and the execution desk. Templates are available to the agent; they are not automatically placed on your canvas. Ask it to create a note from a named template. Weather uses Open-Meteo after you choose a city, with its existing 30-minute refresh schedule; network-based location is used only when you choose it. The public endpoint has separate service terms.
Service integrations live in independent repositories and install through DSH. Backend plugins register with the generic Worka extension service. Read each plugin README for its MCP/tool installation guides, credentials and verification steps; missing dependencies must be resolved before reporting the note as usable. There is no automatic updater or import/export system.
The bundle registers the Worka plugin and a SQLite backend in the host. Defaults:
| Setting | Default | Purpose |
|---|---|---|
dataRoot |
workbench under DSH home |
Note files, builds, and runtime metadata |
SQLite path |
workbench/state.sqlite under DSH home |
Persistent Worka state |
workspaceRoot |
Host working directory | Default workspace for new conversations |
bunPath |
bun |
Executable used to build notes |
desktopNotifications |
false |
Optional macOS notifications |
tickIntervalMs |
1000 |
Scheduler polling interval |
Override the bundle in your profile's cordis.patch.yml, for example:
- id: workbench
config:
workspaceRoot: /absolute/path/to/projects
bunPath: /absolute/path/to/bun
desktopNotifications: trueWhen changing the storage location, update both workbench.dataRoot and workbench-sqlite.path. Keep one owner for each Worka database; do not point two running hosts at the same data directory.
Models and API keys are configured in DSH. Worka does not create a separate credential file or default model. Switching a default model affects new conversations; existing conversations use their native DSH model selector.
Upgrade DSH using the installation method you originally chose. Worka does not download, launch, or upgrade a second host.
To update Worka, build a new archive and install it with the same dsh plugin --profile web add <archive> command, then restart the host when its tasks have finished.
To remove the plugin:
dsh plugin --profile web remove @dsh-workbench/pluginRestart the host to unload it. Uninstalling does not intentionally delete your persistent Worka data.
Used the old standalone development launcher? Read Migration before changing hosts or data paths. Notes and native conversation history live in different stores.
bun install --frozen-lockfile
bun run typecheck
bun run packInstall the archive into a disposable DSH Web profile for integration checks. Rebuild and reinstall after changes; DSH remains the owner of the running process. The @deepseek-ai/dsh development dependency supplies a reproducible integration toolchain, not an application runtime shipped by Worka.
Run only the tests relevant to your change, for example:
bun test tests/integration/live-transcript.test.tsSee Contributing for packaging and verification, Authoring for note APIs, Templates for starting points, and Collaboration for cross-note work.
Early-stage, prerelease software. Plugin installation and compatibility are checked against a pinned DSH version; compatibility with future host versions must be verified. A host restart does not resume arbitrary JavaScript call stacks or guarantee that an interrupted external operation can be repeated safely.
MIT.
The product is called Worka. The package name @dsh-workbench/plugin, /workbench/ route, and existing storage identifiers are retained for compatibility.
Open a Worka conversation and give the agent a GitHub repository URL. It can follow the bundled installation guide to check prerequisites, install the DSH plugin, create the note and verify its actions. If access, configuration or adapter implementation is missing, it should explain what is needed. See repository plugin conventions.
Updates remain manual through the agent. Removing a plugin package preserves existing note instances and their data.
See the installation walkthrough. After loading the plugin in the same DSH Web profile, use 打开 Worka at the bottom of the DSH sidebar (W when collapsed). It opens /workbench/ on the same authenticated host.