dure --help describes the commands available in your installed version.
Start work from a project folder
--project or --path, the backend resolves the current working directory.
Inside an identified Dure terminal pane, omitting --space places the new pane in the current Space. From an ordinary terminal or CI environment without that pane context, the run is headless. A headless run uses the provider’s chat runtime when the execution host has one, so it doesn’t need the Dure app on that host; read it with dure transcript <agent-id>, using the agentId the run prints. If the connected app on the same machine adopts the run, it stays a terminal session. Use --space with a connected Space’s exact name or ID when you want an explicit destination.
Inspect work before sending more input
dure read reads a session’s screen; dure transcript reads its available conversation transcript. Use the session/workspace identifiers returned by the listing when selecting a managed session. A successful launch or input-delivery receipt is not proof the task completed.
If you also work on SSH backends, dure ls --all-backends lists the sessions on every configured backend in one table with a BACKEND column. A backend that can’t be reached is reported with its error and doesn’t hide the others. With --json, each session carries backendProfileId.
Wait for the agents you started
When an agent runsdure run from its Dure terminal pane, the new Run records that agent as its parent. The calling agent can then wait for all of its children at once instead of polling each one:
dure runs show <agent> shows a Run’s parent. Pass --no-parent to start an unlinked Run, or --parent <agent> to link a Run to another agent on the same backend. Children on the chat runtime can’t be waited on yet; read them with dure transcript.
The parent doesn’t have to wait to hear back. Each time a terminal child finishes a turn, needs input or approval, exits or is stopped, Dure sends one message to the parent’s inbox and wakes it. A finished turn or exit includes the child’s final response and any GitHub pull request links in it. Each result is sent once, even if Dure restarts. If the parent’s own session has ended, nothing is sent.
Move between agents from a terminal
dure tui lists your agents across Spaces with their state, account and project, including over SSH without the app. Select one and press Enter to attach. Press Ctrl-\ then d to detach and return to the list; the agent keeps running. Without the app on that machine, the account reads unknown and the project is the name of the agent’s working folder.
If you also work on SSH backends, dure tui --all-backends lists the agents on every configured backend in one list with a BACKEND column, and Enter attaches through the agent’s own backend. A backend that can’t be reached is named below the list and doesn’t hide the others.
Claim what you are working on
When several agents or bots share a repository, each can declare what it is working on so the others see overlaps before they start:dure claim engine-2 --issue 2 --paths 'Sources/Engine/**'. dure claim lists other claims in the same repository that share the issue, branch or worktree, or whose paths can name the same file, and exits with 3 when it finds any. --check reports overlaps without recording a claim, so a bot can test before it starts. Claims are advisory: nothing is locked, and a claim stays until it’s released. Quote path patterns so your shell doesn’t expand them.
Schedule recurring tasks
From the project folder:--disabled if you want to save the schedule without enabling recurring execution. Scheduled runs use isolated Git worktrees. A scheduled agent hibernates after 30 minutes of confirmed idle and can be woken with its conversation intact. Once it has stopped, its worktree is removed only if it has no uncommitted or untracked changes and every commit on it is already on the default branch; otherwise it is kept. Use dure schedule inspect with a returned run key to read the retained report. On a machine with the Dure app, a scheduled run is a terminal session. On a host with only the Dure CLI, such as a server or VM, it starts on the provider’s chat runtime when the provider has one there, like a headless run, and dure schedule runs shows the dure runs show command for it. Idle hibernation and worktree removal apply only to terminal sessions. If the provider is not signed in on that host, the run shows Start blocked; sign in there with the provider’s CLI, then run it again.
To pause it later without losing its history, run dure schedule set daily-review --disabled --expected-revision N with the revision shown by dure schedule show; --enabled resumes it. The same command can change --cron, --timezone, --name or --prompt.
The execution service and machine must be available. Closing the app’s view is different from stopping that service; a sleeping or powered-off machine cannot run tasks normally.
Select a remote backend
Use--backend with a configured backend ID for SSH execution. The selected backend resolves the project path and needs its own provider setup. Check dure run --help for explicit permission overrides; keep them appropriate to the task.
For structured messages and decisions, continue with agent coordination.