The relationship is simpler than most people assume: dsh web is an alias for dsh --profile web. Same kernel, different surface.
dsh web # same as dsh --profile web
Where they differ
| CLI profiles (headless / tui) | web profile | |
|---|---|---|
| Output shape | Print once and exit (headless), or an in-terminal UI (tui) | A browser session you can scroll, paste into, and revisit |
| Good for | One-shot tasks, scripting, CI, piping into other commands | Long output, back-and-forth, copying large blocks |
| Intermediate steps | Usually collapsed to the final result | Tool calls and state visible as they happen |
| Record keeping | You redirect it yourself | Sessions persist under $DSH_HOME/sessions |
The same task from the command line:
dsh --profile headless "count the files in the current directory"
It answers and exits, which makes it scriptable. The same job in the web UI costs you a click but shows how it got there.
Choosing
- Automating, piping, scheduling → CLI.
- Reading long results, asking follow-ups, pasting output to someone → web.
- Asking why it answered that way → web, where the steps are visible.
Do not expect character-identical output. Context is assembled differently, so wording diverges. Compare conclusions and tool-call counts, not phrasing.