DocsVS Code extension
FutureX for VS Code
The FutureX agent, in your editor's sidebar. It answers with the open file, your selection, the problems your language server reports, and your git branch already in hand — and once you sign in, it edits files and runs commands with your approval. The first 5 prompts need no account.
All documentation pages
Getting started
Reference
Install
The extension is published on the Visual Studio Marketplace as futureim.futurex. Search FutureX in the Extensions view, or run either of these:
code --install-extension futureim.futurexext install futureim.futurexIt requires Visual Studio Code 1.90 or newer on Windows, macOS, or Linux. There is nothing else to install — no API key to paste, no runtime to download.
The extension declares no activation events, so it stays off your startup path entirely: it loads the first time you open the panel or run one of its commands.
Your first prompt
Click the FutureX icon in the activity bar, or press Ctrl+Alt+X (Cmd+Alt+X on macOS). Type a question about the file you have open and press Enter.
You do not need to paste any code. The panel attaches the file path and language, the code itself — the lines you selected, or the head of the file when you have selected nothing — and any errors or warnings the language server is reporting on them. That context block is shown in the transcript, collapsed, so you can read exactly what was sent.
The first 5 prompts run without an account. The counter lives on the server, and the panel footer shows what is left.
Signing in
Run FutureX: Sign In. Your browser opens the FIM portal with a short code already on your clipboard; approve it there and the extension is signed in. There is no API key to paste and none to leak.
Credentials are stored in your operating system's keychain through VS Code's secret storage — Credential Manager on Windows, Keychain on macOS, libsecret on Linux. They are never written to a settings file and never synced.
Signing in unlocks the full agent (reading the project, editing files, running commands) and the Pro model. A FIM account is free to create.
Commands
Every command is in the command palette under FutureX. The code commands are also on the editor's right-click menu, under a FutureX submenu.
| Command | What it does | Key |
|---|---|---|
| FutureX: Open Chat | Focus the chat panel. | Ctrl+Alt+X |
| FutureX: New Chat | Start a fresh conversation and a new agent session. | — |
| FutureX: Explain This Code | Explain the selection, with its diagnostics attached. | Ctrl+Alt+E |
| FutureX: Fix This Code | Debug the selection using the problems the editor reports. | — |
| FutureX: Refactor This Code | Rewrite for clarity without changing behaviour. | — |
| FutureX: Document This Code | Write doc comments in the language's conventional style. | — |
| FutureX: Write Tests For This Code | Tests in the framework the project already uses. | — |
| FutureX: Review My Git Changes | Read the working diff and review it. | — |
| FutureX: Generate Commit Message | Write the commit message from the staged diff into the Source Control box. | — |
| FutureX: Add File To Chat | Bring a file into the conversation from the explorer or editor. | — |
| FutureX: Select Model | Switch between Pro, Fast, Light and Eco. | — |
| FutureX: Select Thinking Effort | Choose how long the model reasons before answering. | — |
| FutureX: Sign In | Sign in with a free FIM account through the browser. | — |
| FutureX: Sign Out | Forget the stored session. | — |
| FutureX: Account and Usage | Open your account, usage and billing, or sign out. | — |
| FutureX: Reset Permission Approvals | Forget every remembered approval. | — |
| FutureX: Stop Generating | Cancel the answer in flight. | Esc in the panel |
| FutureX: Show Logs | Open the output channel — the first thing to attach to a bug report. | — |
Models and effort
Two dropdowns sit at the top of the panel: which model answers, and how long it thinks first.
- Pro — the hardest problems, deepest reasoning, largest answers. Requires a signed-in account.
- Fast — the everyday workhorse, and the default.
- Light — light reasoning, quicker turnaround.
- Eco — cost discipline: short, direct answers.
Each model allows a different set of thinking levels, and the picker only offers what the selected model supports. The gateway enforces the same rule server-side, so a model can never run at an effort it does not allow. Every model bills at the same flat rate of $1 per 1M tokens, input and output alike.
Permissions
Reads are never gated — they are how the agent answers anything. Everything that changes something stops and asks, with the change itself in front of you: the unified diff for an edit, the literal command line for a terminal run.
Consent is per kind, not global: agreeing that the agent may edit files says nothing about whether it may run commands. The four kinds are edit, create, delete and run.
How long a grant lasts is set by futurex.approvals:
ask— every time. The default, and a grant covers one call.session— until the window closes.workspace— remembered for this workspace.
FutureX: Reset Permission Approvals forgets all of them. In a workspace you have not trusted, the agent drops to read-only tools: no edits and no commands, regardless of these settings.
What gets sent
Nothing is uploaded wholesale. There is no indexing pass, no background scan, and no copy of your repository on a server.
- With each prompt: the open file's path and language; the code itself — your selection (up to ~6,000 characters), or the opening ~4,000 characters of the file when nothing is selected; the diagnostics on it; and a git summary (branch, upstream, which files are staged, unstaged or untracked, and your
originremote URL). This block is printed in the transcript, collapsed, so you can read all of it. - Once per session: a short project card (name, language, framework, package manager, test runner — read from your manifests) and a machine summary (OS, shell, which tools are on your PATH). No file contents. Because it is sent once rather than per prompt, it cannot live in the transcript; it is written verbatim to the output channel instead (
FutureX: Show Logs). - On demand: once signed in, the agent reads specific files when it needs them. Those reads happen inside your editor, confined to your workspace folder; only the result goes back.
Each of the three is switchable: futurex.context.activeFile, futurex.context.git and futurex.context.project.
Settings
All settings live under the futurex. prefix. Open them with Preferences: Open Settings and search “futurex”, or edit settings.json directly.
| Setting | Default | What it controls |
|---|---|---|
| futurex.model | fx-fast | Which model answers. |
| futurex.effort | default | How long it thinks before answering. |
| futurex.approvals | ask | Whether an approval lasts one call, the session, or the workspace. |
| futurex.tools.terminal | true | Whether the agent may propose terminal commands. |
| futurex.tools.web | true | Whether the agent may search and read the web. |
| futurex.context.project | true | Share the project card and machine summary when a session opens. |
| futurex.context.git | true | Share branch and working-tree summary. |
| futurex.context.activeFile | true | Share the open file, selection and its problems. |
| futurex.showThinking | true | Show the model's reasoning above its answer. |
| futurex.statusBar | true | Show FutureX in the status bar. |
| futurex.trial.enabled | true | Offer the free, no-account prompts. |
| futurex.apiUrl | https://api.futureim.org | Point at a self-hosted FIM deployment. |
Both futurex.model and futurex.effort are window-scoped, so a workspace settings.json can override either for a single project.
Troubleshooting
The panel is blank after an update
Reload the window (Developer: Reload Window). Installing a new version over a running one tears down the old extension host, and the panel's content lives there — so the view frame remains while its contents do not. This affects every VS Code extension, not just this one; closing and reopening the panel does not help, because the provider lives in the extension host.
A command reports “command not found”
That means the extension failed to activate. Open FutureX: Show Logs and the Developer: Show Logs… → Extension Host output, and send us what they say. Reloading the window fixes the common case (an update applied while the old version was running).
The free prompts are used up sooner than expected
The allowance is counted per install and, more loosely, per network. On a shared office connection the network bucket can be reached by somebody else first — the message will say so. Signing in with a free FIM account clears it either way.
It cannot reach FutureX
The extension talks to https://api.futureim.org. Behind a proxy or on a self-hosted FIM deployment, point futurex.apiUrl at the right origin — the value is the bare origin, with no /api/v1 suffix.