Skip to content

Advanced settings keys (JSON)

This page describes Orion settings keys that are stored in JSON and are useful for fine-grained control. Some are available in the Settings UI; others are JSON-only. Use them in ~/.orion/settings.json or <workspace>/.orion/settings.json when you need project-specific defaults or values the UI does not expose yet.

For file paths, merge order, and safe editing, start with Workspace settings. You can also load /orion-settings in chat and ask the assistant to change specific keys.

When you need this

  • Tuning agent context compaction or tool limits for large repos.
  • Standardizing notebook output collapse, plot height, or export fonts per project.
  • Setting default panel sizes or sidebar tabs via committed workspace overrides.

Notes

  • Values must match the types and ranges below. Invalid JSON may fail to load; partial workspace files are merged with defaults.
  • Changing agent.filesystem.blockedBashCommandPatterns affects Ask-mode shell safety — use valid regular-expression sources only.
  • Most users should change chat, editor, empty editor shortcuts, and notebook.presentationHideAllCellInputs through the UI or simple overrides first.

appearance.experienceMode

Controls the primary Orion workspace shell.

KeyTypeDefaultDescription
experienceModepro or businessbusinesspro shows the full notebook IDE. business shows the simplified report-and-chat workspace.
experienceModeChosenbooleanfalse for new installsWhether the first-run experience dialog has been completed.

Use Settings → Appearance for normal changes. See Business mode.

chat.communicationStyle

ValueEffect
defaultMinimal narration around tool calls
narrativeStep-by-step before and after each tool call
friendlyWarm, encouraging tone
pragmaticDirect; only essential information

Default: default.

notebook.output

Controls how notebook outputs render (not the .ipynb file itself).

KeyTypeDefaultDescription
textOutputAutoCollapseThresholdinteger2000Characters above which text outputs auto-collapse
collapsedHeightDefaultPxinteger192Default collapsed output height (px)
collapsedHeightMinPxinteger64Minimum collapsed height (px)
defaultPlotHeightPxinteger360Default Plotly chart height
plotMinResizeWidthPxinteger160Minimum Plotly width when resizing
plotMinResizeHeightPxinteger120Minimum Plotly height when resizing
plotlyHoverCornerRationumber 0–10.15Plotly hover label rounding
minimapOutputPreviewMaxLinesinteger4Lines shown in minimap output preview
minimapHeadingNavigateDelayMsinteger220Delay before minimap heading jump (ms)
chartColorsstring array10 hex colorsPalette for table charts

Example workspace override:

json
{
  "version": 1,
  "overrides": {
    "notebook": {
      "output": { "defaultPlotHeightPx": 420 }
    }
  }
}

notebook.export

KeyTypeDefaultDescription
sansFontFamilystring'Saira', sans-serifFont stack for HTML/PDF export

notebook.editor

KeyTypeDefaultDescription
doublePressTimeoutMsinteger400Window for double-key shortcuts (ms)

editor.emptyEditor

Controls the two shortcut cards shown when no file is open in the editor.

The editor also supports Autosave and Autosave interval in Settings → Appearance. In JSON, set editor.autosaveEnabled and editor.autosaveIntervalMs (milliseconds). Business mode autosaves dirty editor files even when editor.autosaveEnabled is false.

Set editor.unopenableFileAction to choose what happens when you click a file Orion cannot open in the editor:

ValueEffect
mention_in_chatAdd the file as a chat mention so the assistant can inspect or summarize it
open_externallyOpen the file with your system's default app
KeyTypeDefaultDescription
leftCardrecent_files, pinned_files, or pinned_workspacesrecent_filesContent shown in the left empty-editor card
rightCardrecent_files, pinned_files, or pinned_workspacespinned_filesContent shown in the right empty-editor card
maxItemsinteger 1–205Maximum entries shown per card

Example workspace override:

json
{
  "version": 1,
  "overrides": {
    "editor": {
      "unopenableFileAction": "open_externally",
      "emptyEditor": {
        "leftCard": "pinned_workspaces",
        "rightCard": "recent_files",
        "maxItems": 8
      }
    }
  }
}

agent.context

Chat context and compaction behavior.

KeyTypeDefaultDescription
compactionAutoThresholdnumber 0–10.92Fraction of context cap that triggers auto-compaction before send
compactionRetentionTurnsinteger ≥ 14Recent user turns kept verbatim after compaction
optimizerRetentionTurnsinteger ≥ 16Recent user turns kept in wire payload optimizer

agent.toolOutput

Limits on tool results sent back to the model.

KeyTypeDefaultDescription
textCharBudgetinteger40000Max characters from text tool outputs
imageBase64CharBudgetinteger100000Max base64 characters for image outputs
maxOmittedRationumber 0–1≈0.33Max fraction omitted when truncating

agent.terminal

Shell tool timing and output handling (milliseconds unless noted).

KeyDefaultDescription
pollIntervalMs150Poll interval for bash / await
foregroundBudgetMs5000Foreground wait before bash returns “still running”
awaitBudgetMs30000await_command wait budget
maxBlockMs600000Maximum block wait (10 minutes)
outputSpillThresholdChars200000Bash output size that spills to a file
outputPreviewHeadChars6000Head preview when spilled
outputPreviewTailChars6000Tail preview when spilled
executorTimeoutMs15000System command timeout
executorAvailabilityTimeoutMs3000Availability probe timeout
executorPollIntervalMs300Executor poll interval
poolIdleTimeoutMs3600000Idle terminal reclaim (1 hour)
poolSystemSize2Warm system terminals
poolReaperIntervalMs60000Pool reaper interval

Grep and glob tool limits.

KeyDefaultDescription
maxMatches100Max grep matches returned
maxLineLength200Max grep line length
globTerminalMaxResults500Max paths from glob
globMaxDisplayResults100Max glob paths shown to the model
grepTimeoutMs15000Grep timeout
whichTimeoutMs3000which check timeout

agent.filesystem

KeyDescription
ignoreDirsDirectory names skipped in listings (e.g. node_modules, .git)
binaryExtensionsExtensions treated as binary in search (e.g. .png, .pdf)
blockedBashCommandPatternsRegExp sources blocked in Ask-mode bash (destructive commands)

Defaults include standard Node/Python build and cache folders. Override only when your repo needs extra ignores — use directory names, not full paths.

Example:

json
{
  "version": 1,
  "overrides": {
    "agent": {
      "filesystem": {
        "ignoreDirs": ["node_modules", ".git", "vendor", "my-large-artifacts"]
      }
    }
  }
}

agent.web

KeyDefaultDescription
toolTimeoutMs30000web_fetch / web_search timeout (ms)
fetchMaxResponseBytes5242880Max download size (5 MiB)
fetchMaxRedirects5Max HTTP redirects
searchDefaultNumResults8Default web_search result count
exaMcpUrlhttps://mcp.exa.ai/mcpSearch MCP endpoint URL

shell

App chrome defaults. Session-only UI state may still override these until Orion persists shell settings from JSON.

shell.panelVisibility

KeyDefaultDescription
leftCollapsedfalseLeft sidebar collapsed
rightCollapsedfalseChat sidebar collapsed
bottomCollapsedtrueBottom panel collapsed
isFocusModefalseFocus mode

shell.panelLayout

KeyDefaultDescription
horizontal[15, 50, 20]Left / center / right size weights (positive numbers)
vertical[70, 30]Main / bottom size weights

shell.sidebar

KeyDefaultDescription
activeViews["files"]Visible sidebar tabs: files, search, toc, cpu, vars, dataSources, secrets
openAccordionItems["files", "toc"]Expanded accordion sections
showHiddenFilestrueShow dotfiles in file tree
showMinimapOutputstrueShow outputs in notebook minimap
minimapPreviewModecompactcompact or miniature
isSearchCaseSensitivefalseCase-sensitive sidebar search

shell.chat

KeyDefaultDescription
maxHighlightChars15000Max chars for syntax highlighting in chat code
maxInlineLines24Lines before inline code scrolls
codeBlockInlineMaxHeightClassmax-h-40Tailwind class for tall inline code
markdownTableMaxHeightClassmax-h-80Tailwind class for chat tables
awaitCommandCountdownSeconds30UI countdown for long-running commands

shell (root)

KeyDefaultDescription
mobileBreakpointPx768Width at or below mobile layout applies
minRefreshSpinMs500Minimum refresh spinner duration
toastLimit1Max simultaneous toasts

Last updated July 2026.

Apache-2.0 Licensed