larik v0.3.0

Guide

Configuration

Settings are read in this order. Later personal files override model, provider, permission mode, and allow-rule settings; shared project files can only tighten security:

  1. ~/.config/larik/config.json
  2. .larik/settings.json
  3. ~/.config/larik/projects/<project-id>.json (private settings for this project)

Put provider definitions, model selection, roles, fallbacks, permission mode, and allow rules in ~/.config/larik/config.json or private project settings. Larik ignores those fields in the shared .larik/settings.json. Shared deny rules remain active. Larik never loads .larik/settings.local.json from the repository.

json
{
  "model": "anthropic/claude-opus-5",
  "effort": "high",
  "mode": "default",
  "theme": "auto",
  "verbose": false,
  "spinner_tips": true,
  "auto_compact": true,
  "notifications": "off",
  "language": "",
  "permissions": {
    "allow": ["bash(go test*)", "bash(git diff*)", "edit(docs/**)"],
    "deny": ["bash(rm -rf*)", "read(.env)"]
  },
  "providers": {
    "work-gateway": {
      "type": "openai-compatible",
      "base_url": "https://llm.example.com/v1",
      "api_key_env": "WORK_LLM_KEY"
    }
  },
  "models": {
    "gpt-5.5": {
      "provider": "openai",
      "context_window": 400000,
      "max_output": 128000,
      "input_price": 0,
      "output_price": 0
    }
  }
}

Personal settings, all editable from /config (which changes only the key you edit):

  • theme: auto (follow the terminal's background, the default), dark or light. Both themes use a teal accent and leave the background transparent, so your terminal's own background shows through; only diff lines keep a faint green or red tint.
  • verbose: show tool output (up to 40 lines) and thinking in full. ctrl+o still toggles thinking.
  • spinner_tips: a one-line tip under the spinner during a turn.
  • debug and debug_retention_days (not in /config): see Debug mode and traces. Honored only from personal settings.
  • editor_mode: normal or vim. See Vim mode.
  • keybindings and status_line (not in /config): see Rebinding keys and Status line.
  • mouse: wheel scrolling in the TUI (default on). Off leaves the mouse to the terminal, so text can be selected without a modifier.
  • auto_compact: summarize the conversation when the context is 80% full. /compact works either way.
  • token_saver: opt-in command-output filtering (/config token_saver=true). Recognized Git, search/listing, Go, Cargo, Node package-manager, and pytest output is shortened before entering model context. Unrecognized output and failures pass through. A bash call can set raw_output: true; raw_output retrieves the exact captured stdout/stderr by tool-call ID without rerunning the command. Raw output stays in private session files. The displayed byte savings are estimates for command output; use /cost to inspect actual session token usage and cost.
  • notifications: off, bell, or desktop (OSC 9: iTerm2, Ghostty, kitty, WezTerm; other terminals get the bell). Sent only while the terminal is unfocused, when larik asks for permission or a turn of 10s or more ends. Notification hooks are separate.
  • language: what the model replies in, e.g. "Indonesian". A change applies after /clear or in a new session, so the cached prompt stays valid.
  • roles, fallbacks, budget ("Model routing" and "Session budget" in /config): see Mixing cheap and strong models.
  • checkpoint_retention_days ("Undo history" in /config): how long /undo snapshots are kept, so /undo still works after resuming a session. Default 7; a negative value (forever in /config) keeps them forever. Old snapshots are deleted at startup, for every project, so this is honored only from personal settings.

models entries override the built-in catalog. The catalog drives context percentage, compaction, and cost.

Generated from README.md · section “Configuration”. Edit that file to change this page.