Regent: AI coding agent for VS Code
Regent is an AI coding agent that lives in the VS Code sidebar. You describe a task in chat. Regent reads your
project, can write a plan for you to approve, edits files, runs commands such as your build and tests, and tells
you what it did and what it cost.
You bring your own API key: InnoGateway, Anthropic Claude, OpenAI, Google Gemini, or any server that speaks the
OpenAI chat format.
A sample project. Left: a Plan-mode task ends with a plan. Right: after Approve and continue, Regent works, and the chat shows its cost and context meter.
Get started
- Install Regent and open a project folder in VS Code. Regent works on the open folder and needs a trusted
workspace.
- Add your key. Click the Regent icon in the Activity Bar. The first time, a terms and conditions pop-up
appears (see Privacy and your data); after you accept, Regent opens Settings. Pick a
provider (InnoGateway is the default) and paste its API key. Regent checks the key with the provider before it
saves it. You can also run Regent: Set API Key from the Command Palette.
- Open Chat and type a task, for example "add input validation to the signup form".
Plan mode and Act mode
Every chat has a Plan | Act switch under the text box. A new chat starts in Act.
- Plan mode. Regent reads and searches your project, may ask you questions, and writes nothing and runs no
command. The task ends with a plan: the goal, the files it will change, numbered steps (each with how to check
it), and the risks. If your request needs no change, it just answers.
- Approve and continue. The plan card has this button. It switches the chat to Act mode and starts the work
from the plan.
- Changing a plan. Type what to change in the text box and send it in Plan mode. Regent writes a new plan.
- Act mode. Regent reads files, writes files and runs commands without asking each time (it still asks in the
cases listed under Safety).
What Regent can do
- Read and search the project. Read files, list folders, search text and file names, and, when the project
has a code index, ask about functions, who calls them and what a change would affect.
- Change files. Write and edit files, apply one patch across several files, and delete a file. Changes are
written straight to disk, with no undo, so keep your work in Git. Regent will not write or delete a file that
has unsaved edits in an editor tab; it refuses and asks you to save first.
- Run commands in the project folder (build, tests, git and so on). A command has a time limit (60 seconds by
default), long output is shortened, and Regent can start a command in the background and read it later.
- Check the build. After files change, Regent runs the project's build or compile command and, if it fails,
gives the error back to the AI for up to two fix attempts. This works for Maven, Gradle, Go, npm and
TypeScript projects, and does a syntax check for Python. You can turn it off.
- Ask you a question instead of guessing, with choices to click.
- Attach files with
@. Type @ in the text box and pick a file, or click the @ button. Secret files are
not attached.
- Read web pages. Regent asks before it reads the first page of each new site. Web search is off until you set
it up.
- Stop and Resume. The Stop button (or Regent: Stop Current Task) ends the task. A stopped prompt shows a
small Resume button that carries it on.
- History. Earlier chats of the project are in the History tab (the clock icon at the top), where you can reopen and
continue them. Chats of
other projects can be read there.
- Change the model in the middle of a chat. A change in Settings applies from your next message and the chat
keeps its conversation.
Knowledge bundle and code index
Regent can build two helpers for a project:
- a code index, which answers questions about functions, callers and the effect of a change, and
- a knowledge bundle, a short, searchable summary of how your code is organised, written by the AI.
When you start a chat in a project with no code index, Regent asks one question about both. Answer Yes and it
builds the index first (your first answer needs it), then builds the bundle in the background while you keep
chatting; a line above the text box says so. Answer No and it builds neither. A project that already has a
code index is not asked: Regent builds a missing or out-of-date bundle in the background by itself. You can turn
that off with regent.okf.autoBuild.
Good to know:
- The build uses your own API key and a cheaper model of your provider. Its cost is part of the chat's cost.
- The AI can read the bundle only once it has been built.
- The files are in
.codegraph/ and .regent/ in the project. Regent adds both to the project's .gitignore
(and creates the file if there is none).
Safety
Regent works in your project with your permissions, so it has guards. They stop the careless case; they are not a
sandbox.
It asks you first, or refuses, for:
- Git commands that throw away uncommitted work (such as
git reset --hard, git checkout -- file,
git clean -f): it asks before they run.
- Secret files. It will not read or attach
.env files, private keys and similar files, and refuses
commands that read or copy them.
- Anything outside the project folder. File tools cannot reach outside the folder (links and junctions
included), and commands that change directory out of it are refused.
- Dangerous commands. Recursive deletes aimed at a drive root, your home folder or a folder that contains the
project are refused.
- Files with unsaved edits in an editor tab.
- New websites. The first page from each site asks first; you can list sites to allow in
regent.agent.webAllowedSites.
Secrets masking. API keys, tokens, passwords in command lines and the values of known secret files are masked
in what the AI sees and in the saved logs. Masking recognises common formats; an unusual secret can slip through.
Regent does not run in Restricted Mode or in virtual workspaces, because it writes files and runs commands.
Cost and the context meter
Under the text box you see the chat's estimated cost so far. Hover the gauge icon for input, output and cache
tokens. Regent counts the knowledge bundle's cost in this figure. The cost is an estimate from list prices: it is
shown as "no price" for a model Regent has no price for, and an OpenAI-compatible server has no price. The status
bar also shows the running cost.
Next to it is the context meter: how full the model's context window is. A mark on the bar shows where Regent
closes the chat (80% of the window by default, regent.agent.contextStopThreshold); the bar turns amber as it
nears that mark and red at it. When a task that used tools is finished, Regent sends the AI only your prompt and
a short record of what happened on the next prompts, not every tool call and file, so long chats cost less. You still see the
full result.
Models and providers
| Provider |
What you need |
| InnoGateway (default) |
Your InnoGateway API key |
| Anthropic Claude |
An Anthropic API key |
| OpenAI |
An OpenAI API key |
| Google Gemini |
A Gemini API key |
| OpenAI compatible |
The full address of the server's chat completions endpoint, the model name, and a key |
The Settings screen lists a few models for each provider; the regent.model.name setting accepts any model id
the provider offers. Regent depends on the model calling tools: a server or model that cannot do that reliably
will not work well.
Commands
Open the Command Palette and type "Regent":
Open Chat, New Session, Stop Current Task, Set API Key, Set Web Search Key, Clear Web Search
Key, Show Session Log, Show Output.
Key settings
| Setting |
Default |
What it does |
regent.model.provider |
gateway |
The AI provider. |
regent.model.name |
empty |
The model id. Empty uses the provider's default. |
regent.model.openaiCompatibleEndpoint |
empty |
Address of an OpenAI-compatible server. Only your own user settings can set it. |
regent.agent.maxTurns |
50 |
Most model turns one task may use. |
regent.agent.runCommandTimeoutMs |
60000 |
Time limit for one command the AI runs. |
regent.agent.buildCheck.enabled |
true |
Run the build after files change and feed back a failure. |
regent.agent.contextStopThreshold |
0.8 |
Share of the model's window at which the chat is closed. |
regent.okf.autoBuild |
true |
Build the knowledge bundle in the background. |
regent.agent.webAccess |
true |
Let the AI read web pages. |
regent.agent.webSearchProvider |
off |
brave or tavily, after Set Web Search Key. Search words leave your computer. |
All Regent settings are listed under Settings, "Regent". A change to the provider or model applies from your next
message; most others apply from the next task.
Privacy and your data
- Your AI provider. Your prompts and the project content the AI reads (including source code) are sent to the
provider you choose, using your API key. Their terms apply as well. API keys are kept in VS Code's secret
storage.
- Terms and conditions. The first time you use Regent, a pop-up shows the terms. You must tick "I accept all
the terms and conditions" and press Continue; there is no decline button, and Regent does not work until you
accept. A new version of the terms asks again. You can read them any time in Settings, About.
- Usage logs. Under those terms, after you accept, Regent uploads in the background a log of each prompt to
Innocito's server: your prompts, the AI's replies, the steps and tool calls with their results (this includes
the source code Regent read or changed), token counts and cost, timings and error kinds, plus details of your
computer and project (installation ids, host name, operating system user name, network addresses, project
folder name, git remote and branch). API keys are not collected; known secrets are masked before upload, but
masking cannot catch everything, so do not use Regent on code you may not share. If you are offline, logs
wait on your computer and go later. VS Code's own telemetry setting does not turn this off.
- What Innocito does with it. The terms say the data is used only to analyse and improve Regent, and is not
sold or used for advertising. It is kept for 180 days, and you can ask for it to be deleted earlier; Settings,
About shows the installation id to quote.
- On your computer. Every chat is saved locally, in Regent's own folder in your user data (
%APPDATA%\Regent
on Windows) and in .regent/logs in the project. Saved chats contain file contents. Deleting a chat in History
only hides it; the files stay on disk.
Requirements
- VS Code 1.90 or newer.
- An API key for one of the providers above, and access to its service from your network.
- A folder open in a trusted workspace.
- Most testing so far has been on Windows.
Known limitations
- Changes are written directly to your files with no approval step and no undo. Use Git.
- Replies appear step by step, not word by word.
- One task at a time. If several folders are open, Regent uses the first.
- A chat closes when it reaches the stop threshold of the model's window; start a new chat. Regent does not
summarise a chat to continue it.
- A plan is kept whole in the conversation and sent with every later request, which costs tokens.
- The build check only knows the project types listed above.
- Command and secret guards cannot understand everything a script does. They are a safety net, not a boundary.
License
Regent is proprietary software of Innocito; see the LICENSE file.
Developing Regent
How the extension is built and run is in DEVELOPMENT.md.
| |