AstraCodeA coding agent for VS Code. Its models come from your AstraWork account, and every model call goes through the AstraWork gateway. Install
Then open the AstraCode icon in the activity bar. The chat stays locked until you sign in. Sign inClick Sign in to AstraWork. Your browser opens the AstraWork sign-in page. After you sign in, copy the address of the page you land on (it contains a sign-in code), or the access token (JWT) that AstraWork shows, and switch back to VS Code. AstraCode reads the clipboard for a short time after you click the button, and ignores anything that is not a sign-in credential. The token is kept in VS Code SecretStorage, never in LayoutAstraCode has one activity bar icon. It holds two views: the chat, and Session changes. To put AstraCode in the secondary side bar, next to Claude Code, right-click the view title and choose Move View, or drag the view there. VS Code remembers the position across restarts. An extension cannot place its own view, so this step is yours. Toggle the sides with AstraCode: Toggle the primary side bar and AstraCode: Toggle the secondary side bar in the Command Palette. The chat title bar has two buttons: ChatEach turn starts with an AstraCode header and the time. While a turn runs, the send button becomes Stop. Every step the agent takes is a row showing the tool, its arguments, the result and how long it took.
Giving the agent context
Projects and tasksAbove the input box are two pickers, Project and Task. Both lists come from your AstraWork account. The Task list shows only your open tasks in the coding stage. When you choose a task, the tokens and cost of each turn are recorded against it on the AstraWork productivity board. With No task, work is not measured. The task's plan dates appear under the pickers, for example Report Done appears when a task is selected. It opens a form with the task's plan dates, actual dates, tokens and cost in USD. The tokens and cost are the usage already recorded against the task; edit any field you know better. AstraWork stamps the actual dates itself. If it keeps its own dates, only a reviewer can change them. PermissionsThe permission mode decides what the agent may do. Switch it from the picker under the input box, with Shift+Tab, or with AstraCode: Change permission mode.
The approval box shows what the agent wants to do, with the diff or command and any warnings. Three rules hold in every mode:
Trust-based downgrade. If the agent reads content that looks like injected instructions, or brings in content from an outside source, the session drops to Ask first even when Auto-edit was on, and every "always allow" is cleared. Only you can lift it, by choosing Auto-edit again. Tracking changesEvery file the agent edits or creates is recorded in the session change log, visible in three places:
The diff is against the content from before the agent first touched the file, not against what is on disk, so it stays correct after several edits. Edits go through VS Code's workspace edit API. That means Ctrl+Z undoes them, and unsaved changes in an open editor are not overwritten. Commands run by the agent are not part of this log, so Running commandsThe agent's shell and Python tools run commands as
If AstraCode never falls back from With MCP serversMCP servers run someone else's code next to yours, so they are off by default ( Memory and long conversations
A rule you only say in the chat lives in that conversation. A new chat, Keep it short. Every line costs context on every later question. Each memory file is capped at 12,000 characters, and each is scanned for prompt-injection signals. A file that reads like commands is flagged in the chat, because it goes straight into the system prompt. Context. The context gauge appears at 70% of the model's context window. At about 80% (earlier when the window is small), the conversation is compacted before the next turn: the most recent turns stay word for word, and the older part becomes a summary with four sections: goal, what was learned, what changed, and what is left. Turn this off with
Sessions are saved after each turn, outside the repo. The title bar has two buttons for them:
The same actions are in the Command Palette as AstraCode: New chat, AstraCode: Chat history and AstraCode: Reopen a past session, and Slash commandsType
Your own commands go in
Commands from the repo ( Verifying after an edit
When the command fails, its output goes back into the conversation so the agent can keep fixing. When it passes, nothing is added to the context. A value set in the repo's ConfigurationEverything below is in the settings popup inside the chat panel. Open it with the gear button, or with AstraCode: Open settings. It opens over the conversation rather than replacing it, so changing a model does not cost you the question you were in the middle of. Close it with Esc, the ✕ button, or a click outside. There is one settings surface, so there are never two panels that disagree. The popup opens on a list of five sections. Each row shows a short summary, so you can check your account or the active models without opening anything. Click a row for its details, and use ‹ to go back. A red dot on a row means something there needs attention.
If sign-in is missing or the model list failed to load, the popup opens straight on that section. Context & UsageThe percentage chip next to the mode button in the input box shows how much of the model's context window this conversation uses. Click it to open Context & Usage:
Chat is blocked until you sign in. AstraCode's models come from your AstraWork account and from no other source. Models
Both are saved to The Model button next to the mode button in the input box chooses a model for this conversation only. Its menu has Make this the default, which saves the choice as Server addresses need no setup. The AstraWork gateway and web addresses are built into the extension, and there is no setting for them. AstraCode: Test connection checks that the build reaches the gateway and that your account's models come back. Capability profileThe model table shows tool calling, context window and injection resistance. The gateway does not report these three. They come from You do not need to measure anything to start. A model missing from Injection resistance cannot be probed at runtime. A model measured as Where AstraCode keeps things:
|
| Path | What is in it |
|---|---|
settings.json |
Your settings. No secrets in it, so it is safe to copy to another machine |
settings.local.json |
Overrides for this machine only, read by the CLI |
credentials.json |
The AstraWork token for the CLI, file mode 0600. In VS Code the token lives in SecretStorage instead |
state.json and backups/ |
Written by the app to keep its own state. You do not edit them |
models.json |
Capability profile from astracode measure |
projects/<repo>/ |
Chat sessions, one directory per repo |
file-history/<session>/ |
The file snapshots /undo restores from |
history.jsonl |
Every prompt you have typed, for up-arrow recall |
cache/, .last-cleanup |
Disposable. Cache files and snapshots older than 30 days are removed, checked once a day |
commands/, skills/, agents/ |
Your own slash commands, skills and sub-agents |
Set ASTRA_HOME to move the whole directory somewhere else.
Settings in settings.json
| Key | Default | Values and meaning |
|---|---|---|
astra.model |
GLM-5.2 |
Coding model. Empty uses the model AstraCode ships with |
astra.planModel |
DeepSeek-V4-Flash |
Planning model. Empty uses the model AstraCode ships with |
astra.permissionMode |
ask |
plan, ask (Ask first) or acceptEdits (Auto-edit) |
astra.sandbox |
host |
off, docker or host. See Running commands |
astra.sandbox.network |
none |
none, restricted (through the allowlist proxy) or full |
astra.sandbox.dir |
sandbox |
Folder in the workspace that holds the docker-compose.yml |
astra.mcp |
off |
off or on. See MCP servers |
astra.autoCompact |
true |
Compact the conversation automatically when the context fills up |
astra.verifyCommand |
"" |
Command to run after each turn that changes files. Read from user settings only |
astra.logLevel |
info |
debug, info, warn or error |
Your organization's policy can tighten some of these, for example the permission mode and sandbox networking. AstraCode shows a notice when it does.
Logs: AstraCode: Show logs in the Command Palette. Every line goes through the secret redactor before it is written.