Skip to content
| Marketplace
Sign in
Visual Studio Code>Themes>Xcode Pitch ThemeNew to Visual Studio Code? Get it now.
Xcode Pitch Theme

Xcode Pitch Theme

Alberto Chamorro

|
1,134 installs
| (0) | Free
Xcode-inspired syntax highlighting with pitch-black dark and crisp light themes
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Xcode Pitch Theme

Xcode Pitch Theme icon

Marketplace version Issues Stars MIT license

Xcode-inspired colors for VSCode, Cursor, Ghostty, OpenCode, Herdr and Neovim. One shared Dark/Light palette, with generated adaptations for each tool.

Supported tools

Tool Dark / Light Files
VSCode / Cursor Dark, Dark Bordered, Light themes/ — one extension, three variants
Ghostty Dark, Light extras/ghostty/ — foreground, background and 16 ANSI colors
OpenCode V2 Both modes in one theme extras/opencode/xcode-pitch.json
Herdr 0.9.5+ Auto, forced Dark, forced Light extras/herdr/ — theme-only TOML fragments
Neovim 0.10+ Dark, Light extras/neovim/ — classic, Treesitter and LSP highlights

The color roles are shared, but each tool has its own syntax engine and UI. Adaptations are not expected to be pixel-identical. Dark Bordered remains an editor-only variant. Classic Vim is not supported by the Neovim Lua port.

Themes

Theme Appearance
Xcode Pitch Dark Theme Original Xcode syntax colors on a fully black background
Xcode Pitch Dark Bordered Theme The original dark palette with visible panel borders
Xcode Pitch Light White background, green comments, red strings, magenta keywords and cyan/violet accents

Light keeps the original TextMate scopes and font styles, with colors adjusted for a white background rather than simply inverted. Its main text and every syntax rule have at least 4.5:1 contrast against white.

Dark

Xcode Pitch Dark Theme

Dark Bordered

Xcode Pitch Dark Bordered Theme

Light — VSCode

Xcode Pitch Light in VSCode showing TypeScript from EventosWiki

Neovim inside Ghostty

The same public TypeScript file, using the standalone Neovim port and the matching Ghostty palette.

Dark

Xcode Pitch Dark in Neovim and Ghostty showing EventosWiki

Light

Xcode Pitch Light in Neovim and Ghostty showing EventosWiki

These new screenshots are real application-window captures using code from the author's open-source project EventosWiki, at commit 57c98be. See capture details and attribution.

Installation

All generated themes are committed, so using the terminal themes does not require npm or a build step. Clone or download this repository:

git clone https://github.com/achamorro-dev/xcode-pitch-theme.git
cd xcode-pitch-theme

The examples below assume you are in that checkout. Back up your existing configurations before editing them. Theme files do not contain personal keybindings, shell commands, absolute paths or synchronization services.

VSCode / Cursor

Search for Xcode Pitch Theme in Extensions, or use the stable extension ID:

code --install-extension albertochamorro.xcode-pitch-dark-theme

Choose a variant with Preferences: Color Theme. Light is included in version 1.2.0, currently prepared for release; until that version is published, install the locally built VSIX below.

Follow the system appearance

{
  "window.autoDetectColorScheme": true,
  "workbench.preferredDarkColorTheme": "Xcode Pitch Dark Theme",
  "workbench.preferredLightColorTheme": "Xcode Pitch Light"
}

Cursor uses the same extension and settings. You can install a locally built VSIX with Extensions: Install from VSIX in either editor.

Ghostty

mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/themes"
cp extras/ghostty/xcode-dark extras/ghostty/xcode-light "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/themes/"

Set this in your Ghostty config to follow the desktop appearance:

theme = dark:xcode-dark,light:xcode-light

Or use theme = xcode-dark / theme = xcode-light to force a variant. Reload Ghostty's configuration after changing it.

OpenCode V2

mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/opencode/themes"
cp extras/opencode/xcode-pitch.json "${XDG_CONFIG_HOME:-$HOME/.config}/opencode/themes/"

Merge this into ~/.config/opencode/cli.json (under $XDG_CONFIG_HOME if set), not opencode.json:

{
  "$schema": "https://opencode.ai/v2/cli.json",
  "theme": {
    "name": "xcode-pitch",
    "mode": "system"
  }
}

Restart OpenCode once to discover a newly added theme. system follows the terminal appearance; use dark or light to lock the mode. The theme uses the V2 base / dark / light format, not the legacy V1 format.

Herdr

Merge the [theme] table and its children from one fragment into ~/.config/herdr/config.toml:

  • extras/herdr/auto.toml: follow the terminal appearance, with separate Dark/Light overrides.
  • extras/herdr/dark.toml: force Dark.
  • extras/herdr/light.toml: force Light.

Do not replace your whole config or append a second [theme] table. Herdr does not provide a TOML include directive. Preserve your other tables, including keybindings and workspaces. Then run herdr server reload-config; if the client does not refresh, choose reload config from its global menu.

Neovim

Add extras/neovim to your runtime path, then select the theme:

vim.opt.rtp:append(vim.fn.expand("~/path/to/xcode-pitch-theme/extras/neovim"))
vim.o.background = "dark" -- or "light"
vim.cmd.colorscheme("xcode_pitch")

With lazy.nvim:

{
  "achamorro-dev/xcode-pitch-theme",
  lazy = false,
  priority = 1000,
  config = function(plugin)
    vim.opt.rtp:append(plugin.dir .. "/extras/neovim")
    vim.cmd.colorscheme("xcode_pitch") -- uses vim.o.background
  end,
}

The port works without the author's dotfiles. It provides both modes, terminal colors, diagnostics, diff colors and classic/Treesitter/LSP highlights. It intentionally does not change macOS appearance, watch a personal state file or install a background service.

Shared palettes and synchronization

palettes/dark.json and palettes/light.json are the color sources. Editor scope templates live in templates/vscode/; tool-specific generators translate the same roles into each format. Generated outputs should not be edited manually.

This repository distributes themes, not personal settings. Switching all applications together belongs in your own configuration or theme switcher. For example, the author's dotfiles consume a pinned revision of these exports and manage theme auto|dark|light separately. Other palettes, such as Ayu, are not bundled into Xcode Pitch Theme.

Compatibility

The repository and display name changed from Xcode Pitch Dark Theme to Xcode Pitch Theme to reflect the new Light variant. The published package name and publisher remain unchanged:

albertochamorro.xcode-pitch-dark-theme

Existing users will receive updates through the same extension. Both existing Dark selection names are unchanged, so their settings continue working. GitHub redirects the previous repository URL to the new one.

Development

Building the editor VSIX requires Node.js 22+, npm and Python 3.11+ (for the test suite). Generating themes alone uses Python 3.9+ and the standard library.

npm ci
npm run build
code --install-extension xcode-pitch-dark-theme-1.2.0.vsix --force

The VSIX filename retains the historical package name intentionally. Building does not publish anything.

  • Edit palettes/dark.json or palettes/light.json to adjust a palette.
  • Run npm run generate (or python3 scripts/build_themes.py) to regenerate all tool exports and editor themes.
  • Run npm run check to detect stale generated files without rewriting them.
  • Run npm test for compatibility, reproducibility, contrast, cross-tool propagation and OpenCode token-reference checks.
  • To smoke-test the standalone Neovim port: nvim --headless -u NONE --cmd 'set rtp+=./extras/neovim' -l tests/test_neovim.lua.
  • Press F5 in VSCode to open an Extension Development Host and inspect all three themes.

At the default palette both original Dark editor files remain byte-for-byte unchanged. Commit all generated files under themes/ and extras/ so consumers do not need build tools. The editor VSIX includes only editor assets, not the other tools' configurations.

palettes/            Shared Dark/Light color roles
templates/vscode/   Original editor scope/UI templates
themes/             Generated editor themes
extras/ghostty/     Generated terminal palettes
extras/opencode/    Generated dual-mode V2 theme
extras/herdr/       Generated theme-only fragments
extras/neovim/      Standalone Lua renderer and generated palettes
scripts/            Generators, no third-party Python dependencies
tests/              Compatibility, generation and standalone-port checks

See CHANGELOG.md for the release history. Licensed under MIT.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft