Skip to main content

VS Code

Visual Studio Code is a full-featured code editor that runs on ARM64 Linux. You have several options for running it in ADL โ€” from the full desktop application to a browser-based setup. This page covers installation, configuration, and alternatives for devices with limited resources.

Installation Optionsโ€‹

There are three ways to run VS Code in ADL. Each has different trade-offs.

๐Ÿค”Which VS Code setup should you use?

Option 1: Code OSS from Ubuntu Reposโ€‹

The simplest installation path. Code OSS is the open-source base of VS Code.

$sudo apt update && sudo apt install code-oss
Expected Result

Code OSS appears in your application menu under Development. Launch it from the terminal with code-oss.

โ„น๏ธExtension marketplace

Code OSS uses the Open VSX marketplace instead of Microsoft's marketplace. Most popular extensions are available on Open VSX, but some Microsoft-published extensions (like Python, C#, Remote SSH) are not. If you need those, use the official VS Code .deb instead.

Option 2: Official VS Code .debโ€‹

Download the ARM64 .deb package directly from Microsoft:

curl -L -o /tmp/vscode.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-arm64'

Install the downloaded package:

$sudo apt install /tmp/vscode.deb
Expected Result

VS Code appears in your application menu. Launch it with code from the terminal.

โš ๏ธUpdates

The official .deb does not auto-update through apt. You need to download and install new versions manually. Check for updates at https://code.visualstudio.com periodically.

Option 3: code-server (Browser-Based)โ€‹

code-server runs VS Code as a web application that you access through your browser. This is useful if the desktop application is too resource-heavy, or if you want to skip X11 setup entirely.

$curl -fsSL https://code-server.dev/install.sh | sh

Start code-server:

$code-server --bind-addr 127.0.0.1:8080

Then open Firefox and navigate to http://127.0.0.1:8080. The default password is in ~/.config/code-server/config.yaml.

โœ…๐Ÿ’ก Tip

code-server uses significantly less memory than the desktop application because it offloads rendering to the browser. On devices with 3-4 GB of RAM, this can be the difference between a usable and unusable editor.

Display Configurationโ€‹

If you are running VS Code or Code OSS as a desktop application, it needs a working X11 display through Termux:X11.

Make sure the DISPLAY environment variable is set:

$echo $DISPLAY
Expected Result

You should see :0 or :1. If the variable is empty, your display server is not configured. See the display setup guide.

If VS Code launches but the window is blank or flickering, disable GPU acceleration:

$code --disable-gpu

To make this permanent, add the flag to your VS Code desktop entry or alias:

echo "alias code='code --disable-gpu'" >> ~/.bashrc

These extensions work well on ARM64 and are useful for development in ADL:

ExtensionIDPurpose
Pythonms-python.pythonPython language support, linting, debugging
GitLenseamodio.gitlensEnhanced Git integration and blame annotations
Prettieresbenp.prettier-vscodeCode formatting for JS, TS, CSS, HTML, JSON
ESLintdbaeumer.vscode-eslintJavaScript and TypeScript linting
Remote - SSHms-vscode-remote.remote-sshConnect to remote servers from within VS Code
Markdown All in Oneyzhang.markdown-all-in-oneMarkdown editing with preview and shortcuts
โš ๏ธExtension availability

Extensions marked with ms- prefixes are Microsoft-published and only available on the official VS Code marketplace. If you installed Code OSS, search for community alternatives on Open VSX or switch to the official .deb.

โญBest Practice

Install only the extensions you actively use. Each extension adds to startup time and memory usage. Five well-chosen extensions are better than twenty rarely-used ones.

Performance Optimizationโ€‹

VS Code can be resource-hungry. These settings help keep it responsive on constrained devices.

settings.json Tweaksโ€‹

Open settings with Ctrl+Shift+P then type "Preferences: Open Settings (JSON)". Add these entries:

{
"telemetry.telemetryLevel": "off",
"extensions.autoUpdate": false,
"workbench.enableExperiments": false,
"search.followSymlinks": false,
"files.watcherExclude": {
"**/.git/**": true,
"**/node_modules/**": true,
"**/dist/**": true
},
"editor.minimap.enabled": false,
"editor.renderWhitespace": "none",
"editor.cursorBlinking": "solid",
"editor.smoothScrolling": false,
"workbench.list.smoothScrolling": false,
"breadcrumbs.enabled": false,
"editor.bracketPairColorization.enabled": false
}
๐ŸŸกPerformance โ€” Medium Impact

Disabling the minimap, smooth scrolling, and bracket colorization reduces rendering overhead noticeably. On lower-end devices, these changes can cut editor frame times in half.

Memory Managementโ€‹

VS Code's memory usage grows with workspace size and extension count. Monitor and manage it with these strategies:

๐Ÿ”งTroubleshooting
VS Code uses over 1 GB of memory on a small project
Disable unused extensions for this workspace (right-click extension > Disable for Workspace). Check the Process Explorer (Help > Open Process Explorer) to find which extensions consume the most memory.
VS Code becomes sluggish after running for several hours
Restart VS Code periodically. The editor accumulates memory over time, especially with large files and many undo steps. Use the command palette: Developer: Reload Window.
Large projects cause VS Code to freeze during file indexing
Add large directories (node_modules, build outputs, data files) to files.watcherExclude and files.exclude in your workspace settings. This prevents VS Code from scanning and indexing them.
๐ŸšซRunning VS Code alongside a browser

Opening VS Code and Firefox simultaneously on a device with 4 GB of RAM will likely cause swapping and severe slowdowns. If you need both, use code-server inside Firefox instead of running two separate heavy applications.

Lightweight Alternativesโ€‹

If VS Code is too heavy for your device, consider these alternatives:

๐Ÿค”Which editor fits your device and workflow?
Setting up Neovim as a VS Code replacement

Neovim can replicate most of VS Code's features with plugins while using a fraction of the resources. A minimal productive setup:

$sudo apt install neovim git curl

Install a plugin manager like vim-plug:

$sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

Key plugins to consider: nvim-lspconfig (language server support), telescope.nvim (fuzzy finder), nvim-treesitter (syntax highlighting), and gitsigns.nvim (Git integration).

โ“Frequently Asked Questions
Can I use VS Code's Remote SSH to develop on a remote server?
Yes. The Remote SSH extension works on ARM64 VS Code. This is useful if you want to edit code on a more powerful remote machine while using your phone as a thin client.
Do VS Code devcontainers work in ADL?
No. Devcontainers require Docker, which does not run inside a proot environment. Use Remote SSH to connect to a machine that supports Docker if you need containers.
Is there a performance difference between Code OSS and the official VS Code?
They are nearly identical in performance. The official build includes Microsoft telemetry and branding, but the underlying editor engine is the same. Code OSS may feel slightly lighter since it ships without some proprietary services.
Can I use VS Code extensions that require native compilation?
Most extensions with native components include ARM64 builds. If an extension fails to install, check its marketplace page for architecture support. C/C++ and Rust extensions generally work. Some niche extensions may only ship x86_64 binaries.