# Configuration

> nsq's settings file, environment variables and where it keeps its data.

Source: https://docs.neurosquad.ai/en/cli/configuration

nsq works without any setup. To change something, edit `~/.neurosquad-cli/config.json` (create it
if it is not there). Every field is optional; a missing or broken file means the defaults.

```json
{
  "logos": "auto",
  "notifications": true,
  "sound": true,
  "detachKey": "Ctrl+]",
  "dictation": {
    "enabled": true,
    "hotkey": "CommandOrControl+Shift+Space",
    "mode": "toggle",
    "model": "parakeet-tdt-0.6b-v3"
  }
}
```

| Setting | Values | Default |
| --- | --- | --- |
| `logos` | `auto`, `images` (real logos where the terminal can draw images), `glyphs` (small coloured badges), `neutral` (no brand colours) | `auto` |
| `notifications` | desktop notifications — [Notifications](https://docs.neurosquad.ai/en/cli/notifications) | `true` |
| `sound` | a sound with each notification | `true` |
| `detachKey` | the key that leaves a full-screen agent, `Ctrl+<key>` | `Ctrl+]` |
| `dictation.enabled` | dictation on or off — [Dictation](https://docs.neurosquad.ai/en/cli/dictation) | on |
| `dictation.hotkey` | the global hotkey, e.g. `F9`, `Ctrl+Alt+Space`; `""` for none | `CommandOrControl+Shift+Space` |
| `dictation.mode` | `hold` (push to talk) or `toggle`; unset = tap to toggle, hold to talk | unset |
| `dictation.model` | `parakeet-tdt-0.6b-v3` or `whisper-large-v3-turbo` | `parakeet-tdt-0.6b-v3` |

Phone access is switched with `nsq phone on|off` and remembered in the same file.

Settings are read when the dashboard and the daemon start: after a change, reopen the dashboard,
and for the daemon's own settings (notifications, sound) run `nsq down` then `nsq up`.

## Environment variables

| Variable | What it does |
| --- | --- |
| `NSQ_HOME` | Keep nsq's data somewhere other than `~/.neurosquad-cli` (a separate home gets its own daemon) |
| `OPENROUTER_API_KEY` | The OpenRouter key, where there is no OS keyring |
| `NSQ_LOGOS` | `images`, `glyphs` or `none` — like `logos` above |
| `NSQ_IMAGES=0` | Never draw images in the terminal |
| `NSQ_COLOR` | `truecolor`, `256`, `16` or `none` — override the detected colours |
| `NO_COLOR` | The [standard](https://no-color.org) "no colour" switch, respected |
| `NSQ_GLYPHS` | `ascii` or `unicode` — override the detected character set |
| `NSQ_AMBIGUOUS_WIDE=1` | For terminals that draw ambiguous-width characters double wide (some CJK setups) |
| `NSQ_NO_ANIMATION=1` | No animations |
| `NSQ_ANIMATION=1` | Animations even over SSH (off there by default) |
| `NSQ_NO_NOTIFY=1` | No desktop notifications (set it where the daemon starts) |
| `NSQ_NO_BROWSER=1` | `nsq login` prints the link instead of opening a browser |

## Where nsq keeps things

Everything is in `~/.neurosquad-cli` (or `NSQ_HOME`):

| | |
| --- | --- |
| `agents.json` | your agents |
| `config.json` | the settings above |
| `daemon.log` | the daemon's log — the first place to look when something goes wrong |
| `layers/` | the per-agent settings nsq passes to each CLI |
| `worktrees/` | agents' [worktrees](https://docs.neurosquad.ai/en/cli/worktrees) |
| `models/` | the dictation model |

Secrets — the OpenRouter key and the optional account sign-in — are in the OS keyring, not in this
folder.
