Skip to content

REPL slash commands ​

Inside the agent loop REPL, type /help for the full list.

CommandDescription
/helpShow available commands
/clearSummarize and clear the current conversation
/model [name]Show or switch LLM model mid-session (tab-complete shows up to 10 suggestions)
/model default [name]Show or set the default startup model, persisted to ~/.kdeps/agent-loop-settings.yaml
/model listList all available models with provider status
/model psList running local model servers (llamafile/gguf) with PID, port, and health
/model ps kill <model>Kill a running local model server and clean up its port file
/model ps switch <model>Switch the active model to a running local server
/model hff search <query>Search HuggingFace for GGUF repos (sorted by downloads)
/model hff info <repo>List GGUF files and sizes available in a HuggingFace repo
/model hff download <repo> [file]Download a GGUF from HuggingFace; auto-registers an alias for /model
/model tool [list]Show agent loop settings: tool rounds, retries, retry delay, compaction, history caps, stall timeout, auto-allocation
/model tool set <setting> <value>Change a setting, e.g. set rounds 80 (0 = unlimited), set compact-threshold 40k, set web-limit 0 (also bash-limit/file-limit/code-limit; 0 removes that per-request call cap), set retry-delay 5s, set stall-timeout 5m, set autokill on. Settings are persisted to ~/.kdeps/agent-loop-settings.yaml and restored next session
/model name [show|hide|abbreviate|auto]Show or set how the modeline displays the model name, overriding the theme's default (see Themes); persists
/skillsList loaded skills
/promptsList loaded prompt templates
/<skill-name> [prompt]Invoke a skill or prompt template directly
/compactSummarize older turns now, keeping the last few verbatim. Unlike auto-compaction it runs regardless of how large the session is; it only shrinks the saved conversation, not a single turn's own tool output
/historyShow conversation history
/thinking [off|minimal|low|medium|high|xhigh|auto]Enable extended reasoning (Claude only; warns if current model does not support it); persists across sessions
/promptShow the exact LLM request for the last turn (system prompt, messages, tool schemas)
/prompt rawSame, unformatted - the raw JSON payload sent to the model
/permission [read-only|workspace-write|danger-full-access|ask]Show or set the tool permission mode; persists across sessions (see Permission modes)
/session list|save|load|delete|checkpoint|goto|branches|importManage this folder's saved sessions and navigate branching history (see Sessions)
/editorOpen current input in $EDITOR (ctrl+g)
/copyCopy last assistant response to clipboard
/reloadReload skills and prompt templates from disk
/theme [name|list]Show or set the REPL's look - normal (default), black, linux, vim, emacs, or a custom name from ~/.kdeps/themes/ (see Themes); list shows built-in and custom names separately; persists. Also --theme / KDEPS_THEME at startup
/contextShow current context window size
/context <size>Set context window size (e.g. 32768 or 32k); restarts local model servers with the new --ctx-size; persists across sessions
/turoShow turo reducer status (state, level). Only available when the turo binary is on PATH
/turo on|offEnable or disable prompt reduction at runtime
/turo lite|full|ultraSet the turo compression level
/turo <stage> on|offToggle a pipeline stage: filler, synonyms, gloss, defmatch, arrows
/goalShow the active goal's task list and status
/goal on|offEnable or disable goal-directed execution entirely; persists across sessions. off drops any active goal and runs turns as a plain tool loop
/goal new <text>Replace the active goal with a new plan
/goal skipAbandon the active task and advance to the next
/goal clearDrop the active goal (the next prompt starts a new one)
/refineShow whether pre-turn prompt refinement is on (see Prompt refinement)
/refine on|offEnable or disable rewriting each prompt for clarity before the turn; on by default, persists across sessions
/efficiencyShow efficiency enforcement state and limits (see Efficiency enforcement)
/efficiency on|offEnable or disable soft-stopping read-only exploration loops; on by default, persists
/efficiency verbose on|offReveal the hidden model-facing channel for debugging; off by default, persists
/efficiency <setting> <n|off>Set one limit: reads, actions, stops, tighten, web, bash, file, code; persists
/efficiency preset <name>Overwrite every efficiency value from frugal, balanced or thorough
/efficiency resetRestore the shipped defaults
/instructPrint a kdeps briefing (what kdeps is, how to call a tool with worked <invoke> examples, the live tool catalog, memory, goals, runtime feedback) and append it to history as a settled turn, so the next prompt is primed with it
/instruct!Same briefing, but sent as a real turn now - the model reads it and replies with an acknowledgement on the spot. For models that skim injected context
/instruct <topic> / /instruct! <topic>Brief on one topic only: overview, modes, tools, available, memory, goals, feedback, files
/instruct listName the topics without briefing the model
/judgesShow the configured judge panel (reviews each turn's final output - see Judge panel)
/judges add <name> <criteria>Add a judge to the explicit roster
/judges remove <name>Remove a judge from the explicit roster
/judges auto [on|off]Show or toggle a per-turn auto-generated roster; persists across sessions
/judges off (or /judges clear)Disable the judge panel entirely (drops the explicit roster and turns off auto-judges); persists across sessions
/memoryShow memory store overview: entry count and the 10 most recently updated entries (with values)
/memory listList every stored memory entry with a truncated value preview
/memory search <query>Search memory keys and values for a substring
/memory show <key>Show one entry's full value, type, timestamps, and its dependency graph node (the same <graph-node> block the model receives in its prompt)
/settingsOpen the tool/skill selector
/exitExit the REPL
! <cmd>Run a shell command; the output becomes an agent turn - the model responds and can act on it (e.g. !make lint -> the model fixes the findings)
!! <cmd>Run a shell command silently - no LLM turn, nothing added to context
@<path>Inline a file's contents (text) or attach it (image) into the next turn, e.g. explain @main.go
/autocontext [on|off]Show or toggle auto-detecting command/file mentions in plain chat text (on by default, persists across sessions)
/tools [full|lean]Show or toggle the lean/full tool set (full by default, persists across sessions - see Lean mode)
/upgradeCheck for a newer kdeps release and, for a standalone install, download/verify/install it (see Updating kdeps)
/upgrade nightlySame, but checks the nightly channel instead of the latest stable release (see Nightly builds)
/upgrade <version>Install an exact version directly, skipping the update check - older than the running build means a downgrade (see Installing a specific version)
/handshake [on|off]Show or toggle the mandatory session-integrity tool-call check. Turning it on verifies the current model immediately, before your next prompt, then again on every model change/resume/compaction/fold (off by default, persists across sessions - see Session-integrity handshake)
/harness [list]List harness sections (the system-prompt text sent every turn) with their enabled/disabled state
/harness enable|disable <name>Turn a harness section on/off; persists to ~/.kdeps/harness/<name>.yaml and takes effect on the next turn (no restart)
/harness events [list]List reactive LLM events with a trigger summary, action, and enabled/disabled state
/harness events enable|disable <name>Turn an event on/off; persists to ~/.kdeps/events/<name>.yaml and takes effect immediately - a disabled event's threshold can never fire
/harness preset [list]List built-in + user presets (e.g. frugal, balanced, thorough) with their descriptions
/harness preset <name>Apply a preset: writes its bundled event overrides to ~/.kdeps/events/*.yaml and reloads immediately - no restart
/harness reminders [list]List every harness section with its reminder on/off state (see Harness reminders)
/harness reminders <name> on|offForce that section's text onto every LLM prompt and every tool call result, independent of its own enabled/disabled state or normal trigger; persists to ~/.kdeps/harness/<name>.yaml. A reminder:<names> segment appears in the status line (next to turo:) while any are active, and disappears when the last one is turned off
/harness reminders instruct:<topic> on|offSame, for an /instruct topic (overview, modes, tools, available, memory, goals, feedback, files); a bare topic name also works unless a harness section shares it (tools, memory). Persists to ~/.kdeps/agent-loop-settings.yaml
/konfig export|import [path]Export or import tuning, harness, themes, events, actions, presets, and skills as a self-contained YAML file (default ./konfig.yaml) - see konfig
/loginm365 backend only: open a browser window to (re-)sign in, even if a session is already cached (see M365 Copilot)

Auto-detected commands and files ​

!cmd and @path require you to know kdeps' own syntax. Auto-context detection covers the common case where you just describe what you want in plain English - but only fires on a command or file mention wrapped in quotes (single or double); an unquoted mention in plain prose is never offered:

text
you type: "can you run \"df -h\" and take a look at \"main.go\"?"
              |
              v
kdeps scans the quoted spans for a read-only command ("df -h")
and an existing, readable file ("main.go")
              |
              v
"Detected in your message:
   command: df -h
   file: main.go
 Run the command(s) / include the file(s)? [y/N]"
              |
       y -----+----- n/Enter
       |             |
       v             v
runs `df -h`,   sends your original
inlines         text completely
main.go, sends  unchanged
the turn

Only text inside "..." or '...' is ever scanned - typing can you check df -h for me with no quotes triggers nothing, even though df -h is a recognized command. Quoting "df -h" is what tells auto-context you mean it literally.

Text files and read-only commands ​

The same scan finds existing, readable text files by name (look at "main.go") and offers to inline them like @main.go would - images/binaries are never auto-detected, use an explicit @path instead. Only a strict allowlist of read-only commands is offered (ls, df, ps, git status, go env, docker ps, etc.); destructive commands (rm, git commit, go build, docker rm, ...) never match, even quoted. One confirmation covers everything in a message; declining (or pressing Enter) sends your text unchanged.

Pipes and command substitution ​

Pipes and command substitution are recognized too, as long as every stage is allowlisted: "ps aux | grep -i kdeps" runs as one pipeline provided each |-separated stage is read-only (a stage like xargs rm invalidates the whole thing); $(git rev-parse HEAD) needs no extra quoting - its $(...) body is checked the same way, and anything that could chain a second command inside the parens (;, &, `, a nested $() is rejected outright.

Auto-context on and off ​

Disable it for the session with /autocontext off if the confirmation prompt gets in your way; /autocontext on re-enables it, and /autocontext alone shows the current state.

Startup flags ​

FlagEffect
--resume <id>Resume a specific session directly, skipping the picker
--newStart a clean session, skipping the resume picker for this folder
--model / --backend / --base-urlOverride the model for this run
--system <text>Prepend a system prompt
--theme <name>REPL theme: normal (default), black, linux, vim, emacs, or a custom name from ~/.kdeps/themes/ (see Themes)

Sessions and memory are stored under ~/.kdeps/, partitioned by the directory kdeps runs in. See Sessions.

See also ​

Released under the Apache 2.0 License.