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.1
Global config
User-wide preferences at
~/.config/slate/slate.json. Applies to all projects.2
Project config
slate.json in your project root (or any parent up to the git root). Safe to check into git.3
Inline override
SLATE_CONFIG_CONTENT env var as a JSON string. Highest precedence.Options
Keybind syntax supports
ctrl, alt (also meta/option), shift, and super, plus <leader> combos. Use commas for alternatives (for example, ctrl+n,down), none to disable a binding, and note leader mode times out after 2s.Theme config supports built-in
dark and light, with /theme as the in-app picker. Advanced theme JSON can define defs and theme with $ref values and per-token dark/light variants.General
General
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.Models
Models
Set preferred default models for each slot with the
/models dialog or slate.json under models. Model IDs shown here are examples only and are not stability promises.Model presets (modelSets)
modelSets define named presets that can configure the same model slots used by models. Configure presets in slate.json and select them from /models.Providers
Providers
Use
/providers to choose a provider and connect using that provider’s auth method. Then return to /models to pick models backed by the connected provider.In slate.json, models.{slot}.default is still a model ID string. Provider identity is handled by the UI and runtime selections, not by embedding provider credentials in the model slot.Bedrock BYOK: API-key auth requires region. IAM auth requires region, accessKeyId, secretAccessKey, and optional sessionToken. Enter credentials in /providers, not slate.json.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.Advanced
Advanced
Additional configuration keys supported in
slate.json. Some are partially wired and may evolve.Environment variables
CLI flags
Runslate --help to see all available flags.
Models
Models
Program slots (
program_search, program_execute) do not have dedicated CLI flags. Configure them with /models or slate.json under models or modelSets.Sessions
Sessions
Sending a prompt
Sending a prompt
Queue file
Queue file
Workspace
Workspace
Headless / scripting
Headless / scripting
Headless mode lets you use Slate non-interactively — pipe in prompts, pipe out structured results — useful for CI or scripting.
Note: use
--output-format stream-json for JSONL output in this CLI. The standalone --stream-json flag is not supported on run.Server mode
Server mode
Server mode is command-based. Start the server with
serve, then connect with attach.Upgrade command: slate upgrade [target] (optional target version). Use --method / -m to choose install method: curl, npm, pnpm, bun, brew, choco, or scoop.Permissions
Permissions
Restart without
--yolo and set SLATE_DANGEROUSLY_SKIP_PERMISSIONS to 0 (or unset it) to restore normal permission prompts.
