Skip to content

Settings Reference

Argus settings can come from the app, argus.json, environment variables, command flags, stored secrets or managed settings from your organization. Use this page when you need the exact setting name or precedence order.

For the everyday Settings screen, see Settings.

Precedence

Most settings resolve in this order:

text
managed settings > command flag > environment variable > argus.json > built-in default

The first value that is present wins. Blank values count as absent and Argus continues to the next source.

SourceHow to set itNotes
App SettingsOpen Settings in the app.Writes argus.json for plain settings and the secret store for keys.
Config commandnpx @agentdeploymentco/argus config set <key> <value>Writes argus.json. For provider-specific LLM fields, it writes the flat fallback key noted below.
Config fileEdit argus.json in the Argus config folder.Uses the dotted keys shown below, nested as JSON.
Environment variableSet the variable before starting Argus.Overrides argus.json for that process.
Command flagPass the flag to a command that accepts it.Overrides environment variables for that command only.
Secret storenpx @agentdeploymentco/argus secret set <name>Stores API keys and the Hub key outside argus.json.
Managed settingsYour organization deploys a JSON or plist settings file.Wins over every user-controlled source.

argus.json lives in the Argus config folder. On macOS, the default path is ~/Library/Application Support/argus/argus.json. Set ARGUS_CONFIG_DIR or ARGUS_HOME to move it.

Examples

Write a setting to argus.json:

bash
npx @agentdeploymentco/argus config set log.level debug

Set a value for one process:

bash
ARGUS_LOG_LEVEL=debug npx @agentdeploymentco/argus serve --open

Override a setting for one indexing run:

bash
npx @agentdeploymentco/argus index --interpret false

Store an API key without putting it in argus.json:

bash
npx @agentdeploymentco/argus secret set ANTHROPIC_API_KEY

Common values

Boolean settings accept true or false in argus.json and with argus config set. Environment variables also accept 1, yes and on for true. Use true or false for command flags that take booleans.

Valid log levels are error, warn, info, debug and trace.

Valid LLM providers are off, claude-cli, command, claude-api, openai, gemini, openrouter and hub. hub is reserved for future use. The legacy provider value claude is still accepted as an alias for claude-cli.

App and general settings

SettingWhat it controlsargus.json keyEnvironment variableCommand flagDefault
Automatic updatesWhether the desktop app installs updates automatically.autoUpdate.enabledARGUS_AUTO_UPDATE_ENABLEDNonetrue
Update check intervalMinutes between desktop update checks.autoUpdate.checkIntervalMinutesARGUS_AUTO_UPDATE_CHECK_INTERVAL_MINUTESNone60
Start at loginWhether the desktop app opens when you sign in.desktop.startAtLoginARGUS_DESKTOP_START_AT_LOGINNonetrue
Silent desktop modeWhether the desktop app runs without a tray icon, notifications or opening the browser on first run.desktop.silentARGUS_DESKTOP_SILENTNonefalse
Read-only modeWhether serve runs read-only: labels, hiding sessions, refresh and Settings are hidden and their routes aren't mounted.readOnlyARGUS_READ_ONLYserve: --read-onlyfalse
Hub URLArgus Hub server URL for sync.hub.urlARGUS_HUB_URLNoneunset
Hub keyKey used to authenticate to Argus Hub.hub.keyARGUS_HUB_KEYNoneunset
Log levelHow much detail Argus prints to the terminal.log.levelARGUS_LOG_LEVEL--log-levelinfo
Retain session textWhether Argus keeps prompt and response text in the local index for interpretation.retainTextARGUS_RETAIN_TEXTindex, index rebuild and index refresh: --retain-text true|falsetrue
Welcome completedWhether the first-run welcome screen has been dismissed.state.onboardingCompletedARGUS_STATE_ONBOARDING_COMPLETEDNonefalse

desktop.silent is for managed or scripted desktop deployments. Set it with argus config set desktop.silent true or ARGUS_DESKTOP_SILENT=true; it is not shown in the app Settings screen.

readOnly is a deployment switch for running a shared, read-only Argus instance, not something to flip from the app Settings screen. Set it with argus config set readOnly true, ARGUS_READ_ONLY=true, or serve --read-only.

Use the secret store or ARGUS_HUB_KEY for the Hub key. A legacy plaintext hub.key in argus.json is still read and migrated by serve, but new configuration should not put keys in argus.json.

--quiet and --verbose are command shortcuts for logging. They do not write log.level.

Session interpretation

Session interpretation uses a model to title and summarize each session, split it into tasks and judge outcomes. These settings control whether it runs and how much it does.

SettingWhat it controlsargus.json keyEnvironment variableCommand flagDefault
Interpret sessionsWhether indexing interprets sessions.sessionInterpretation.enabledARGUS_INTERPRET_ENABLEDindex, index rebuild and index refresh: --interpret true|falsetrue
Max sessions per hourMaximum sessions interpreted automatically each hour.sessionInterpretation.maxSessionsPerHourARGUS_INTERPRET_MAX_PER_HOURNone30
Custom promptInstructions to use instead of the built-in interpretation prompt.sessionInterpretation.promptARGUS_INTERPRET_PROMPTrun: --interpret-promptunset
Prompt fileFile containing custom interpretation instructions.sessionInterpretation.promptFileARGUS_INTERPRET_PROMPT_FILErun: --interpret-prompt-fileunset
Title lengthMaximum generated title length in characters.sessionInterpretation.titleMaxCharsARGUS_INTERPRET_TITLE_MAX_CHARSNone100
Summary lengthMaximum generated summary length in characters.sessionInterpretation.summaryMaxCharsARGUS_INTERPRET_SUMMARY_MAX_CHARSNone500

These compatibility settings still work, but prefer the shared llm.* settings below for new configuration.

Compatibility settingWhat it overridesargus.json keyEnvironment variableCommand flag
Interpretation providerShared llm.provider.sessionInterpretation.providerARGUS_INTERPRET_PROVIDERrun: --interpret-provider
Interpretation modelShared llm.model.sessionInterpretation.modelARGUS_INTERPRET_MODELrun: --interpret-model
Interpretation commandShared llm.command.sessionInterpretation.commandARGUS_INTERPRET_COMMANDrun: --interpret-command

The older taskExtraction.* keys and ARGUS_TASK_* variables are still read as legacy names. The CLI also keeps these deprecated aliases: --extract-tasks, --task-provider, --task-model, --task-prompt, --task-prompt-file and --task-command. Prefer sessionInterpretation.*, ARGUS_INTERPRET_* and --interpret-*.

LLM provider settings

The llm settings choose the model backend used by model-driven features. Session interpretation is the feature that uses them today.

The provider itself is stored at llm.provider. Provider-specific fields are stored under llm.providerConfigs.<provider>, so switching providers keeps each provider's model, command and API-key variable separate.

json
{
  "llm": {
    "provider": "openai",
    "providerConfigs": {
      "openai": {
        "model": "gpt-5.4-nano"
      },
      "claude-api": {
        "model": "claude-haiku-4-5"
      }
    }
  }
}
SettingWhat it controlsargus.json keyEnvironment variableCommand flagDefault
ProviderWhich backend Argus uses for model calls.llm.providerARGUS_LLM_PROVIDERNoneclaude-cli
ModelModel name to request for the selected provider.llm.providerConfigs.<provider>.model or flat fallback llm.modelARGUS_LLM_MODELNoneprovider default
Base URLOpenAI-compatible endpoint for the openai provider. Point this at a model gateway to route through one.llm.providerConfigs.<provider>.baseUrl or flat fallback llm.baseUrlARGUS_LLM_BASE_URLNonehttps://api.openai.com/v1 for openai
API key variableEnvironment variable or secret name used for a provider's API key.llm.providerConfigs.<provider>.apiKeyEnv or flat fallback llm.apiKeyEnvARGUS_LLM_API_KEY_ENVNoneprovider standard
Max output tokensOutput token cap for model requests.llm.providerConfigs.<provider>.maxTokens or flat fallback llm.maxTokensARGUS_LLM_MAX_TOKENSNoneunset, with HTTP calls capped at 2048 when no request cap is set
Reasoning effortProvider-native reasoning effort value.llm.providerConfigs.<provider>.effort or flat fallback llm.effortARGUS_LLM_EFFORTNoneunset
CommandCommand to run for the command provider.llm.providerConfigs.<provider>.command or flat fallback llm.commandARGUS_LLM_COMMANDNoneunset
Claude CLI pathFull path to the claude binary for the claude-cli provider.llm.providerConfigs.<provider>.claudeCliPath or flat fallback llm.claudeCliPathARGUS_CLAUDE_CLI_PATHNoneauto-detect

Older flat keys such as llm.model, llm.command and llm.apiKeyEnv are still read as a fallback. The app moves flat values into providerConfigs when it can. argus config set accepts the flat fallback keys, not llm.providerConfigs.<provider>.* paths.

Provider defaults:

ProviderDefault modelStandard API key nameProvider-specific settings
claude-clihaikuNonemodel, claudeCliPath, effort
commandNoneNonecommand
claude-apiclaude-haiku-4-5ANTHROPIC_API_KEYmodel, apiKeyEnv, maxTokens, effort
openaigpt-5.4-nanoOPENAI_API_KEYmodel, baseUrl, apiKeyEnv, maxTokens, effort
geminigemini-3.1-flash-liteGEMINI_API_KEYmodel, apiKeyEnv, maxTokens, effort
openrouterNoneOPENROUTER_API_KEYmodel, apiKeyEnv, maxTokens, effort
offNoneNoneNone
hubNoneNoneNone, reserved for future use

Secrets

API keys are not stored in argus.json when you use the app Settings screen or argus secret. They resolve from the named environment variable first, then the secret store.

Secret nameUsed forAlso read from environment
ANTHROPIC_API_KEYclaude-api provideryes
OPENAI_API_KEYopenai provideryes
GEMINI_API_KEYgemini provideryes
OPENROUTER_API_KEYopenrouter provideryes
ARGUS_HUB_KEYArgus Hub syncyes

Manage secrets from the command line:

bash
npx @agentdeploymentco/argus secret set OPENAI_API_KEY
npx @agentdeploymentco/argus secret status
npx @agentdeploymentco/argus secret rm OPENAI_API_KEY

Location variables

These environment variables are not argus.json settings. They tell Argus where to find agent data or where to put its own files.

Environment variableWhat it changesDefault
ARGUS_HOMEBase folder for Argus data and config. Data goes under ARGUS_HOME/data; config goes under ARGUS_HOME/config.unset
ARGUS_DATA_DIRFolder for the local store, including argus.db.platform default
ARGUS_CONFIG_DIRFolder for argus.json, pricing.json and secrets.platform default
CLAUDE_CONFIG_DIRFolder for Claude Code projects and settings.~/.claude
CODEX_HOMEFolder for Codex sessions.~/.codex
CODEX_CONFIG_DIRFallback folder for Codex sessions when CODEX_HOME is unset.~/.codex
GEMINI_CLI_HOMEBase folder for Gemini CLI data. Argus reads .gemini under it.home folder
CLAUDE_DESKTOP_CACHE_DIRClaude desktop app cache folder for Claude Chat indexing.platform Claude cache path
ARGUS_MANAGED_CONFIG_FILEExtra managed settings file. On macOS, Argus checks standard managed-preference locations first.unset
ARGUS_PORTDefault port for serve and run when no --port is passed.4242

ARGUS_DATA_DIR and ARGUS_CONFIG_DIR win over ARGUS_HOME. Empty values count as absent.

Price overrides

Argus estimates cost from model usage and a local price table. Override prices in pricing.json under the Argus config folder. This is not an argus.json setting and has no environment variable or command flag.

Each price is USD per million tokens:

json
{
  "gpt-5.5": {
    "input": 5,
    "output": 30,
    "cacheRead": 0.5,
    "cacheWrite5m": 0,
    "cacheWrite1h": 0
  }
}

Built-in price family keys are:

KeyUsed when the model name contains
opusopus
sonnetsonnet
haikuhaiku
gpt-5.5gpt-5.5
gpt-5.4gpt-5.4
gpt-5.4-minigpt-5.4-mini or gpt-5.4 mini
gpt-5.3gpt-5.3 or gpt-5.2
gpt-5gpt-5-codex or gpt-5
codex-minicodex-mini
gemini-2.5-progemini-2.5-pro with prompts up to 200,000 tokens
gemini-2.5-pro-longgemini-2.5-pro with prompts over 200,000 tokens
gemini-2.5-flashgemini-2.5-flash
gemini-2.5-flash-litegemini-2.5-flash-lite
gemini-3-flashmodel names containing both gemini-3 and flash

Managed settings

Managed settings use the same JSON shape as argus.json, but they are delivered by your organization and have the highest precedence.

On macOS, Argus checks these paths in order and uses the first file that exists and parses:

OrderPath
1/Library/Managed Preferences/<user>/co.agentdeployment.argus.plist
2/Library/Managed Preferences/<user>/co.agentdeployment.argus.json
3/Library/Managed Preferences/co.agentdeployment.argus.plist
4/Library/Managed Preferences/co.agentdeployment.argus.json

Set ARGUS_MANAGED_CONFIG_FILE to add a specific managed settings file on any platform. On macOS, Argus checks the standard managed-preference locations first, then this file. The file can be JSON or a macOS plist.

Example managed JSON:

json
{
  "sessionInterpretation": {
    "enabled": false
  },
  "log": {
    "level": "warn"
  }
}

When a setting is managed, the app labels it Managed by your organization. Changing the same setting in the app, through argus config set or with an environment variable does not override the managed value.