From a sentence to software that runs.
Reason. Decide. Build.
You say what you want. Dus carries it from a plan to checked code, a merged change, a live release and a watched system. Two moments are always yours: the calls that cost money or can’t be undone, and the first time anything goes live.
The loop, one task at a time.
-
Reason
DusDus reads the project and writes a plan, step by step, with an estimate of what it will cost. Each task goes to a model that can do it at the lowest cost, across the providers you have keys for, and the model is named.
Leaves: the plan, the model, the estimate
-
Decide
Dus, and you for the owner’s callsDus makes the technical decisions itself and says why, with the evidence. Anything that is yours (money, publishing, real people’s data, legal terms, keys) comes to you as an Owner’s Call.
Leaves: the reasons, and your answers
-
Build
DusDus writes the code in your project’s own framework, with a reason on every change. Each piece of work can run in its own copy of the project on its own branch, so two jobs never edit the same files.
Leaves: the diffs and their reasons
-
Checked
Your project’s own checksDus runs your tests, type checks and builds, and looks at pages in a real browser. The work counts as done only when a check ran after the last change and passed. A project with no checks still works; the proof then says what wasn’t checked.
Leaves: a Proof of Work
-
Merged
You decide what goes into mainDus commits, opens the pull request, watches the checks, fixes failures and answers review comments. It merges only when the required checks passed on that exact commit, and only if you allow merging.
Leaves: check results for the change and the merge result
-
Live
First deploy: your callDus deploys to a server you own over SSH, serves it over HTTPS, checks it answers and keeps the previous release, so rollback is one step. The first deploy to a target always waits for you. See Hosting and domains
Leaves: the release, its health check and the live address
-
Watched
Within the limits you setWhile Duscode is running, Watch checks your live system on a schedule: the address, the certificate, the domain, the last deploy and the server. One problem opens one incident, and Dus brings you a fix to approve. Watching with your computer switched off is coming.
Leaves: readings, incidents and a verified recovery
Some stages are still in beta. Which ones, from the evidence, is in the list below.
Build and ship: what is ready.
Each stage comes from the same record as Capabilities, so the two pages always agree.
- ShippedFrom an idea to a plan to a build
Describe what you want in your own words. Dus asks only the questions that are yours to answer, writes a plan in plain words, then builds it.
- ShippedReads, edits and runs commands in your project
Dus reads your code, makes changes and runs commands in the project folder, and asks before anything you haven’t allowed.
- ShippedBuilds with tests, and checks every change
After a change, Dus runs your project’s own checks (tests, type checks, builds) and only calls the work done when they pass. A project with no checks still works.
- ShippedProof of Work on every task
Each task ends with a record of the commands that ran, the checks that passed or failed, the files changed and what it cost.
- ShippedLocal CI on your machine, your server or your existing CI
Your checks run as CI on your computer or your server for each branch, with a record of every run, or in the CI you already use. No paid CI service needed.
- In betaVerified merges
Dus opens a pull request for finished work and merges it only when the required checks passed on that exact commit, if you allow merging.
- In betaLead mode: specialist helpers on larger work
For a larger job, Dus plans separate tracks and gives each to a specialist helper (security, quality, operations and others) on its own branch, reviews each one against its evidence and merges them in order.
- In betaStart work from GitHub, Linear or Jira issues
Pick an issue from GitHub, Linear or Jira and it becomes a new piece of work in its own session. Your tracker’s token never reaches the AI model.
- ComingLive agent cards: named AI teammates
Each AI helper at work shows as a live card with its name and role, always labelled as AI.
- ComingOne-click job catalogue and job profiles
Start common jobs in one click, each with a job profile that sets exactly what that job may touch.
- ComingBring your projects from other coding agents
Move a project you started with another coding agent into Duscode, with its instructions and history.
Larger work and your issue tracker
Lead mode. For a larger job, Dus plans separate tracks, runs them with specialist helpers on their own branches, reviews each one and merges them in order.
Work from your issues. Pick an issue from GitHub, Linear or Jira and it becomes a new piece of work in its own session. Your tracker’s token never reaches the AI model.
For engineers
Each helper works in its own git worktree with a scope it may not leave. Dus reviews each track before merging, merges in dependency order, and a plan survives a restart. Merges into main rest on checks of the exact commit: the pull request’s head and the prospective merge result, on hosted CI or on Local CI where the branch’s own rules accept it. Branch protection is never changed to get a merge through. Details: Lead mode and Shipping.
Owner’s Calls
Dus asks you, every time, before it:
- spends money: a paid service, a bigger plan, a domain, raising a budget;
- publishes: putting your app live, publishing code or a package;
- reaches real people: sending emails, messages or posts;
- touches real data: your live database, your customers’ data;
- accepts legal terms, or uses accounts and keys;
- changes DNS, runs a database migration or a destructive command on a server.
Each question arrives as one card: what Dus wants to do and why, what happens if you say yes or no, the cost, whether it can be undone, and Dus’s recommendation as the main button. Technical steps stay with Dus, and every one is recorded and can be undone. More in the docs: When Dus needs you.
Proof of Work
Every task that changes or runs something ends with a Proof of Work: what Dus did, what checked it, and what is still open. It is built only from what actually ran: the commands and their exit codes, your checks, the diffs, the browser and the cost. What Dus says it did is never evidence. If no test ran, the proof says Not checked.
The verdict is one of Verified, Partially verified (with what isn’t covered), Failed, Blocked or Not checked. Every claim opens what it stands on. A pull request opened from Duscode starts with the proof, and you can export it as Markdown or a single HTML report.
Where checks run
Checks run where you choose. Nothing has to change in how you work today.
- On your machine. Dus runs your project’s checks after each change. Local CI can also check each commit and open pull request on your computer, at low priority, and report the result on GitHub, GitLab or Bitbucket.
- On your server. Local CI runs the same way on a server of yours, with a record of every run.
- In the CI you already use. Dus watches your existing CI, reads failing logs and fixes what its change broke. If a project has no CI yet, Dus can write the config and asks before adding it.
Branch protection always applies. Dus never bypasses a required check or review, and never weakens a check to get a green result. Details: Shipping in the docs.
When something breaks
Watch opens an incident, Dus finds the cause and the fix goes round the same loop: reasoned, decided, built, checked, merged and live. Recovery counts only when the checks pass again from outside. A failed fix is never retried blindly: Dus stops and tells you what happened.