User Preferences

July 18, 2026 · View on GitHub

Nanocoder automatically saves your preferences to remember your choices across sessions.

Preferences File Locations

Preferences follow the same location hierarchy as configuration files:

  1. Project-level: nanocoder-preferences.json in your current working directory (overrides user-level)
  2. User-level: Platform-specific configuration directory:
    • macOS: ~/Library/Preferences/nanocoder/nanocoder-preferences.json
    • Linux/Unix: ~/.config/nanocoder/nanocoder-preferences.json
    • Windows: %APPDATA%\nanocoder\nanocoder-preferences.json

What Gets Saved Automatically

PreferenceDescription
lastProviderThe AI provider you last selected
lastModelThe model you last used
providerModelsYour preferred model for each provider (remembered per-provider)
selectedThemeThe theme you last selected via /settings
titleShapeThe title shape style (e.g., box, rounded)
nanocoderShapeThe nanocoder ASCII art shape
trustedDirectoriesDirectories you've approved through the first-run security disclaimer
lastUpdateCheckTimestamp of the last update check (used to avoid checking too frequently)
alternateScreenWhen true, starts in fullscreen mode (alternate screen buffer with in-app scrolling) by default. The --alt-screen/--no-alt-screen CLI flags override this for a single run. See CLI Options.

Paste Configuration

The paste threshold is also stored in the preferences file under the nanocoder.paste namespace:

OptionTypeDefaultDescription
nanocoder.paste.singleLineThresholdnumber800Maximum characters for a single-line paste to be inserted directly. Longer or multi-line pastes become [Paste #N: X chars] placeholders.

You can change this via /settingsPaste Threshold, or by editing the file directly:

{
  "nanocoder": {
    "paste": {
      "singleLineThreshold": 1500
    }
  }
}

Reasoning Traces

Expanding reasoning traces can also be configured in the preferences file with the reasoningExpanded field:

OptionTypeDefaultDescription
reasoningExpandedbooleanfalseWhen set to true, displays the full reasoning traces of models which support thinking

You can change this by editing the preferences file directly:

{
  "reasoningExpanded": true
}

Reasoning traces can also be toggled dynamically with the Ctrl+R keyboard shortcut.

Notification Configuration

Desktop notification preferences are stored under the nanocoder.notifications namespace:

OptionTypeDefaultDescription
nanocoder.notifications.enabledbooleanfalseEnable desktop notifications
nanocoder.notifications.soundbooleanfalsePlay a sound with notifications
nanocoder.notifications.events.toolConfirmationbooleantrueNotify when a tool needs approval
nanocoder.notifications.events.questionPromptbooleantrueNotify when the AI asks a question
nanocoder.notifications.events.generationCompletebooleantrueNotify when a response is ready

You can change these via /settingsNotifications. See Desktop Notifications for full details including platform-specific setup.

When you restart Nanocoder, it automatically restores your last provider, model, theme, shape, paste threshold, and notification preferences.

Manual Management

  • View current preferences: The file is human-readable JSON
  • Reset preferences: Delete any nanocoder-preferences.json to start fresh

Application Data Directory

Nanocoder stores internal application data (such as usage statistics) in a separate application data directory:

  • macOS: ~/Library/Application Support/nanocoder
  • Linux/Unix: $XDG_DATA_HOME/nanocoder or ~/.local/share/nanocoder
  • Windows: %APPDATA%\nanocoder

You can override this directory using NANOCODER_DATA_DIR.