haze.
Docs / Reference

Command reference.

Slash commands inside haze, plus the terminal flags for interactive and headless runs. Type / in the chat to discover commands and installed skills; Tab completes.

Agent & session

/helpShow all slash commands.
/exit, /quitExit haze. Registered background processes stop.
/clearClear conversation history and the task list.
/newStart a fresh durable session for this workspace.
/resume [id]Browse this workspace's sessions and continue one or fork a copy. Pass an exact id to resume it directly.
/sessionShow the current durable session file.
/compact [instructions]Keep recent messages and replace older context with a model-written continuity summary (set manualCompaction: "heuristic" in settings for the model-free bounded excerpt). Automatic mid-turn compaction also prefers a model-written summary for large older histories, keeping the bounded excerpt for small trims and as the fallback. The result says what was kept.
/initCreate or update compact, budget-aware AGENTS.md project instructions.
/contextShow a token breakdown of the current request: system prompt, project context, tools (incl. MCP), and chat messages.
/tipsToggle rotating keyboard and workflow tips beneath the busy label.
/fleet [--review] [--profile name] [--workers provider:model] [--concurrency n] <prompt>Split independent work across disposable, context-isolated workers. The profile controls concurrency and deadlines; each run has a tool limit and file changes are serialized across retries. Options apply to one run; haze declines work that cannot run in parallel.

Configuration

/providerChoose or add a provider. Manage its models, set the API key, toggle image input, or remove the provider.
/modelChoose a configured model, or fetch a provider's model list from its OpenAI-compatible /models endpoint.
/model <name-or-provider:name>Set a model directly; also sets its provider.
/model listList all configured models.
/settingsShow provider, model, API key and image-capability status, LSP/MCP servers, skills, and loaded context files.
/settings openOpen ~/.haze/settings.json with the OS default app.
/themesChoose a terminal theme from the built-in registry (light palettes and oh-my-zsh ports included). The pick applies immediately and is saved to ~/.haze/settings.json.
/themes <name>Set a theme directly, such as /themes solarized-dark. Already-printed text keeps its old colors.
/reasoningChoose a reasoning effort level (none, minimal, low, medium, high, xhigh) for the active model, for this session, or unset/reset. medium is the default. Each model keeps its own session level; nothing is written to settings. The effective level shows in the bottom status bar and applies from the next turn as the portable reasoning parameter.
/reasoning <level|unset|reset|status>Set the reasoning effort for the active model for this session, send no parameter with unset, fall back to the saved/default level with reset, or show the current level with status. Sending the parameter is capability-gated; local inference endpoints omit it by default, and providers can override this with capabilities.reasoningEffort.
/thinkingAlias for /reasoning. /thinking <level|unset|reset|status> behaves exactly like the /reasoning forms above.
/logs [id]List recent LLM logs, or summarize one by id. Detailed logs exist only when haze started with --debug.
/lspConfigure language-server navigation: add a preset (typescript, rust, python, go, php) or a custom command, then enable/disable/remove. LSP tools appear only when an enabled server command is on PATH.
/mcpConfigure Model Context Protocol servers. Add a preset (Context7) or custom http/sse/stdio server, enable/disable/remove it, or set a masked API key. MCP tools never shadow built-ins.

Reasoning compatibility (1.5.1). Explicit provider capabilities.reasoningEffort: true|false wins. Without it, local inference endpoints recognized by haze omit effort; hosted OpenAI-compatible endpoints retain pass-through. Omission uses the server default and does not guarantee reasoning is off. For bare GPT-6+ model names, minimal is omitted, and none is omitted except for exactly gpt-6-sol and gpt-6-luna. Unsupported choices are never promoted; the reasoning_policy event explains the effective policy.

Skills

/skillsCreate and manage global or project Markdown skills. The picker shows each skill's source and lets you enable, disable, validate, or remove it.
/pluginOpen the plugin picker: install or inspect a local plugin or collection (picking an entry when the directory is a marketplace), or manage installed project plugins. Only skills activate. kit is an alias.
/plugin inspect|install <directory> [name]Inspect or install a local plugin or selected collection entry. Only skills activate. Also available as haze plugin in a terminal; kit is an alias.
/plugin list, /plugin remove <name>List project-installed plugins or remove unchanged owned files, preserving modified and seed content. Plugin skills use /<plugin>:<skill>; enable/disable them in /skills.
/<skill-name>Invoke any installed skill directly, such as /code-review. The model can also load skills on its own when they match a request.
No task command. The model maintains its own task list with the writeTasks tool; track it in the status area while substantial work runs.

Terminal flags

Run haze --help for the authoritative list
hazeOpen the interactive chat in the current directory.
haze -p, --prompt <text>Run one non-interactive turn with the full toolset, print the final reply, and exit. Complete turns exit 0; aborted or failed turns exit non-zero. Pipe stdin for longer prompts: echo "…" | haze -p. Piped prompts over 256 KiB are rejected; pass a file path for larger input. On a provider context overflow the run compacts and retries with progressively smaller budgets; exhausted recovery exits non-zero with a resumable context_exhausted checkpoint. Print mode does not save sessions.
haze --output <text|json|stream-json>Choose the print-mode output. json writes one { type, status, result, usage } envelope for scripts and CI. stream-json writes live NDJSON events — including context-budget, compaction, retry, and goal lifecycle events — followed by the same envelope. The final status determines the exit code.
haze -m, --model <selector>Override the model for this run without changing settings. Use a model name or provider:model selector for a model added through /provider; unknown selectors exit non-zero with a precise error.
haze --reasoning <level>Override the reasoning effort for this run without changing settings: none, minimal, low, medium, high, xhigh, or unset/off (send no reasoning parameter; the provider default applies). Applies to print-mode turns; the level travels as the model's portable reasoning parameter, subject to endpoint capabilities and model-specific restrictions. Invalid values exit non-zero before any model call. The effective policy is observable as a reasoning_policy stream-json event.
haze -c, --continueResume the latest saved session for this workspace (interactive only).
haze --resume <id>Resume an exact workspace session. Combine with -p to load its context for one non-durable turn. Unknown ids exit non-zero.
haze --no-sessionRun without saving or resuming a durable session.
haze report [id] [--json]Summarize the latest workspace session, or one by id. Shows model, goal outcomes, tool and validation counts, context size, and evidence mismatches without printing prompts, commands, paths, or tool output.
haze --timeout <duration>Print-mode whole-goal deadline across continuation turns, e.g. 30s, 10m, or 2h (raw ms also accepted; 1 second–24 hours). Bounds total elapsed time so a busy or uncooperative tool cannot run indefinitely. When the deadline fires haze emits a timeout stream-json event and exits non-zero.
haze --until-donePrint mode: relaunch the logical goal after transient model failures (provider errors, exhausted stream-stall retries) with exponential backoff, until it structurally completes, --timeout hits, or three consecutive relaunches make no measurable progress (poison guard — a truthful non-zero exit with the goal frontier preserved). Emits goal_resume stream-json events per relaunch. Unattended operation never grants extra authority: no commits, pushes, or publishes.
haze --debugShow model/tool debug logs and write detailed JSONL payloads to ~/.haze/logs/ (interactive and print mode). Logs can contain secrets and file content; redact them before sharing.

Headless & CI

shell · one-shot runs
# answer from the current repo, JSON envelope for scripts
haze -p "which function parses the budget file?" --output json

# pipe context in and stream events for a wrapper
git diff | haze -p "review this diff for bugs" --output stream-json

# reuse a saved session's context without modifying it
haze --resume 2f9c41d8 -p "summarize where we stopped" --output text

Exit codes are contract: 0 for complete turns, non-zero for aborted or failed runs — safe to use in CI gates and Git hooks.