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. |
| 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 once. |
| agent.subagents | true | Let the agent hand search, verify and build sub-tasks to subagents with their own context; only their summary returns. |
| 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 anonymous counts of how each agent run ended. No prompts, code, paths or error text; the record has no free-text field. |
| 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 |
| compact.auto | true | Summarise the conversation as it approaches the model's context limit. |
| cache.keepFresh | 2 | How many of the newest messages stay outside the cached prefix. |
| memories.enabled | true | Let the agent remember durable facts about this project between sessions. |
| instructions | (none) | Instructions the AI always follows, in chat, inline edit, and agent and plan mode. |
| principles | true | Apply AstraCode's built in constraints on how code should come out. |
| projectRules | true | Apply the rules file a repository ships, layered over those principles. |
| ask.projectRules | true | Apply that same rules file to Ask mode, not only to the agent. |
| 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.