GitHub Copilot's rising subscription costs have pushed some developers to look for alternatives that keep their code local and their wallets intact. A recent guide demonstrates how to wire up VS Code's built-in Copilot chat interface to a locally hosted language model, eliminating the need for a GitHub account or any cloud subscription.
What changed in VS Code to make this possible
Since version 1.121, VS Code has supported custom endpoint providers for agents and chat completions. The critical update came in version 1.122, which removed the requirement for a Copilot license or GitHub login to use that functionality. Developers can now point the Copilot chat interface at any API endpoint that speaks the right protocol, including a locally running model server.
The configuration lives in a JSON file called chatLanguageModels.json, where you define the model's identifier, display name, API URL, and capabilities like tool calling and vision support. Once saved, the model appears in the Copilot chat sidebar alongside any cloud-hosted options, and it works through the same interface.
For developers who have been paying for Copilot primarily to get inline suggestions and chat inside VS Code, this effectively replaces the cloud dependency with a local one. The tradeoff is in model quality, but for many tasks, particularly repetitive or well-defined ones, the gap has narrowed enough to matter.
Lemonade and the Granite 4 tiny model
The guide uses Lemonade as the local model server, a cross-platform tool that handles model downloads and serves an API compatible with the format VS Code expects. Installation works through standard package managers or a direct download, and the server runs on MacOS, Windows, and most Linux distributions.
The recommended starting model is Granite 4 tiny from IBM, a 7GB download that runs on hardware with at least 16GB of RAM and 12GB of VRAM for PCs, or 16GB of RAM on a Mac. The model supports tool calling, which is essential for agentic features like editing code directly, but does not support image input. It is not the most capable model available, but it works reliably on the minimum hardware specified and handles 128k tokens of context.
For developers with more powerful hardware, the guide suggests experimenting with larger models that offer better reasoning and code generation. The Lemonade server makes swapping models straightforward, so the initial choice of Granite is about accessibility rather than peak performance.
Setting up the endpoint in VS Code
The process starts in VS Code's settings, where you search for Manage Language Models. From there, clicking Add Models reveals a Custom Endpoint option. You name the group Lemonade, leave the API key blank since no authentication is needed for a local server, and select Responses API as the API type.
VS Code then opens the chatLanguageModels.json file, where you fill in the model details. The Granite 4 tiny model uses the identifier granite-4.0-h-tiny-GGUF-Q8_0, a display name like granite, and the local API URL http://localhost:13305/v1/responses. Setting toolCalling to true enables the agent features, while vision gets set to false because Granite does not process images.
After saving the file, the model shows up in the Copilot chat dropdown. You can start a conversation with it immediately, and it runs entirely on your machine with no data leaving your network.
Practical limits and realistic expectations
Granite 4 tiny is not going to replace Copilot's cloud models for complex multi-file refactors or nuanced architectural reasoning. The guide is honest about this: think of it as an intern assistant, useful for writing unit tests, summarizing code, or handling background tasks where accuracy is less critical than speed and privacy.
The value proposition is not that local models match cloud models in raw capability. It is that they offer a baseline of functionality without subscription costs, without sending proprietary code to external servers, and without depending on an internet connection. For teams working on sensitive codebases or developers who simply want to reduce their monthly expenses, that tradeoff is worth exploring.
Two troubleshooting notes round out the guide. If agentic features like code editing do not appear, the chat.agent.enabled setting needs to be turned on. If you see an error about a missing utility model, it is a known Copilot issue that resolves by manually setting the utility model preference in VS Code settings.
The broader shift toward local AI tooling
This setup reflects a larger trend in developer tooling. As local models improve and tooling like VS Code's custom endpoints matures, the gap between cloud-hosted and locally hosted AI assistance continues to shrink. Lemonade and tools like it lower the friction for running models locally, while VS Code's native support for custom endpoints removes the need for third-party extensions or complicated workarounds.
For developers who have been on the fence about Copilot's pricing, the combination of a free model server and a free editor extension offers a path to AI-assisted coding without the ongoing cost. The models will keep improving, and the tooling will keep getting easier. The question is no longer whether local AI coding assistance is possible, but whether the current generation of models is good enough for your specific workflow.