Skip to content

Configuration

sarr-io edited this page Jun 6, 2026 · 20 revisions

Configuration

Zinc has two kinds of config:

  • runtime config for Zinc itself
  • project package config under .zinc/config/packages

Graphs do not contain provider secrets or endpoint settings.

Runtime config

Platform config path:

Platform Path
Linux $XDG_CONFIG_HOME/zinc/config.yaml or ~/.config/zinc/config.yaml
macOS ~/Library/Application Support/zinc/config.yaml
Windows %APPDATA%\zinc\config.yaml

A minimal model config:

default_model: local

models:
  local:
    model: model-name-served-by-your-endpoint
    base_url: http://127.0.0.1:30000/v1
    api_key_env:
    context_window: 8192
    chars_per_token: 4
    temperature: 0.7
    reasoning:
      enabled: false
      effort: low

base_url should point to an OpenAI-compatible endpoint. Zinc normalizes trailing slashes before calling /chat/completions.

context_window is a model fact supplied by the user. Zinc uses it with runtime.compaction_threshold_percent to decide when a session should compact.

If the endpoint does not return prompt usage, Zinc estimates prompt tokens with chars_per_token.

Selecting models

Use the configured default:

zn "inspect this repo"

Override one run:

zn --model local "use the local model"

Attach a configured model to a graph resource:

resources:
  assistant:
    model:
      using: local
      identity: Zinc
      input:
        - $user_turn
      instructions: Answer directly.

Package config

Project package config lives under:

.zinc/config/packages/<package>.yaml

Package config is user intent. It is not stored inside .zinc/packages/<package> because installed package directories are replaceable.

Browser example:

cdp_url: "http://127.0.0.1:9222"

Browser alternate:

devtools_active_port: "~/.config/chromium/DevToolsActivePort"

Official packages should prefer config files over environment variables for normal user-facing setup.

Doctor

Use zn doctor to inspect the selected model config and endpoint reachability.

zn doctor reports names and presence checks. It does not print secret values.

Clone this wiki locally