Every AstraCode setting, what it defaults to, and what changing it does.
| Setting | Default | What it does |
| agent.approvalMode | autoApproveReads | When the agent asks before running a tool. Reads are approved for you; anything that writes or runs is not. **Always allow** on a command's approval card stops asking about commands that start the same way, in that project only; they are listed under Settings > Agents, each with **Forget**. A push, a publish, a package the project does not declare, and a command chained after the allowed one are still asked about. |
| agent.verify | true | Run the project's own check before a run reports that it is finished. |
| agent.verifyCommand | (detected) | The exact command to run instead of the one detected from your project. |
| agent.maxSteps | 150 | How many model turns one run may take before it stops. |
| agent.terminal | background | Where the agent's commands run. Background runs them as hidden processes with the output in the chat; your own terminals are never taken over. |
| agent.formatOnFinish | false | Format every file the agent changed once the run ends. |
| agent.sendDuringRun | queue | Whether a message you send mid-run is held until the run finishes or steers it now. |
| agent.webFetch | true | Let the agent read a URL as text, for documentation and changelogs. |
| transcripts.retentionDays | 30 | Keep each chat as a local file the agent can read back after a long run is summarised. 0 keeps nothing. |
| agent.showReasoning | true | Show a summary of the model's reasoning in a collapsed Thought block. Each step starts about a second later. |
| agent.webSearch | true | Let the agent search the web in Agent, Plan and Ask. Each search counts against your usage. |
| agent.engine | classic | Which agent engine runs. Switching starts a fresh conversation, because the two keep state differently. |
| agent.claudeCodePath | (auto) | Path to a Claude Code executable, for the SDK engine. |
| agent.contextEditing | true | Clear finished tool results out of a long run once it passes the threshold below. |
| agent.contextEditingThreshold | 0.5 | How full the context must get before that clearing starts, as a fraction of the model's window. |
| agent.lessons | true | Keep what fixed a failed tool call, for the next run in this workspace. Stored outside the repository, capped at 15. |
| agent.evaluator | true | An independent evaluator with no memory of the run reads the request and the diff before the run is called done; a failing verdict goes back to the agent to fix, again after each round that changes files (up to four evaluations), moving to a stronger model after the second. |
| agent.subagents | true | Let the agent start subagents (built-in or your own, from .astracode/agents or .claude/agents) with their own context; only their report returns. |
| agent.maxConcurrentAgents | 4 | How many subagents one chat runs at the same time (1 to 20); more wait their turn. |
| agent.maxAgentDepth | 3 | How deep subagents may nest (1 to 5); 1 means subagents cannot start agents of their own. |
| agent.backgroundAgents | true | Subagents run in the background by default and the agent is told when each finishes; off, the agent always waits for them. |
| agent.taskRetentionDays | 30 | How many days background tasks' output files (command logs, subagent transcripts and reports) are kept. |
| agent.builtinAgents | true | Offer the built-in explore and plan subagents. |
| agent.uiGate | true | When a run changes web UI, the evaluator opens the running app (localhost only) and exercises the change before the run is called done. |
| agent.sabotageCheck | true | When a run changes code and tests and the tests pass, undo the code for a moment and run the tests again: if they still pass, they do not test the change, and the run is sent back once to write one that does. |
| agent.autoBackground | true | Start commands that never end on their own (dev servers, watchers) in the background, so the agent carries on with their first few seconds of output. |
| agent.wakeOnBackgroundEnd | true | When a background command the agent started ends after the run has finished, start a turn so the agent can react. At most three in a row without a message from you. |
| index.rerank | true | Let the cheapest chat tier reorder the top twenty code-search results once per search. |
| index.enabled | true | Index the workspace for search by meaning. Chunks go through the gateway to an embedding model; vectors stay on your machine. |
| agent.reportOutcomes | true | Send counts of how each agent run ended, which kind of error or update failure you saw, and which AstraCode commands, panel actions and settings you use (never a setting's value), with your account; before you sign in, under a random install id. No prompts, code, paths or error text; only counts, fixed labels and times. |
| Setting | Default | What it does |
| model | (auto) | With your own provider key, pin one model instead of letting AstraOne choose. |
| auto.mode | balance | How AstraOne chooses when nothing is pinned. |
| auto.cheapModel | (measured) | The model AstraOne runs. Empty picks the best measured model your gateway allows. |
| auto.strongModel | (measured) | The model reserved for harder steps, and the fallback when a conversation outgrows the other one. |
| auto.escalate | true | Whether a run may hand itself to a stronger model after its checks fail. Which model, and whether your plan includes it, is the gateway's decision. |
| auto.escalateAfterFailures | 1 | How many failed check runs to absorb before escalating. 0 turns the trigger off. |
| auto.escalateAfterSteps | 0 | Escalate once a run passes this many steps. 0, the default, turns the trigger off. |
| models.effort | {} | Reasoning effort per model, for models whose provider offers that control. |
| models.hidden | [] | Models kept out of the picker. Stored as the hidden list, so a newly offered model appears without you editing this. |
| gatewayUrl | (AstraCode) | Which gateway to use. Point this at your own deployment to keep traffic inside your network. |
| siteUrl | (AstraCode) | Where your account lives. Problem reports are filed here; change it only if you run your own. |
| Setting | Default | What it does |
| completions.enabled | true | Inline completions, the grey text ahead of the cursor. |
| completions.reportQuality | true | Send anonymous accept and reject counts so completion quality can be measured. |
| tab.autoImport | true | After you accept a suggestion, add any import it needs. |
| tab.autoImportPython | false | The same for Python. Still in beta. |
| tab.partialAccepts | true | Accept the next word of a suggestion instead of all of it. |
| tab.suggestionsWhileCommenting | true | Let Tab suggest inside comments. |
| tab.whitespaceSuggestions | false | Show suggestions that only add newlines and indentation. |
| tab.ignoredFiles | (none) | Comma separated globs where Tab will not suggest, such as generated code or snapshots. |
| Setting | Default | What it does |
| agent.textSize | default | Conversation text size in the panel. |
| agent.wrapCode | false | Wrap long lines in conversation code blocks instead of scrolling sideways. |
| agent.conversationDensity | detailed | How much detail tool calls show in the conversation. |
| agent.usageSummary | auto | When to show the token and usage summary at the foot of the panel. |
| layout.chatSide | right | Which side the chat pane sits on. |
| layout.autoHideEditorWhenEmpty | false | When the last editor tab closes, hide the editor area so chat fills the window. |
| chatAsEditorTabs | true | Open chat as an editor tab rather than revealing the sidebar view. |
| windowLayout | editor | Which arrangement the Open Chat command produces. |
| home | always | What an empty editor area shows. |
| panel | react | Which chat panel implementation loads. Reload the window after changing it. |
| activityBar.maxVisible | 4 | How many activity icons sit on the bar before the rest move under the chevron. |
| showManageGear | false | Show the editor's own Accounts and Manage controls in the title bar. |
| review.controlLocation | breadcrumb | Where the accept and reject controls for an agent's changes appear. |
If you would rather bill a provider directly, add your own key in settings. Requests then go to that provider on your account instead of being counted against your AstraCode plan.