slate.json (or slate.jsonc) file placed in your project root or global config directory.
File locations
Configuration files are merged together, not replaced. Settings from all sources are combined — later sources override only conflicting keys.Project config
slate.json in your project root (or any parent up to the git root). Safe to check into git.Options
General
General
| Field | Type | Description |
|---|---|---|
privacy | boolean | Disables telemetry and logging when true. |
Permissions
Permissions
Control which actions require your approval before Slate proceeds.Each permission key maps to an action (
"allow", "ask", or "deny"), or a pattern object for fine-grained control.| Permission | Description |
|---|---|
* | Wildcard — sets the default for all tools |
read | Reading files |
edit | Writing / editing files |
bash | Running shell commands |
grep | Searching file contents |
webfetch | Fetching web pages |
websearch | Web searches |
Models
Models
Set preferred default models for each slot.
| Field | Description |
|---|---|
default_agent | Default agent. Must be a primary agent ("build" or "plan"). |
models.main | Main model for complex tasks. |
models.subagent | Model for subagent tasks. |
models.search | Model for search tasks. |
models.reasoning | Model for reasoning tasks. |
MCP Servers
MCP Servers
Connect Model Context Protocol servers for additional tools.
Custom Commands
Custom Commands
Define custom Invoke with
/commands for repetitive tasks./commit or /review in the TUI. $ARGUMENTS captures text typed after the command name.Environment variables
| Variable | Description |
|---|---|
SLATE_API_KEY | Skip the authentication dialog on launch |
SLATE_CONFIG | Path to a custom config file |
SLATE_CONFIG_DIR | Path to a custom config directory |
SLATE_CONFIG_CONTENT | Inline JSON config (highest precedence) |
SLATE_PERMISSION | JSON permission config override |
SLATE_DISABLE_PROJECT_CONFIG | Disable project-level slate.json discovery |
SLATE_DANGEROUS_SKIP_PERMISSIONS | Set to 1 to bypass all permission checks. Set automatically by --dangerously-set-permissions. Intended for CI/automation. ⚠️ Skips all safeguards including destructive operations. |
CLI flags
Runslate --help to see all available flags.
Sessions
Sessions
| Flag | Alias | Description |
|---|---|---|
--continue | -c | Resume the most recent session instead of starting a new one. Useful for picking up where you left off. |
--resume <id> | Resume a specific session by its session ID. | |
--recent | -r | Open the session picker on launch so you can choose which past session to load. |
Sending a prompt
Sending a prompt
| Flag | Alias | Description |
|---|---|---|
<question> | Pass a prompt directly as a positional argument. Slate runs the prompt and exits unless --prompt-interactive is also set. | |
--question <text> | -q | Equivalent to passing a positional prompt. |
--prompt-interactive | -i | When combined with --question, sends the prompt but keeps the TUI open for follow-up rather than exiting. |
Workspace
Workspace
| Flag | Alias | Description |
|---|---|---|
--workspace <path> | -w | Add a directory to Slate’s workspace. Can be specified multiple times to add several directories at once. |
Headless / scripting
Headless / scripting
Headless mode lets you use Slate non-interactively — pipe in prompts, pipe out structured results — useful for CI or scripting.
| Flag | Description |
|---|---|
--stream-json | Run Slate headlessly with JSONL (newline-delimited JSON) output. Compatible with the Anthropic Claude Code SDK. Each agent event is emitted as a JSON object on stdout. |
--output-format <fmt> | Set the output format. text prints plain text, stream-json is equivalent to --stream-json. |
--input-format <fmt> | Set how stdin is interpreted. stream-json treats stdin as JSONL messages; text treats it as a plain text prompt. |
Server mode
Server mode
Server mode starts Slate as a standalone HTTP server without the TUI. The TUI (or another client) can then connect to it separately.
| Flag | Default | Description |
|---|---|---|
--server | Start Slate as an HTTP API server instead of launching the TUI. | |
--port <number> | 7777 | Port to listen on in server mode. |
--host <string> | 0.0.0.0 | Host to bind to in server mode. |
--url <url> | Connect the TUI to an already-running Slate server (e.g. http://localhost:7777). Useful for running the server and TUI on separate machines or in a container. | |
--directory <path> | local cwd | When using --url, sets the working directory on the remote server for the session. |
Permissions
Permissions
| Flag | Default | Description |
|---|---|---|
--dangerously-set-permissions | false | Bypass all permission checks including config plan rules. Sets SLATE_DANGEROUS_SKIP_PERMISSIONS=1 internally. Intended for CI pipelines and automation where interactive prompts are not possible. ⚠️ Auto-allows all tool calls including destructive shell commands and file writes. |

