Your favorite editor theme, everywhere.
chroma (color) + port (carry across) — carry your editor colors everywhere.
brew tap hamsurang/chromaport
brew install chromaportcargo install chromaportgit clone https://github.com/hamsurang/chromaport.git
cd chromaport
cargo install --path .chromaport automatically checks for new releases once a week. When an update is available, you'll see a notice after running any command:
A new release of chromaport is available: 0.2.0 → 0.3.0
Run `chromaport update` to upgrade.
To update, simply run:
chromaport updateThis auto-detects your install method (Homebrew or Cargo) and runs the appropriate upgrade command.
To disable the automatic update check, set:
export CHROMAPORT_NO_UPDATE_CHECK=1The check is also automatically disabled in CI environments and non-interactive shells.
Run chromaport and follow the interactive prompts:
$ chromaport
> Select editor: Cursor
> Select theme: One Monokai (with live TUI preview)
> Select target app: Ghostty
Converting theme...
✔ One Monokai → ~/chromaport/themes/one-monokai.json
chromaport [OPTIONS] [COMMAND]
Commands:
update Check for updates and upgrade chromaport
apply Apply a saved theme to additional targets
create Create a custom theme from scratch
presets Manage preset themes
Options:
-v, --version Print version
-e, --editor <EDITOR> Source editor [possible values: vscode, cursor, opencode, iterm2]
-t, --target <TARGET> Target app [possible values: superset, warp, ghostty, opencode, obsidian, iterm2]
-h, --help Print help
# Interactive mode — select editor, themes, and target step by step
chromaport
# Skip editor/target selection — specify directly
chromaport --editor vscode --target ghosttyTheme selection includes a TUI-based live preview powered by ratatui, showing a real-time rendering of each theme as you browse. Use arrow keys to navigate and type to filter.
chromaport applyRe-apply a previously imported theme to additional targets. Shows which targets already have the theme applied.
chromaport createBuild a theme from scratch using an interactive color picker:
- Pick a background color
- Pick a foreground color
- Pick an accent color
- Preview and confirm
The color picker supports slider mode (arrow keys to adjust HSL values, Shift for 5x step) and hex mode (press # to type a hex code directly). A full palette is automatically derived from your 3 base colors.
# List available presets
chromaport presets list
# Install presets
chromaport presets installBrowse and install curated preset themes from the chromaport repository.
| Editor | Path |
|---|---|
| VS Code | ~/.vscode/extensions/ |
| Cursor | ~/.cursor/extensions/ |
| OpenCode | ~/.config/opencode/themes/ |
| iTerm2 | ~/Library/Preferences/com.googlecode.iterm2.plist |
| Target | How it works |
|---|---|
| Superset | Writes to ~/.superset/chromaport-themes/ — import via Superset UI |
| Warp | Symlinks to ~/.warp/themes/ — auto-detected while running |
| Ghostty | Symlinks to ~/.config/ghostty/themes/ — apply via config or reload |
| OpenCode | Symlinks to ~/.config/opencode/themes/ — auto-detected on restart |
| Obsidian | Copies to vault's .obsidian/themes/ — activate in Settings → Appearance |
| iTerm2 | Symlinks to ~/.config/iterm2/themes/ — import via Color Presets |
- Scans editor extension directories for
package.jsontheme contributions - Parses VS Code theme JSON (with JSONC comment stripping and
includeinheritance) - Converts to an intermediate representation (IR)
- Saves to a central theme store (
~/chromaport/themes/) - Symlinks or writes to the selected target format
cargo test
cargo fmt --check
cargo clippy --all-targetsMIT
