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 43 / Chromium 150, 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 and Windows frames that match your DE (macOS and KDE TBD), with an option to hide the minimize/maximize buttons for a stock-GNOME look.
- Instant new-file tab — pre-loaded in the background after login, opens with no delay.
- 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 43 (Chromium 150)
- 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/
yay -S figma-linux-nextOr with any other AUR helper. Package: figma-linux-next
Add to your flake inputs:
figma-linux-next.url = "github:arximus88/figma-linux-next";Import the module in your nixosConfigurations, then enable it:
imports = [ figma-linux-next.nixosModules.default ];
programs.figma-linux-next = {
enable = true;
};Without the imports line programs.figma-linux-next is not a known option and
evaluation fails.
Enabling registers the figma:// mime type handler for login redirects.
The flake installs the prebuilt release binaries (x86_64 and aarch64) and is pinned to a
specific version, which CI updates after each release. Point the input at a tag to pin it
yourself: github:arximus88/figma-linux-next/v0.15.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.