Commands
The qialike CLI flags, the update and plugin families, and the slash-command panel.
qialike has two command surfaces: flags you pass to the program, and slash commands you
type into the composer once it is running.
CLI flags
qialike # start a NEW session on the hero screen (never auto-resumes)qialike resume # continue the newest session in this directoryqialike --workspace ~/proj # operate in ~/proj (its own sessions)qialike --resume <sessionId> # resume a specific persisted sessionqialike --model deepseek-flash # pick a model (DeepSeek V4.1 Flash)qialike --help| Flag | Meaning |
|---|---|
| (none) | Start a new session and show the hero screen. A bare launch never auto-resumes. |
resume | Continue the most recent session in the current directory and open the conversation view directly. |
--workspace <dir> | The directory the agent operates in. Defaults to the invoking directory; each workspace keeps its own sessions. |
--resume <sessionId> | Open one specific persisted session. Always wins over resume. |
--model <model> | Override the model for this run, e.g. deepseek-flash (DeepSeek V4.1 Flash). |
--help | Print the width-aware help text and exit without binding a terminal. |
--dump-config | Print the composed profile layers (embedded layer + your own) and exit. |
--no-project-overlay | Ignore a repository’s .dsh/tui.cordis.patch.yml for this run. |
There are also a few forwarded subcommands:
qialike web [flags] # open the DeepSeek Harness browser UI (needs dsh on PATH)qialike upgrade [version] # upgrade (see "Updates")qialike plugin <command> # manage skills and MCP rows (see "Plugins")qialike uninstall # clear $DSH_HOME (default ~/.dsh, keeps bin/) and the PATH tracesAn unknown positional argument fails loud with a hint rather than silently starting a fresh
session — qialike resme is an error, not a new session.
qialike web forwards its web flags (--port / --no-open / …) to the installed dsh CLI
unchanged; --host 0.0.0.0 is refused outright by the web profile (exposing it to the network is
exposing remote code execution), so for remote access use a loopback binding plus an SSH tunnel —
see Headless / remote access.
The command needs a dsh CLI on the system: on PATH, or pointed at by $QIALIKE_DSH, at a
version no older than the harness embedded in this build. It checks dsh first — when it is
missing, or its version differs from the embedded one, a warning prints the matching install command
(npm install -g @deepseek-ai/dsh), and on a version difference the command exits without starting
the web server.
Updates
An install that can update itself does so automatically: about a second after launch a background child process checks once for a newer release (it never blocks the UI, and failures are silent). Only a patch release is installed silently; a minor or major release is announced in the status line only.
- What automatic updates require: that something owns the binary — the
curlinstaller’s copy in~/.dsh/bin(Linux/macOS) or the copy under npm’s global prefix (including Windows). A locally built checkout build and a hand-unpacked binary are never replaced. - Turning it off, or switching to notice-only: the
qialike-update.autosetting takestrue(default — patch releases installed silently),false(no check at all) or"notify"(announce only, never install).QIALIKE_DISABLE_AUTOUPDATE=1disables it globally, andQIALIKE_ALWAYS_NOTIFY_UPDATE=1forces notice-only. - Updating by hand:
qialike upgrade # move to the newest releaseqialike upgrade <version> # install a specific one (v-prefix accepted)qialike upgrade --check # report only, install nothing/upgrade does the same from inside the TUI. Whether these can actually install depends on who owns
the binary, not on the platform: an npm copy is replaced by npm (on Windows too), the
~/.dsh/bin copy by the installer (POSIX only), and a copy nobody owns is refused with a
suggestion to reinstall through the installer. See Updates for the full story.
On Windows most installs update by hand only: the installer is bash and a running .exe cannot be
replaced, so the installer’s copies and hand-unpacked ones only check — qialike upgrade --check
reports the version and prints the download links, and updating means
replacing the file by hand: download the new .zip, quit
qialike, replace qialike.exe. An npm-installed copy is the exception (it installs patches
automatically and qialike upgrade hands the job to npm) — see
Updates → Updating, by how you installed.
See Config → Data and responsibility for the harness telemetry that shares these outbound requests.
Plugins
Everything in qialike is a plugin — the interface itself included. Extensions therefore need no rebuild, and both channels take plain data files:
- Skills: drop a skill bundle at
$DSH_HOME/skills/<name>/SKILL.md(or a project’s.dsh/skills/,.agents/skills/, or~/.agents/skills/) and the harness discovers it — there is no switch to flip. - MCP servers: their tools then appear to the model as
mcp__<name>__<tool>.
qialike plugin does that file work for you, so there is no YAML to hand-write:
qialike plugin list [--available] # layers and rows; --available also lists every bundled pluginqialike plugin add-mcp <name> <command> [args...] [--project]qialike plugin remove-mcp <name> [--project]qialike plugin trust-overlay # trust the repository overlay (see below)--project targets the repository-level overlay (<repo>/.dsh/tui.cordis.patch.yml) rather than
your personal one. Enabling or disabling a built-in row needs no command either: write a row
without insert containing disabled: true and it overrides that row by id.
qialike --dump-config prints the composed layers and which layer each plugin came from.
Slash commands
Type / in the composer to open the autocomplete palette. ↑/↓ move the highlight, Enter
runs the selected command, and Esc dismisses the palette. The seven panel commands are:
| Command | Hint | What it does |
|---|---|---|
/help | show this help | Opens the full-screen help dialog (keybinds and command list). Esc or Ctrl+C closes it. |
/models | manage models and the API key | Opens the model manager: provider list, model list, and — for models that declare it — a reasoning-effort step. |
/compact | compact the session history | Compacts the current session’s older history into a summary through the harness compaction seam. |
/clear | clear the transcript | Clears the on-screen transcript. The durable session log is untouched. |
/new | start a new session (the current one is saved) | Cancels the current turn, creates a fresh agent in place, and keeps the old conversation reachable. |
/sessions | list, filter, resume or delete sessions | Opens the session manager for the current directory. |
/exit | quit qialike | Leaves the TUI and restores the terminal. |
What /compact prints
/compact takes no arguments — anything after the command is rejected with
Usage: /compact (no arguments). On success it reports
Compacted N history items (~X tokens).; when there is nothing to compact it reports
No compactable history yet.; otherwise it prints the harness’s classified failure text
(busy / cancelled / changed / summary / commit / persistence).
Other panels
The TUI registers a few more commands that are documented in Keybinds and the harness docs:
| Command | Hint |
|---|---|
/think | show/hide details under Think and tool rows (reasoning + tool output) |
/theme | open the colour-scheme picker (bare) or set a scheme / role colour |
/export | export the session as JSON or Markdown |
/sidebar | cycle the right-hand Steps panel: auto → on → off |
/plan | enter or leave plan mode |
/goal | set, view, pause, resume or clear the session goal |
/upgrade | check for, or install, a newer release (see Updates) |