This document provides a comprehensive classification and summary of all patches applied to the VSCode source code to create VSCodium.
Patches are applied by prepare_vscode.sh in the following order:
- Main patches (
patches/*.patch) - Applied to all builds - Insider patches (
patches/insider/*.patch) - Applied only whenVSCODE_QUALITY=insider - OS-specific patches (
patches/${OS_NAME}/*.patch) - Applied based on the operating system - User patches (
patches/user/*.patch) - Custom user-defined patches - Special patches (
patches/*.patch.yet) - Conditionally applied (e.g.,disable-update.patch.yetwhenDISABLE_UPDATE=yes)
These patches rebrand VSCode to VSCodium, changing names, identifiers, and references throughout the codebase.
- brand.patch - Main branding changes throughout the codebase, replacing Microsoft/VSCode branding with VSCodium
- binary-name.patch - Changes binary names from
codeto useproduct.applicationName(codium/codium-insiders)
Patches that disable or modify telemetry and tracking features to protect user privacy.
-
telemetry.patch - Disables telemetry by default:
- Changes
telemetry.telemetryLeveldefault fromONtoOFF - Disables
telemetry.enableTelemetryby default - Disables crash reporting by default
- Disables natural language search (uses Microsoft online service)
- Disables edit telemetry collection
- Disables experiment fetching from Microsoft services
- Changes
-
disable-settingssync-logger.patch - Disables settings sync logging
Patches that disable Microsoft-specific features and integrations.
-
disable-copilot.patch - Disables GitHub Copilot and AI features:
- Sets
chat.disableAIFeaturesdefault totrue - Removes Copilot UI elements and menu items
- Disables chat setup triggers
- Hides AI-related views and commands
- Sets
-
disable-cloud.patch - Disables Microsoft cloud features:
- Removes cloud session/edit sync sign-in actions
- Disables cloud changes functionality
-
disable-vscodedev.patch - Removes vscode.dev integration:
- Removes "Open in vscode.dev" commands
- Removes vscode.dev link copying
- Removes "Continue Working in vscode.dev" option
-
disable-signature-verification.patch - Disables extension signature verification (Microsoft-signed extensions)
Patches that add new features specific to VSCodium.
-
feat-announcements.patch - Adds VSCodium announcements system:
- Adds announcement list to welcome page
- Fetches announcements from VSCodium GitHub repository
- Adds
workbench.welcomePage.extraAnnouncementssetting - Supports both built-in and remote announcements
-
feat-command-filter.patch - Adds command authorization filtering:
- Adds
commands.filtersconfiguration - Allows blocking/authorizing specific commands
- Supports 'ask', 'off', 'on' modes for command execution
- Adds
-
feat-ext-unsafe.patch - Adds support for marking extensions as unsafe
-
feat-user-product.patch - Allows user-customizable product.json:
- Loads custom product.json from user data directory
- Merges user customizations with default product configuration
- Enables users to override product settings without rebuilding
Patches related to extension gallery and extension handling.
-
fix-gallery.patch - Fixes extension gallery configuration:
- Adds
itemUrlandlatestUrlTemplateto extension gallery config - Supports environment variable overrides for gallery URLs
- Enables custom extension marketplace configuration
- Adds
-
ext-from-gh.patch - Enables installing extensions from GitHub
-
extensions-disable-mangler.patch - Disables code mangling for extensions
Patches that modify the build and packaging process.
-
version-0-release.patch - Removes timestamp-based package revision:
- Uses clean version numbers instead of adding timestamps
- Affects Debian, RPM, and Snap packages
- Normalizes version format for extension API
-
version-1-update.patch - Additional version handling updates
-
sourcemaps.patch - Enables/modifies source map generation
-
remove-mangle.patch - Removes code mangling/minification
-
optional-tree-sitter.patch - Makes tree-sitter parsing optional
Patches affecting the command-line interface.
- cli.patch - Updates CLI for VSCodium:
- Changes environment variable names (
VSCODE_CLI_UPDATE_ENDPOINT→VSCODE_CLI_UPDATE_ENDPOINT) - Adds
VSCODE_CLI_DOWNLOAD_ENDPOINT,VSCODE_CLI_APP_NAME,VSCODE_CLI_BINARY_NAMEsupport - Updates server entrypoint handling
- Modifies download and update mechanisms
- Changes environment variable names (
Patches for remote server and development features.
-
add-remote-url.patch - Adds
serverDownloadUrlTemplateto product.json:- Points to VSCodium releases on GitHub
- Enables remote server downloads from VSCodium repository
-
fix-remote-libs.patch - Fixes remote development library handling
Patches that fix UI/UX issues or customize user interface.
-
fix-eol-banner.patch - Fixes end-of-life banner display
-
report-issue.patch - Updates issue reporting:
- Changes GitHub repository reference to VSCodium
- Removes Microsoft's duplicate detection service
- Uses direct GitHub issue search instead
-
terminal-suggest.patch - Terminal suggestion modifications
Patches for Windows enterprise policy support.
- policies.patch - Updates Windows policy registry paths:
- Changes from
Software\Policies\Microsoft\toSoftware\Policies\VSCodium\ - Updates ADMX namespace from
Microsoft.Policies.*to organization name - Changes policy watcher package from
@vscode/policy-watcherto@vscodium/policy-watcher
- Changes from
Patches modifying authentication and GitHub-related features.
- use-github-pat.patch - Disables built-in GitHub authentication:
- Returns
falseforisSupportedClient()check - Prevents automatic GitHub OAuth flow
- Disables hosted GitHub Enterprise detection
- Returns
Patches controlling application updates.
-
update-cache-path.patch - Updates cache path to use application name:
- Changes from
vscode-{quality}-{target}-{arch}to{applicationName}-{quality}-{target}-{arch} - Prevents conflicts between VS Code and VSCodium updates
- Changes from
-
disable-update.patch.yet - Conditionally applied to disable updates completely when
DISABLE_UPDATE=yes
- arch-0-support.patch - Base architecture support
- arch-1-ppc64le.patch - PowerPC 64-bit little-endian support
- arch-2-riscv64.patch - RISC-V 64-bit support
- arch-3-loong64.patch - LoongArch 64-bit support
- arch-4-s390x.patch - IBM s390x (mainframe) support
- fix-build.patch - Linux build fixes
- fix-dependencies.patch - Linux dependency fixes
- fix-npm-postinstall.patch - NPM post-install fixes for Linux
- fix-reh-bootstrap.patch - Remote extension host bootstrap fixes
- rpm.patch - RPM package specific fixes
- update-xdg-path.patch - XDG path updates for Linux
- client/disable-remote.patch - Disables remote features in client
- client/avoid-crash-16k-page-size.patch - Fixes crashes on systems with 16KB page size
- reh/s390x/arch-4-s390x-package.json.patch - s390x package.json for remote extension host
- fix-emulated-urls.patch - Fixes URL handling in emulated environments on macOS
- appx.patch - Windows APPX package modifications
- cli.patch - Windows-specific CLI modifications
- win7.patch - Windows 7 compatibility fixes
- reh/fix-node-docker.patch - Fixes Node.js issues in Alpine/Docker for remote extension host
- settings.patch - Helper settings modifications
- system-extensions.patch - System extension handling for Insider builds
- Total patches: 51
- Main patches: 28
- Linux-specific patches: 16
- Windows-specific patches: 3
- macOS-specific patches: 1
- Alpine-specific patches: 1
- Insider-specific patches: 1
- Helper patches: 1
- Conditional patches: 1 (.yet file)
The patches collectively transform VS Code into VSCodium by:
- Removing Microsoft branding and replacing with VSCodium identity
- Disabling telemetry and tracking by default for privacy
- Removing proprietary features (Copilot, vscode.dev, cloud sync)
- Changing extension marketplace to Open VSX by default
- Adding user customization features (user product.json, command filters)
- Supporting additional architectures (ppc64le, riscv64, loong64, s390x)
- Enabling self-hosting with custom update URLs and repositories
- Improving transparency by removing obfuscation/mangling
- Adding VSCodium-specific features (announcements, customization options)
- Ensuring independence from Microsoft services and infrastructure
When updating to a new VS Code version:
- Review all patches for conflicts with upstream changes
- Test platform-specific patches on respective platforms
- Verify branding changes are comprehensive
- Ensure privacy settings remain disabled by default
- Check that extension gallery points to Open VSX
- Test update mechanisms with VSCodium repositories
- Validate architecture-specific patches on respective platforms