Back to Blog

The TensorFoundry theme for Zed

TensorFoundry for Zed is a pair of low-glare dark themes for the Zed editor, built from the same palette as this site and our products. It's free, MIT licensed and installs from Zed's extension registry in a couple of clicks.
TensorFoundry theme for Zed banner in forge orange, violet and cyan

Outside of our primary JetBrains IDEs for core product development, we use Zed for almost everything else.

The theme was originally used internally for our late night sessions, it's inspired by others we already know and love, like Ayu's warm-keyword, gold-function layout, toned down to Kanagawa's calm, on a Tokyo Night slate with some tweaks to improve its readability and contrast.

Version 1.0.0 is now in Zed's extension registry as tensorfoundry-theme, and the source is on GitHub.

Here's what we're going to look at:

  • What the theme is, and the two variants
  • Installing it from Zed's extensions
  • Picking a variant, and a tweak for Go
  • Installing it manually or as a dev extension
  • A quick look at the palette

What is the TensorFoundry theme?#

The extension has two dark themes built in:

  • TensorFoundry Dark uses graphite and midnight-slate surfaces, with clear separation between the editor, project panel, tabs and terminal.
  • TensorFoundry Dark Night is the deeper, near-black variant for when you want the chrome to get out of the way.

Both carry the brand colours you see across tensorfoundry.io: forge orange #FF7A00, violet #A33CFF and cyan #3AD6FF. The saturated orange is kept for things that need your attention, like focus and unsaved buffers, so unsaved files stand out, glowing like the hot core of the foundry, while everything else stays calm, just like our code (ha!).

Syntax colours are softened and grouped by meaning. Keywords sit in a muted ember, functions in gold, types in a soft violet and strings in sage, so control flow reads warm and structure reads cool. That's the low-glare part: four hours into a late-night debugging session, nothing on screen is shouting at you.

TensorFoundry Dark#

TensorFoundry Dark: graphite editor, slate panels and the orange dot marking an unsaved file.

TensorFoundry Dark Night#

TensorFoundry Dark Night: the same workspace on near-black surfaces.

Installing from Zed's extensions#

The theme is published in the extension registry, so you can install it without leaving Zed:

  1. Open the Extensions view by running zed: extensions from the command palette, or press cmd-shift-x on macOS or ctrl-shift-x on Linux and Windows.
  2. Search for TensorFoundry.
  3. Select Install on the TensorFoundry result.
Search for TensorFoundry in the Extensions view and select Install.

Picking a variant#

To switch to it, open the theme selector by running theme selector: toggle from the command palette (cmd-shift-p on macOS, ctrl-shift-p on Linux and Windows), or press cmd-k cmd-t / ctrl-k ctrl-t. Choose TensorFoundry Dark or TensorFoundry Dark Night. The selector previews each theme as you move through the list, so flick between the two before you settle.

Both variants in the theme selector once the extension is installed.

If you'd rather set it in settings.json, give Zed the theme by name:

{
  "theme": {
    "mode": "dark",
    "dark": "TensorFoundry Dark",
    "light": "One Light"
  }
}

If you write Go, turn on combined semantic tokens as well. Zed keeps Tree-sitter highlighting as the base and layers gopls information on top, so imported package names like fmt in fmt.Errorf pick up the theme's cobalt namespace colour:

{
  "languages": {
    "Go": {
      "semantic_tokens": "combined"
    }
  }
}

Run editor: restart language server if an open Go buffer doesn't update.

Installing manually#

There are two other routes if you'd rather skip the registry.

As a dev extension. This is how we work on the theme, and how you'd try changes before they're released. Uninstall the registry version first so the two don't clash, then clone the repo:

git clone https://github.com/tensorfoundrylabs/theme-zed.git

Run zed: install dev extension from the command palette, select the cloned theme-zed folder, then pick a variant with theme selector: toggle.

Just the theme files. Copy the two JSON files into Zed's themes folder, ~/.config/zed/themes on macOS and Linux:

mkdir -p ~/.config/zed/themes
cp theme-zed/themes/tensorfoundry-dark*.json ~/.config/zed/themes/

On Windows the folder is %USERPROFILE%\AppData\Roaming\Zed\themes\. The themes show up in the selector the next time Zed loads. Copied files don't update, so for everyday use we'd stick with the registry install.

A quick look at the palette#

The surfaces are where the two variants differ:

RoleDarkDark Night
App background#131720#0B0B0E
Editor#191D27#0C0C0F
Menus and dialogs#293142#22222B
Editor text#DADCE3#D8D7DE

The syntax and status colours are shared, and the full tables are in the README.

Reporting issues#

Found a token that's the wrong colour in your language, or a panel that's hard to read? Open an issue on GitHub with the language, the variant and a screenshot. The repo's examples folder has Go, Rust, Python, CSS, Svelte and Zig files we review the theme against, so a small snippet that shows the problem helps us fix it quickly.

Further reading#