Jonas Helming, Maximilian Koegel and Philip Langer co-lead EclipseSource, specializing in consulting and engineering innovative, customized tools and IDEs, with a strong …
Is Forking VS Code a Good Idea?
December 17, 2024 | 8 min ReadFor tool builders aiming to create a custom IDE or tool, forking VS Code might seem like a fast and effective solution. Its extensive feature set, vast extension ecosystem, and familiar interface make it an attractive starting point. However, while forking provides the flexibility to break free from the limitations of the VS Code extension API, it introduces significant challenges that are often overlooked. We have observed these challenges in practice in our customer projects, so let’s explore the reasons for considering a fork, the hidden drawbacks, and whether this approach is truly the best option.
Why Do People Fork VS Code?
The primary motivation for forking VS Code is to overcome the constraints of its VS Code extension API. While the API enables many customizations, it also imposes strict limitations, especially for those building tailored, next-generation tools or integrating cutting-edge technologies like AI. Forking solves this issue by giving developers complete control over the codebase, allowing them to modify core functionality and innovate freely.
The field of AI-powered tools is an excellent example of this. Let’s dive deeper into why forking is so appealing in this field.
AI-powered tools: Custom UX and Deep AI Integration
AI-powered IDEs like Cursor, IDX, and Codeium (Windsurf) show how AI can transform the developer experience. For these tools, success often depends on how seamlessly AI integrates into the user’s workflow. Unfortunately, the VS Code extension API imposes barriers that can stifle innovation.
Custom User Interfaces and experience, including features like overlay chats, specialized side panels, or AI-driven enhancements embedded directly into the workspace are hard or impossible to achieve using the VS Code extension API. Even simple things like overlay chats in the terminal (as seen in the open Theia IDE below) are impossible to implement without breaking out of VS Code’s constraints.
Furthermore, in this particular field, AI-powered tools directly compete with GitHub CoPilot, which is organizationally tightly integrated into VS Code and somewhat operates beyond the rules set for standard extensions. Forking allows competitors to create similar levels of integration without playing by any restrictions of an official API.
AI-powered tools are just one example of how the restrictions of the VS Code extension API can impact innovation, but this applies to many tools and domains. Typical examples include creating custom UX and workflows, integrating with specialized systems or hardware, or moving away from VS Code standards to serve unique user needs.
Therefore, for innovators looking to differentiate their product, these limitations make forking an appealing option, as it offers complete freedom to innovate. However, this freedom comes with significant changes in set-up and risks, you should be aware of.
Hidden Shortcomings of VS Code Forks
Before we dive into discussing the technical challenges of forking VS Code there are some often-overlooked drawbacks that extend beyond the technical challenges of maintaining a fork.
Loss of access to the VS Code Marketplace
Forking VS Code means losing access to the official VS Code Marketplace due to its terms of use - a vital resource for extensions. You can set up an alternative extension registry, or use OpenVSX, but you should be aware that you cannot just continue to use the same source and ecosystem of extensions as VS Code does.
Proprietary Extensions Become Unusable
Several proprietary VS Code extensions are explicitly restricted to Microsoft’s official builds. These include popular tools like:
Live Share (collaborative editing and debugging, see license)
Remote Development Extensions (e.g., Remote Container Support)
Proprietary Language VS Code extensions (e.g., CPP Tools or Github Copilot)
Without access to the marketplace and several proprietary extensions, users may feel the experience of your forked IDE falls short compared to the original VS Code, and as a tool builder you have to deal with this, even though it feels unexpected for a VS Code fork. For tool builders you are then in danger of being isolated, as a fork usually does not benefit from community support or shared solutions to these problems.
Technical shortcomings of forking VS Code: The Maintenance Burden
Forking VS Code often starts as a small change—perhaps replacing the logo or making a minor customization. At first, it seems manageable, as the areas of interest may remain static in VS Code’s base code. However, over time, the gained freedom is typically used and changes to the fork accumulate. As a consequence, maintaining compatibility with the rapidly evolving VS Code codebase becomes increasingly challenging.
A False Sense of Security
Initially, the areas where the fork deviates from VS Code may remain unaffected by upstream changes, giving a false sense of security. However, VS Code evolves rapidly, as new features, bug fixes, performance improvements or architectural updates are introduced, even minor changes can cause significant maintenance challenges. We have observed this pattern in practice in customer projects forking VS Code, where this journey started smoothly, but became a nightmare later.
Unpredictable Effort
Forking VS Code means taking on the responsibility of staying up-to-date. Teams often want to maintain compatibility with VS Code extensions, requiring frequent updates to the base code. Major changes, such as generic performance improvements touching a lot of code, updating base technologies, losing specific APIs or switching the build process, can introduce drastic shifts that demand substantial effort to incorporate. These changes are not controlled by your team, they typically are not even announced in advance, and can hit you at any point in time.
Community Isolation
By forking VS Code, you isolate your project from not only the vibrant VS Code community but also any broader collaborative ecosystem. You are entirely alone in maintaining the fork, which diverts resources away from building innovative features and places the entire burden of compatibility and maintenance on your team.
An Alternative Path: Building on Open Frameworks
For tool builders who need to break free from the limitations of the VS Code extension API, forking is not the only option. Open platforms like Eclipse Theia provide a compelling alternative, offering flexibility without the downsides of forking. The goal of these platforms is not to create just one product, such as VS Code, but they are designed to be an extensible platform that constitutes the stable basis for custom tools with their unique requirements in general. And this makes a huge difference in their architecture, code structure, and API.
Benefits of a Tool Platform
Custom UX: A platform typically allows you to design fully customized user experiences, including innovative features like overlay chats and deeply integrated AI workflows.
Compatibility: One of the main advantages to VS Code is the huge ecosystem of VS Code extensions. Therefore, Theia even supports VS Code extensions while giving you control over the core architecture. Theia is also built on similar standards like VS Code including the Language Server Protocol (LSP), the Debug Adapter Protocol (DAP), the Monaco Code editor, TypeScript, etc.
Collaborative Maintenance: As a modular, community-driven and vendor-neutral platform, shared platforms evolve with shared contributions, reducing the maintenance burden. As a platform can be customized and tailored without forking, you benefit from this shared development without the overhead of rebasing a fork.
Leveraging the Power of Community
The strength of every platform is the surrounding ecosystem and community, which shares the work of creating open alternatives to proprietary solutions. For example:
OpenVSX provides an open alternative to the VS Code Marketplace.
Open Collaboration Tools can replace Live Share.
CDT Cloud provides support for C/C++ tools
Theia has built-in remote container support.
Theia AI offers an open, flexible framework for building AI-powered tools and IDEs, aligning perfectly with the needs of modern tool builders.
All the solutions mentioned above are fully open source. They are developed by a diverse, global community and governed by the vendor-neutral Eclipse Foundation. Their permissive licenses ensure they are ready for commercial adoption, making them ideal for tool builders who require flexibility and reliability without concerns about vendor lock-in.
Conclusion: Build for the Long Term
Forking VS Code often feels like the fastest path to innovation, especially for those developing AI-powered tools or custom UX features. However, the hidden costs—loss of access to the Marketplace, proprietary extensions, and the maintenance burden—can quickly outweigh the benefits.
Instead, consider building on open frameworks like Eclipse Theia, which combine flexibility with compatibility. Or if similarity to VS Code is your primary concern, stick to VS Code extensions and live with the restrictions. By choosing a sustainable foundation, you can focus on delivering value to your users while ensuring your tool is innovative and built to last.
That said, there are cases where forking VS Code can make sense and we work with customers doing so—if your changes are minor, you are ready to accept unforeseeable maintenance costs, or the drawbacks don’t impact your goals, it can be a viable option. It’s also important to mention that VS Code itself is designed to support innovation through its stable extension API, allowing Microsoft to evolve the core freely without catering to forks. Understanding the trade-offs will help you make the best decision for your tool-building journey.
If you are interested in building custom web-based tools or migrating existing desktop tools, EclipseSource provides consulting and implementation services backed by our extensive experience with successful tool projects. We can also guide you through the initial technology choice. We specifically also specialize in AI-powered tools and support for popular platforms, whether it is Eclipse Theia or VS Code. Additionally, we offer consulting and support for hosting web-based tools in the cloud.
Get in contact with us to discuss your project today!