Using the workspace

Helper and worker agents

How Dus hands read-only side tasks to cheap helper agents and runs background worker agents in their own git worktrees, with their own budgets, merged only with your approval.

Dus can share out work. There are two kinds of agents it can start.

Helper Worker
Started with delegate spawn_worker
Can change files No, it only reads Yes, with your approval
Runs While Dus waits for it In the background, while Dus keeps working
Model fast tier (or standard) standard tier by default; frontier only with a stated reason
Typical job A wide search: "find every place we parse dates" A self-contained change: "add the CSV export endpoint with tests"

Helpers and workers are part of Pro (see Pricing and plans). During early access they're on for everyone.

Helpers

A helper is a cheap, read-only agent for side work, such as searching a large codebase or summarising a folder. It reports back to Dus, and only its findings join Dus's conversation, which keeps the main context small. Its cost counts towards the task.

Workers

A worker is a full agent with its own brief. It can edit files and run commands, and your approvals for its actions are labelled with its name.

  • Isolation. By default each worker gets its own git worktree, <project>/.worktrees/_workers/w-<name>, on branch duscode/w-<name>, started from the session's last commit. Uncommitted changes aren't included.
  • Background. Dus gets the worker's id at once and carries on. When the worker finishes, its report reaches Dus at Dus's next step.
  • Steering. Dus can message a running worker, or resume a finished one with its memory intact.
  • Limits. At most 3 workers run at once (workers.maxConcurrent). Each has its own task budget (workers.perTaskUsd, by default your per-task budget). Their spending counts towards the session cost and your daily budget.
  • Stop in the composer stops the workers too.

In the chat, workers appear as notices such as Worker csv-export started (standard, duscode/w-csv-export), and again when they finish, with their cost.

Merging a worker's work

Dus can look at a worker's diff and propose merging it. Merging always asks you, in every mode and whatever rules you saved. Before merging:

  1. any pending work is committed on the worker's branch
  2. your checkout must be clean and on the base branch
  3. the project's checks run

Conflicts are reported and the merge is undone, never resolved automatically. After a merge, the worker's worktree is removed and its branch is kept.

Things to know

  • A worker's report is information for Dus, not an instruction from you. Workers can't approve things on your behalf or ask you questions.
  • Workers don't survive a Duscode restart. Their branches and any unmerged worktrees do, so no work is lost.
  • When a session finishes, a worker's worktree is removed only if nothing would be lost.

Something missing or wrong? Email support@duscode.com.