Command line

The omdsh binary starts the TUI. Everything the shell needs β€” plugin management, completions, a composition dump β€” is a subcommand or a flag.

Usage

omdsh [options] [prompt...]
omdsh plugin add <package>
omdsh plugin remove <package>
omdsh plugin <pnpm-args...>
omdsh completions bash|zsh|fish

A positional prompt boots omdsh and submits the joined words as the first message. --resume cannot combine with a prompt, and --dump-config cannot combine with either.

Options

OptionEffect
--model <route>Model route for this process; sets OMDSH_MODEL. Default deepseek-flash.
--provider <route>Provider route for this process; sets OMDSH_PROVIDER. Default deepseek-official.
-r, --resume <session-id>Reopen a durable session.
--dump-configPrint the composed plugin tree and exit.
-h, --helpShow the built-in help.
--versionPrint the installed version.

Command-line flags outrank every layered environment source.

Environment

VariableEffect
DEEPSEEK_API_KEYDeepSeek API key for live turns; /login stores a validated key instead.
OMDSH_MODEL, OMDSH_PROVIDERDefault route overrides; --model and --provider win over them.
OMDSH_HOMEHome for sessions, settings, credentials, MCP and LSP configuration, plugins, and skills; falls back to DSH_HOME, then ~/.dsh.
OMDSH_PERMISSION_MODEInitial Access preset: read-only, workspace-write (default), or danger-full-access. /permission changes it per session afterwards.
NO_COLOR, FORCE_COLOR=0Disable color output unless an explicit color preference exists. See Troubleshooting.

/model writes model preferences into the Profile patch, profiles/omdsh/cordis.patch.yml; a settings.yaml left by an earlier release is imported once at startup and renamed to settings.yaml.imported.

Plugin and completions

omdsh plugin add <package> installs a bundle into the user Profile, omdsh plugin remove <package> deletes one, and any other arguments are forwarded to pnpm in the Profile directory. See User plugins.

omdsh completions bash|zsh|fish prints a completion script for the omdsh command line without booting the TUI or making network requests. Load it from your shell profile:

eval "$(omdsh completions zsh)"

Pipe mode

When stdin or stdout is not a TTY β€” piped input, CI β€” omdsh degrades to line-based input with plain append-only output. Sessions, commands, and exit behavior keep the same semantics without claiming an interactive screen.