Native app based on Electron-based browser wrapper for the Figma web app on Linux. Loads figma.com directly — no private APIs, no data scraping, no account sharing. Not affiliated with or endorsed by Figma, Inc.
🧪 Status: Active Testing Pre-built binaries (
.pacman,.deb,.rpm,.AppImage) for x64 and arm64: https://github.com/arximus88/figma-linux-next/releases
- Local system fonts — full fontconfig (
fc-list) enumeration plus fontkit for variable-font axes; variable fonts and all named instances work, just like the official desktop app (the web app can't reach them). - Shader, Halftone & Noise effects — Figma's new WebGPU canvas effects render, matching the official app (opt-in, Experimental). They require X11/XWayland: on a Wayland session, enabling them relaunches the app under XWayland, so you trade native Wayland features (fractional scaling, per-monitor DPI) for shaders while they're on.
- Local plugin development — import a plugin from its
manifest.jsonand iterate locally with hot-reload. - Built-in MCP server for AI assistants — a Model Context Protocol server (default port 3845) lets AI tools like Claude Code read and write your open design: scene-graph metadata, design context, variables/styles, screenshots, plus create/edit nodes and Mermaid→FigJam diagrams. Read-only by default; write tools, the port, and an optional Chrome DevTools control plane are toggled in Settings. See AI integration (MCP).
- Latest Chromium engine — Electron 44 / Chromium 152, so the canvas, WebGL and color handling track the current web app.
- Up-to-date Google Fonts — Google Sans, Google Sans Flex, Google Sans Code and other recent additions are available.
- Runs on both Wayland and X11 — native Wayland on GNOME, KDE Plasma, Sway, Hyprland, with a clean X11 fallback. Tested on Asahi Linux (Apple Silicon), Niri, and openSUSE.
- Native window frame styles — GNOME (Adwaita), KDE Plasma (Breeze) and Legacy Windows (Figma's own Windows chrome) frames, picked automatically from your desktop environment (Plasma → Breeze, GNOME → Adwaita, anything else → Legacy) with a manual override in Settings (macOS TBD). The frame follows Figma's Light/Dark/System theme, the minimize/maximize buttons can be hidden for a stock-GNOME look, and the new-tab
+can sit after the last tab (as in Figma's own desktop app) instead of the left corner. Resting the pointer on a tab shows a card with its title, Figma's thumbnail of the file and when it was last edited (off switch in Settings). - Instant new-file tab — pre-loaded in the background after login, opens with no delay.
- System tray — opt-in in Settings: Figma stays in the tray when the last window closes; "Show Figma" brings it back (restoring a minimised window), with New Window, Settings and Quit alongside. Native on KDE Plasma, needs the AppIndicator extension on GNOME.
- Config isolation — uses
~/.config/figma-linux-next, no conflicts with legacy installations.
figma-linux-next ships a built-in Model Context Protocol server so
assistants like Claude Code can work with your live design — no plugin to install, no cloud
round-trip. Everything binds to 127.0.0.1 and is configured in Settings → General → MCP integrations.
- Data plane — Figma MCP (HTTP, default
127.0.0.1:3845, on by default). Reads file info, scene-graph metadata, design context, variables & styles, Code Connect maps, and node screenshots; helper toolsfigma_find/figma_treelocate and outline nodes cheaply, and it can emit design-system rules for your codebase. With write tools enabled (opt-in) it also creates and edits frames, text, rectangles and variables, and turns Mermaid into FigJam diagrams. The port and the write-tools gate are both configurable. - Control plane — Chrome DevTools (CDP) (opt-in, needs a restart). Exposes the app window over
--remote-debugging-portso a CDP client (e.g. chrome-devtools-mcp) can drive the UI — switch tabs, click, type, screenshot the real window. Paired with the data plane, an assistant can navigate to a file and then read or edit it.
Read access is on out of the box; anything that mutates your files or exposes window control is off-by-default and opt-in.
- Electron 44 (Chromium 152)
- Svelte 5 with runes
- Vite 8
- Bun
- Biome (lint + format)
Download from https://github.com/arximus88/figma-linux-next/releases:
# Arch / CachyOS (x64)
sudo pacman -U figma-linux-next_*_linux_x64.pacman
# Debian / Ubuntu (x64 or arm64)
sudo dpkg -i figma-linux-next_*_amd64.deb
# or
sudo dpkg -i figma-linux-next_*_arm64.deb
# Fedora / openSUSE
sudo rpm -i figma-linux-next_*_x86_64.rpm
# AppImage
chmod +x figma-linux-next_*.AppImage && ./figma-linux-next_*.AppImageAppImage note: On first launch the app automatically registers the
figma://URL handler required for login. If login still fails after first launch, register it manually:# Run once to register the handler ~/.local/share/applications/figma-linux-next-appimage.desktop # created on first launch xdg-mime default figma-linux-next-appimage.desktop x-scheme-handler/figma update-desktop-database ~/.local/share/applications/
One click: open https://arximus88.github.io/figma-linux-next/ and use the install button
(GNOME Software and KDE Discover handle .flatpakref files directly). Or from the terminal:
flatpak install --user https://arximus88.github.io/figma-linux-next/figma-linux-next.flatpakrefThis adds the project's own signed Flatpak repository, so later releases arrive through
flatpak update and the software centre like any other Flatpak. The standalone .flatpak
bundle on the Releases page still works but does not update itself.
yay -S figma-linux-nextOr with any other AUR helper. Package: figma-linux-next
Three ways, from quickest to most permanent. The first two are terminal commands; the
--extra-experimental-features part is only needed until flakes are enabled in your config
(nix.settings.experimental-features = [ "nix-command" "flakes" ];).
Install for your user, no system config, no rebuild:
nix profile add --extra-experimental-features "nix-command flakes" github:arximus88/figma-linux-next
xdg-mime default figma-linux-next.desktop x-scheme-handler/figmaThe second line is what makes "Log in with browser" come back to the app. Log in from Firefox
or a Chromium-based browser: GNOME Web (Epiphany) does not hand figma:// links over to the
app. Update later with
nix profile upgrade figma-linux-next (older Nix: install instead of add).
Declarative (NixOS module): add the flake input and enable the program:
inputs.figma-linux-next.url = "github:arximus88/figma-linux-next";
# in your nixosConfiguration
imports = [ figma-linux-next.nixosModules.default ];
programs.figma-linux-next.enable = true;The module installs the package and registers the figma:// handler for you. Without the
imports line programs.figma-linux-next is not a known option and evaluation fails.
The flake ships the prebuilt release binaries (x86_64 and aarch64) and is pinned to a specific
version, which CI updates after each release. Pin it yourself by pointing at a tag:
github:arximus88/figma-linux-next/v0.20.0.
Settings are stored in ~/.config/figma-linux-next. To carry over settings from the old installation:
cp ~/.config/figma-linux/settings.json ~/.config/figma-linux-next/git clone https://github.com/arximus88/figma-linux-next.git
cd figma-linux-next
bun install
bun run dev # dev mode with HMR
bun run build # production build
bun run start # run production build
bun run pack # build all packages- https://github.com/arximus88/figma-linux-next/issues
- https://github.com/arximus88/figma-linux-next/discussions
GPL-2.0-only — see LICENSE.