Run Linux Apps on a Chromebook (Crostini)
Turn on the Linux development environment on ChromeOS to install real desktop apps like code editors, GIMP, and LibreOffice.

Your Chromebook is hiding a full Linux desktop, and most people never switch it on. Crostini is Google's built-in Linux container that lets you install genuine apps like VS Code, GIMP, LibreOffice, and the entire Debian command-line toolchain, all running safely alongside ChromeOS with no developer mode and no wiped device. If you have been treating your Chromebook as a glorified browser, this is the feature that turns it into a real work machine.
Quick answer
To run Linux apps on a Chromebook, open Settings, expand Advanced, choose Developers, and click Turn on next to "Linux development environment." ChromeOS downloads a Debian container and opens a Terminal in a few minutes. From there you install software with sudo apt install, and graphical apps appear in the launcher automatically. Most Chromebooks from 2019 onward support it; ARM-based models occasionally hit app compatibility limits.
Key takeaways
- Crostini runs a Debian 12 (Bookworm) container inside ChromeOS with no developer mode required.
- Enable it from Settings then Advanced then Developers in roughly five minutes.
- Installed Linux apps appear in the launcher alongside ChromeOS apps, no extra config.
- You install software with
sudo apt installfrom the Terminal, exactly like desktop Debian. - USB, microphone, GPU, and folder access are off by default and must be granted per use.
Turn on the Linux environment
- Open Settings, scroll down, and expand Advanced.
- Choose Developers.
- Next to Linux development environment, click Turn on.
- Pick a username and disk size when prompted (you can resize later).
- Wait while ChromeOS downloads and sets up the Debian container, then a Terminal opens.
Once it finishes, pin the Terminal to your shelf by right-clicking its icon and choosing Pin, so it is easy to reach. The default container is named penguin and lives inside a virtual machine called termina, which is why you sometimes see those names in error messages or documentation.
Check your Chromebook qualifies first
Almost every Chromebook released since 2019 supports Crostini, but a handful do not, and the differences matter before you commit. Here is how the common hardware types compare:
| Chromebook type | Crostini support | What to expect |
|---|---|---|
| Intel/AMD (x86_64), 2019+ | Full | Best compatibility; most .deb files just work |
| ARM (MediaTek, Qualcomm) | Full, with caveats | Some apps lack ARM builds; check before installing |
| Older managed/school devices | Often blocked | Admin policy can disable Linux entirely |
| Pre-2019 budget models | Sometimes missing | "Developers" section may not appear at all |
If the Developers section is missing from Settings, your device either predates Crostini support or your administrator disabled it. On a school or work Chromebook, that policy is set centrally and you cannot override it.

Install your first apps
The container is plain Debian, so you use the apt package manager. Before installing anything, update the package list:
sudo apt update && sudo apt upgrade
Then install software. For example:
sudo apt install gimp libreoffice
Graphical apps you install this way show up automatically in the ChromeOS launcher, where you can pin and open them like any other app. For the popular VS Code editor, download the 64-bit Debian .deb package from code.visualstudio.com (pick the Arm64 build if you have an ARM Chromebook), then double-click it in the Files app; ChromeOS installs it into the Linux container and adds it to the launcher.
Here is what you actually get out of the box once the container is running:
| Tool category | Install command | Why bother on a Chromebook |
|---|---|---|
| Code editor | Download VS Code .deb | Real extensions, integrated terminal, Git |
| Image editing | sudo apt install gimp | Full Photoshop alternative, no subscription |
| Office suite | sudo apt install libreoffice | Edit docx/xlsx offline without Google Docs |
| Dev runtimes | sudo apt install python3 nodejs git | Native toolchains instead of web playgrounds |
| Media | sudo apt install vlc | Plays codecs ChromeOS refuses to touch |
Warning
Keep the container updated with sudo apt update && sudo apt upgrade. The Linux side does not auto-update the way ChromeOS itself does, and a months-stale Debian install is a real security gap. Run it weekly or before installing anything new.
Grant the permissions you need
For security, Crostini is sandboxed and many permissions are off by default. If a Linux app cannot see a USB drive, your microphone, your camera, or files outside its own home folder, head back to Settings > Advanced > Developers > Linux and enable the relevant sharing toggle. You can share specific ChromeOS folders into Linux from the Files app by right-clicking a folder and choosing Share with Linux; the shared folder then appears under /mnt/chromeos inside the container.
Two permissions trip people up most. USB devices (Arduino boards, Yubikeys, external drives) need explicit per-device approval under USB preferences, and GPU acceleration for graphics-heavy apps is a single toggle that is off until you flip it. If a Linux app feels sluggish or refuses to render, the GPU toggle is the first thing to check.
Free up and resize disk space
The container starts with a modest disk allocation that you can grow later. In the Linux settings, the Disk size control lets you expand the container without reinstalling, which matters because developer toolchains and a few large apps fill the default allocation fast. Aim for at least 10 GB if you plan to install VS Code plus language runtimes, and more if you work with containers or large repositories.
Back up your container
Crostini lets you export the whole Linux environment to a single .tini backup file, which is wise before big changes. In the Linux settings, use Back up and restore to save the container to your Downloads or external storage, so a misconfiguration never costs you your setup. Restoring is a one-click operation that drops the saved container back in place.
What to do right now
If you are setting up from scratch, run this in order:
- Confirm the Developers section exists in Settings (if not, your device or admin blocks Linux).
- Turn on Linux development environment and let the Debian container finish downloading.
- Pin the Terminal, then run
sudo apt update && sudo apt upgrade. - Install your first real app, for example
sudo apt install gimp libreoffice. - Share any ChromeOS folders you need and enable the GPU toggle for graphics apps.
- Take a Back up and restore snapshot before you customize further.
If you are setting up a Chromebook as a lightweight dev machine, our comparison of Claude Code versus Cursor AI coding agents covers tools that run well in this environment, and to keep the device secure see how to set up passkeys.
Frequently asked questions
Does enabling Linux slow down my Chromebook?
The container uses some disk space and memory only while running. On low-RAM Chromebooks heavy Linux apps can feel sluggish, but ChromeOS itself stays fast, and you can shut the container down when not using it.
Can every Chromebook run Linux apps?
Most Chromebooks from the last several years support Crostini, but a few very old or low-end models do not. The option appears under Developers in Settings if your device is supported.
Is it safe to run Linux software this way?
Yes. Crostini runs in a sandboxed container isolated from ChromeOS, so a misbehaving Linux app cannot easily touch the rest of the system. That isolation is also why permissions like USB access are off until you grant them.
How do I remove Linux later?
In the same Developers settings where you enabled it, there is an option to remove the Linux environment, which deletes the container and frees the disk space. Back it up first if you might want it again.


