npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

themebooth

v0.3.0

Published

Create syntax themes once, publish to VS Code, Notepad++, and Zed

Readme

Theme Booth

Create beautiful syntax highlighting themes for VS Code, Notepad++, and Zed—without learning three different config formats. Write once, publish everywhere.

Install

npm install -g themebooth

Quickstart

1. Initialize a new theme

themebooth init my_theme
cd my_theme

Creates a project with manifest.json (your theme definition) and a live preview setup.

2. Define your theme

Edit manifest.json with your color palette and syntax rules. Define colors once as variables, reuse them everywhere. Computed colors let you derive variations automatically:

{
  "name": "Ocean Dream",
  "description": "A cool, calm syntax theme",
  "author": "[email protected]",
  "version": "1.0.0",
  "variables": {
    "bg": "#0d1117",
    "fg": "#c9d1d9",
    "accent": "#58a6ff",
    "error": "#ff7b72",
    "string": "#a371f7",
    "comment": "#8b949e"
  },
  "computed": {
    "accent_dark": { "base": "$accent", "transform": "darken", "amount": 20 },
    "error_dark": { "base": "$error", "transform": "darken", "amount": 15 }
  },
  "colors": {
    "editor.background": "$bg",
    "editor.foreground": "$fg",
    "editorError.foreground": "$error_dark"
  },
  "tokens": {
    "keyword": { "foreground": "$accent", "fontStyle": "bold" },
    "string": { "foreground": "$string" },
    "comment": { "foreground": "$comment", "fontStyle": "italic" }
  }
}

Use $variableName anywhere in the file. Change a color once, updates everywhere. Add computed colors for automatic variations.

3. Preview live changes

themebooth preview

Opens preview.html in your browser. Edit manifest.json, and the preview reloads automatically. Test with built-in code samples or paste your own code.

4. Package your theme

themebooth package

Generates ocean-dream/ with ready-to-publish formats for all 3 platforms.

5. Publish to marketplaces

VS Code:

themebooth publish vscode

Notepad++:

themebooth publish notepad++

Zed:

themebooth publish zed

Each command guides you through marketplace login and submission.

What v1 supports

  • 3 editors: VS Code, Notepad++, Zed
  • Single JSON theme definition (no per-editor config files in v1)
  • Color variables ($colorName) for DRY theming—define once, reuse everywhere
  • Computed colors (darken, lighten, alpha transforms)—derive colors from variables at build time
  • Theme inheritance (extends)—compose themes by extending parent manifests
  • Semantic token styling—language-aware syntax highlighting alongside TextMate scopes
  • Language-specific tokens—customize highlighting per programming language
  • Preset system—offer theme variants (dark/light, bold/soft) to users
  • Live HTML preview with code samples
  • One-command packaging to editor-native formats
  • Interactive preset wizardthemebooth preset add to create and manage presets

How it works

  1. Write a single manifest.json with your colors and token rules
  2. Theme Booth transpiles it into each editor's native format:
    • VS Code → .json theme file
    • Notepad++ → .xml style definition
    • Zed → .json theme file
  3. Publish directly from CLI using your marketplace credentials

Documentation

Examples

Create a theme from preset

themebooth init ocean-dream --preset dark
cd ocean-dream
themebooth preview

Use custom colors

Edit manifest.json:

{
  "name": "My Theme",
  "author": "Your Name",
  "description": "Custom syntax theme",
  "version": "1.0.0",
  "variables": {
    "bg": "#0d1117",
    "fg": "#c9d1d9",
    "keyword": "#ff6b6b"
  },
  "colors": {
    "editor.background": "$bg",
    "editor.foreground": "$fg"
  },
  "tokens": {
    "keyword": { "foreground": "$keyword", "fontStyle": "bold" }
  },
  "presets": []
}

Then preview:

themebooth preview

Changes to manifest.json reload automatically.

CLI Commands

| Command | Purpose | |---------|---------| | themebooth init [name] | Create new theme project | | themebooth init [name] --preset [dark\|light\|high-contrast] | Create with starter preset | | themebooth preview | Live preview with hot-reload | | themebooth validate | Validate manifest.json | | themebooth preset add | Interactive wizard to create theme variants | | themebooth package | Package for all platforms | | themebooth publish <platform> | Publish to marketplace |

See themebooth --help or themebooth <command> --help for detailed options.

Next: Future versions

v2 adds Sublime Text, IntelliJ IDEA, and PyCharm with multi-file support and language-specific overrides.

v3 brings Eclipse and Visual Studio with advanced plugin structures.


See ROADMAP.md for the full vision.