Configuration

Lacy is configured via ~/.lacy/config.yaml. All settings are optional — defaults work out of the box.

Quick edit

bash
lacy config        # show current config
lacy config edit   # open in $EDITOR

Full config reference

yaml
# ~/.lacy/config.yaml

agent_tools:
  # Active AI tool: lash | claude | opencode | gemini | codex | hermes | custom | (empty for auto-detect)
  active: lash
  # custom_command: "my-ai-tool --flag"   # used when active: custom

api_keys:
  # Only needed if using built-in API integration (not a CLI tool)
  openai: "sk-..."
  anthropic: "sk-..."

modes:
  # Default mode on shell start: auto | shell | agent
  default: auto

# Preheat: keep agents warm between queries (lash/opencode only)
# preheat:
#   eager: false          # Start background server on plugin load (default: false)
#   server_port: 4096     # Port for background server

# Terminal context settings
# context:
#   output_lines: 50      # Max lines of terminal output to capture (default: 50)

agent_tools.active

The AI tool Lacy uses for agent queries. Persists when you run tool set <name>.

Leave empty or omit for auto-detection (first installed tool in: lash, claude, opencode, gemini, codex, hermes).

agent_tools.custom_command

Used when active: custom. Lacy appends the user query as the last argument.

yaml
agent_tools:
  active: custom
  custom_command: "my-ai-tool --model gpt-4 --stream"

modes.default

The routing mode on shell start. Can be overridden at any time with the modecommand or Ctrl+Space.

preheat

Preheating keeps a background server warm for lash and opencode, eliminating cold-start latency on the first query.

Note

eager: true starts the background server when your shell loads.eager: false (default) starts it on first query.

context.output_lines

Maximum lines of terminal output to capture and send with agent queries. Set to 0 to disable terminal output capture entirely.