Free Copilot
Free Copilot is a VS Code extension that turns GitHub Copilot's own chat into a free AI-powered assistant. It drives your own browser session against DeepSeek and Gemini, so you can chat with a frontier model without a paid API key.
⚠️ Not affiliated with DeepSeek, Google, xAI, OpenAI or Anthropic. This extension automates third-party websites programmatically to give you a free coding assistant through your own logged-in browser session.
Free Copilot has no chat of its own
This is the whole point of 0.3.0. Free Copilot is not another chat panel competing for space next to GitHub Copilot — it is a model provider for GitHub Copilot itself. It registers a VS Code language-model provider, so its models appear in the same picker GitHub Copilot already uses. Pick one, and the editor's own chat — its agent loop, its tools, its approvals, its history — drives a real tab on the provider's site.
The Free Copilot panel you open from the Activity Bar is not a chat. It is only where you set the extension up: Accounts (your saved logins) and Settings (how the models behave). Once your accounts exist, you never need that panel open — everything else happens inside GitHub Copilot's chat, exactly as if Free Copilot were a first-party model.
What you get
- Free models, in the picker you already use — no separate chat window, no second agent loop, no copied conversation. The models appear under a Free Copilot group in GitHub Copilot's model picker.
- Your own browser, your own logins — uses a browser you already have installed (visible, not headless), so it reuses your existing cookies and passes the sites' anti-bot checks.
- One model entry per saved account — each account you create appears in the chat model picker as
account-platform (for example user1-DeepSeek).
- A tab per chat — every chat you start opens its own browser tab and keeps its own website conversation, so a chat you leave keeps answering while you work elsewhere.
- VS Code's own tools — whichever tools you leave enabled in the chat's tool picker are described to the site, and when the model asks for one, VS Code runs it: its file, search and terminal tools, with their usual approval prompts.
- Attachments — an image, PDF or document attached in the chat is handed to the site as a real file, the same way you would drag one onto the website.
- Thinking traces — the site's reasoning (DeepSeek's DeepThink panel) is shown as the collapsible Thinking block the editor's chat draws.
Requirements
- VS Code
1.125.0 or above.
- An installed browser: Chrome (default), Edge, or nothing at all — the bundled Chromium works too. Only Chromium-based browsers are supported (see Browsers).
- A free account on one or more of the supported sites.
Getting started
- Install the extension and reload the window.
- Open the Free Copilot icon in the Activity Bar. It has two tabs:
- Accounts — create a saved browser session.
- Settings — how the models behave once they exist.
- In Accounts, give the new account a name and click + Add, then tick the models it should offer. An account with nothing ticked is not shown in the model picker.
- Open VS Code's own chat, open the model picker, and choose your account under the Free Copilot group. Each entry is one of your accounts paired with one of the models you ticked for it, named
account-platform (e.g. user1-DeepSeek).
- A tab opens on the provider's site. Log in there, handle any CAPTCHA, then click Save Session on that account's row in the Accounts tab.
- Ask a question. The site's answer streams back into the editor's chat.
Repeat step 3 for as many logins as you want. Each chat you start gets its own tab.
Supported sites
- DeepSeek (
chat.deepseek.com)
- Gemini (
gemini.google.com)
More coming soon.
Gemini brings its own built-in tools (Think, DeepSearch, web search, code execution, Artifacts, Canvas…), and a model will often reach for one of those instead of the tool-call format the extension teaches it. Each provider therefore declares the tools its site offers in its config, and the briefing names and forbids them, so tool use stays inside your VS Code workspace. Providers with no such tools (DeepSeek) get the unchanged briefing.
Settings
Everything here is in the Settings tab of the Free Copilot panel.
| Setting |
Description |
free-copilot.browser |
Which installed browser to drive: chrome (default), edge, or chromium (the bundled one). Needs a window reload. See Browsers. |
free-copilot.maxToolCallsPerTurn |
How many tool calls one turn may make before the model is stopped and asked to refine the request (default 25). Every round trip is a full website request, so this is also a cost ceiling. |
free-copilot.correctionAttempts |
How many times a reply that could not be used (an unparsable tool call, or an empty answer) may be corrected before the turn gives up (default 3, max 10). Each correction is a full website round trip; set 1 to disable the retry. |
free-copilot.responseDelayBaseSeconds |
Base pause (a, seconds) before each message is submitted, so responses are not instant. 0 disables. |
free-copilot.responseDelayJitterSeconds |
Random jitter (b, seconds) around the base. Clamped to a. 0/0 disables. |
free-copilot.experimentalNativeChat |
Whether Free Copilot's models appear in VS Code's own chat. On by default; turning it off keeps the editor's chat untouched. Needs a window reload. |
free-copilot.nativeChatAccount |
Fallback only: which saved account the profile-less picker entry uses. Leave empty to pick automatically. |
free-copilot.maxNativeChatConversations |
How many chats keep their own browser tab before the least recently used one is forgotten (default 8). Its tab is never closed for you. |
free-copilot.nativeChatThinking |
Show the site's reasoning trace in the editor's chat. Needs a VS Code that supports thinking parts (1.130+). |
free-copilot.nativeChatDebug |
Diagnostic: print every message the editor sent, and whether anything was forwarded to the website. Off by default. |
Files as context
A chat box cannot carry bytes, so the only honest way to "attach" a file is to hand it to the site the way you would drag one in.
| How it gets there |
What happens |
| You attach a file in VS Code's own chat |
An image, PDF or document is written to a temporary file, handed to the site's own upload, and the message asks the model to read it there. |
| You use the Free Copilot attach tool |
The freecopilot_attachFile tool takes a workspace path — useful when a file cannot travel as text, such as a PDF or a screenshot. |
| Something is too long to paste |
Text over the site's own limit is attached as a file with a one-line pointer in the chat, rather than being truncated away. |
Temporary files live in your OS temp folder (free-copilot-attachments/) and are cleared as new chats start.
Browsers
Free Copilot drives a browser you already have, so the logins in it are the ones
your saved sessions capture. Set free-copilot.browser to choose which:
| Value |
What it launches |
chrome |
Google Chrome (the default). |
edge |
Microsoft Edge. Same Chromium engine, launched by its own channel name. |
chromium |
Playwright's bundled Chromium — for machines with no branded browser. It starts logged out, so you log in once and save that session. |
If the browser you chose is not installed, Free Copilot warns you and falls back
to the bundled Chromium rather than failing every chat.
Only Chromium-based browsers are supported. The extension relies on
Chromium-only anti-automation flags (dropping --enable-automation and
disabling the AutomationControlled blink feature) so the sites it drives do not
see navigator.webdriver and block sign-up / login. Firefox has no equivalent,
so it was removed rather than half-supported.
Changing this setting needs a window reload.
Privacy
- This extension does not send your messages or credentials to any server of its own.
- All automation happens through a local browser on your machine. Your conversations go directly to the provider you choose.
- Sessions (cookies and localStorage) are stored locally as Playwright
storageState files.
Limitations & disclaimers
- Unofficial. This is not an official client. The sites it drives can change their DOM or terms of service at any time and may break the selectors.
- Site terms. Automating these sites may violate their terms of service. Use it responsibly and at your own risk — review the provider's terms and keep your account in good standing.
- Fragile. Because it relies on DOM selectors, an update to a provider's page can break extraction until the selectors are updated.
- Slow with tools. Each tool round trip is a full website request (roughly 7–9 seconds), so an agent task that uses several tools takes minutes. Ask mode is fine for plain questions.
- A damaged tool call is refused, not run. The site's model writes each call as text, and a chat website re-formats text that is not inside a code block. A payload that was not fenced, a call that spilled into the next one, or one carrying the chat site's own control token is never handed to a tool — a damaged write is worse than a missing one. Free Copilot then asks for a corrected call (up to
free-copilot.correctionAttempts times, default 3); if every attempt is refused too, the reply is shown as text so nothing is silently lost.
License
MIT