---
title: Configuration
description: The ~/.nori-config.json keys and the env vars that override them.
status: draft
sidebar:
  order: 2
---

Config lives at `~/.nori-config.json` (schema-validated; unknown keys are
dropped). Set values with `sks config` or `sks login`.

| Key | Default | Meaning |
|---|---|---|
| `defaultAgents` | `["claude-code"]` | agents that installs/switches broadcast to |
| `installDir` | home | default activation directory |
| `activeSkillset` | — | what's currently active |
| `autoupdate` | disabled | self-update without asking |
| `redownloadOnSwitch` | enabled | refresh from registry before switching |
| `claudeCodeStatusLine` | enabled | install the Nori statusline for Claude Code |
| `sendSessionTranscript` | enabled | transcript upload via `sks watch` |
| `garbageCollectTranscripts` | — | prune old local transcripts |
| `auth` | — | managed by `sks login` / `logout` |

## Environment variables

| Variable | Effect |
|---|---|
| `NORI_API_TOKEN` | authenticate as `nori_<org>_<hex>`; registry derived from the token — zero-config CI |
| `NORI_GLOBAL_CONFIG` | relocate config and the profiles library (test/e2e isolation) |
| `NORI_SKILLSETS_COMMIT_ATTRIBUTION` | `nori` (default) · `none` · `agent` — controls git commit attribution hooks for Claude Code |
| `NORI_NO_ANALYTICS` | `1` disables anonymous usage analytics |
