A lightweight code editor that keeps up with you.

Foundry is a fast, keyboard-first editor written in Rust. Multiple cursors, Goto Anything, a command palette and language servers, with the feel of Sublime Text, as a single native app.

Windows, macOS and Linux. Free and open source under Apache-2.0.

The Foundry window in the dark Monokai color scheme: a Rust file with syntax highlighting, four selections made with Ctrl+D, the side bar with a project tree on the left and the minimap on the right.

Features

Everything you reach for, nothing you don't.

Foundry does the things a code editor should do, and does them quickly. No plugins to hunt down, no Electron, no waiting.

Fast and lightweight

A native binary with a GPU-rendered interface. It starts instantly, redraws only when something changes, and re-highlights just the lines you edit, so big files stay smooth.

Multiple cursors

Select the next occurrence, all occurrences, split a selection into lines, drag a column, or add carets anywhere. Every edit applies to all of them at once.

Goto Anything and the palette

Fuzzy-find any file, jump to a line with :42 or to a symbol with @name, and run any command from the palette, with its shortcut shown.

Language servers for 25+ languages

Completion with documentation, hover, signature help, go to definition and references, rename, formatting and code actions through the Language Server Protocol. Foundry finds the servers you have installed and starts them on its own.

Problems at a glance

Errors and warnings are underlined in the text, marked in the gutter and listed in a Problems panel you can jump through with F8. Quick fixes are one keystroke away.

Built-in syntax checking

JSON and TOML files are checked as you type, with errors underlined and listed, without installing anything.

Split views

Work in two, three or four columns, rows or a grid of editor groups, drag tabs between them, and open a second view of the same file. The layout comes back when you restart.

Built-in terminal

A terminal panel under the editor, one Ctrl ` away, with tabs for zsh, bash, fish, Nushell, PowerShell, Command Prompt, Git Bash or WSL. Full-screen programs, colors and the mouse all work.

190+ languages highlighted

Sublime Text syntax definitions cover everything from Rust and TypeScript to PowerShell, Terraform, Nix, Zig and LaTeX, with 30 color schemes and support for your own .tmTheme files.

Find and replace

Search with regular expressions and capture groups, replace one match or all of them, and search whole folders with Find in Files. Results open in a tab you can edit and save.

Code folding

Fold by indentation level with the keyboard or a click in the gutter. Folds follow your edits and are remembered the next time you open the file.

Hot exit

Quit whenever you like. Open files, folders and even unsaved changes are back exactly as you left them, and are saved every minute in case of a crash.

Windows, macOS and Linux

Direct3D 12, Metal, Vulkan or OpenGL, whichever your system has. Installers for Windows and macOS, .deb and tarballs for Linux, on x86_64 and ARM.

In use

Made for staying on the keyboard.

Every command, one shortcut away

Press Ctrl Shift P and type what you want to do. Matching letters are highlighted, and each command shows its key binding, so you learn the shortcuts as you go.

The command palette open over a Rust file, filtered by the word goto and listing the Goto commands with their key bindings.

Jump anywhere in a keystroke

Goto Anything searches the files in your open tabs and project folders with fuzzy matching. Add :120 to open a file at a line, or type @ to go to a function or type in the current file.

  • Open tabs rank first, then the whole project
  • Respects your exclude patterns, so node_modules and target stay out of the way
Goto Anything open with the letters s and e typed, listing matching file names with their project paths underneath.

Several files, side by side

Pick a layout with Alt Shift 3 and put files next to each other. Each group has its own tabs, and the side bar lists the open files by group.

  • Columns, rows and a four-way grid
  • Two views of one file edit the same text, with their own carets and scroll position
Three Rust files open side by side in three columns, with the side bar listing them under Group 1, Group 2 and Group 3.

Light or dark, your way

Foundry reads standard .tmTheme color schemes, so the editor, side bar, tabs and menus all follow the scheme you pick. Switch with a live preview from the command palette.

The same Rust file in the light OneHalfLight color scheme, with four selections highlighted in blue.

Code intelligence

Help from the tools you already have.

Foundry speaks the Language Server Protocol, so the servers you use in other editors work here too. Nothing is bundled and nothing is downloaded for you.

Completion that explains itself

Suggestions open as you type, with the signature of each item and its documentation beside the list. Snippets, auto-imports and words from your open files are included.

A Rust file with a completion list open after typing a dot: the methods of an Inventory type with their signatures, and the documentation of the selected method in a panel to the right.

Problems where you can see them

Errors and warnings are underlined, marked in the gutter and written after the line. The Problems panel lists them by file; jump to the next one with F8.

A Rust file with two compile errors underlined in red and their messages after the lines, and the Problems panel at the bottom listing two errors and a warning grouped by file.

Config files that check themselves

JSON and TOML are checked by Foundry itself, with no server to install. A missing comma is underlined and explained in plain words.

A package.json file with a missing comma: the next key is underlined and a popup reads Missing comma (or closing brace) before this.

Keyboard first

The key bindings your fingers already know.

Foundry's default key map follows Sublime Text, including two-key chords. On macOS, Ctrl is Cmd for the most part.

  • Goto AnythingCtrlP
  • Command paletteCtrlShiftP
  • Select next occurrenceCtrlD
  • Select all occurrencesAltF3
  • Split selection into linesCtrlShiftL
  • Add caret above or belowCtrlAlt↑↓
  • Find in filesCtrlShiftF
  • Go to definitionF12
  • Rename symbolF2
  • Go to symbolCtrlR
  • Toggle commentCtrl/
  • Fold codeCtrlShift[
  • Toggle side barCtrlK, CtrlB
  • Word wrapAltZ
  • TerminalCtrl`

There are many more; see the key bindings reference.

Languages

Smart where it matters, on your terms.

Foundry has ready-made configurations for these language servers. Install the ones you use; Foundry finds them on your PATH and starts them when you open a matching file. It never downloads anything behind your back, and you can override or turn off any server in settings.json.

  • Rust
  • C and C++
  • Objective-C
  • Python
  • JavaScript
  • TypeScript
  • Go
  • Java
  • C#
  • Kotlin
  • Swift
  • Ruby
  • PHP
  • Haskell
  • OCaml
  • Elixir
  • Zig
  • Shell
  • HTML
  • CSS and SCSS
  • JSON
  • YAML
  • TOML
  • Markdown
  • Terraform
  • Dockerfile

Plus syntax highlighting for 190+ languages and file formats. Read about language support.

Download

Get Foundry.

Every release is on GitHub with a SHA256SUMS file. The builds are not code-signed yet, so Windows and macOS ask you to confirm the first launch; the install guide shows how.

Windows 10 and 11

Installer or portable zip

Per-user installer without administrator rights, with optional Explorer context menu and PATH entry. x64.

Download for Windows

macOS 11 or later

Universal disk image

One .dmg for Apple silicon and Intel. Drag Foundry to Applications.

Download for macOS

Linux

.deb and tarball

Packages for Debian, Ubuntu and derivatives, and a tarball with an install script for other distributions. x86_64 and aarch64.

Download for Linux

Prefer to build it yourself? cargo build --release. See Contributing.

Open source

Free and open source (Apache-2.0).

Foundry is built in the open, with no telemetry and no accounts. Read the code, report a bug, suggest a feature or send a pull request.