Skip to content

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

Install

The extension is published on the Visual Studio Marketplace as futureim.futurex. Search FutureX in the Extensions view, or run either of these:

Command line
code --install-extension futureim.futurex
Quick open (Ctrl+P)
ext install futureim.futurex

It 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.

CommandWhat it doesKey
FutureX: Open ChatFocus the chat panel.Ctrl+Alt+X
FutureX: New ChatStart a fresh conversation and a new agent session.
FutureX: Explain This CodeExplain the selection, with its diagnostics attached.Ctrl+Alt+E
FutureX: Fix This CodeDebug the selection using the problems the editor reports.
FutureX: Refactor This CodeRewrite for clarity without changing behaviour.
FutureX: Document This CodeWrite doc comments in the language's conventional style.
FutureX: Write Tests For This CodeTests in the framework the project already uses.
FutureX: Review My Git ChangesRead the working diff and review it.
FutureX: Generate Commit MessageWrite the commit message from the staged diff into the Source Control box.
FutureX: Add File To ChatBring a file into the conversation from the explorer or editor.
FutureX: Select ModelSwitch between Pro, Fast, Light and Eco.
FutureX: Select Thinking EffortChoose how long the model reasons before answering.
FutureX: Sign InSign in with a free FIM account through the browser.
FutureX: Sign OutForget the stored session.
FutureX: Account and UsageOpen your account, usage and billing, or sign out.
FutureX: Reset Permission ApprovalsForget every remembered approval.
FutureX: Stop GeneratingCancel the answer in flight.Esc in the panel
FutureX: Show LogsOpen 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 origin remote 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.

SettingDefaultWhat it controls
futurex.modelfx-fastWhich model answers.
futurex.effortdefaultHow long it thinks before answering.
futurex.approvalsaskWhether an approval lasts one call, the session, or the workspace.
futurex.tools.terminaltrueWhether the agent may propose terminal commands.
futurex.tools.webtrueWhether the agent may search and read the web.
futurex.context.projecttrueShare the project card and machine summary when a session opens.
futurex.context.gittrueShare branch and working-tree summary.
futurex.context.activeFiletrueShare the open file, selection and its problems.
futurex.showThinkingtrueShow the model's reasoning above its answer.
futurex.statusBartrueShow FutureX in the status bar.
futurex.trial.enabledtrueOffer the free, no-account prompts.
futurex.apiUrlhttps://api.futureim.orgPoint 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.