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

codex-terminal-themes

v1.0.4

Published

Source-of-truth TextMate themes for local Codex and bat terminal highlighting.

Readme

Codex Terminal Themes

NPM license. NPM total downloads. Latest GitHub release. GitHub stars. GitHub forks. GitHub open issues. Repo Checks.

High-contrast TextMate .tmTheme files for Codex terminal sessions, bat, and other tools that can read TextMate themes.

Browse the theme gallery:

https://nick2bad4u.github.io/codex-terminal-themes/

What You Get

  • 204 TextMate themes in themes/.
  • Glow/Glamour JSON styles for the custom Codex Noir variants in glow/styles/.
  • A searchable online gallery with syntax previews, theme metadata, hue filtering, and color matching.
  • A generated metadata manifest at metadata/themes.json for scripts and theme pickers.
  • A dependency-light npm CLI for listing, previewing, installing, and diagnosing themes.
  • Themes that can still be copied directly into Codex or Bat theme folders.

Recommended Theme

For Codex terminal use, start with:

themes/Nicks-Codex-Noir.tmTheme

It is the most customized AMOLED variant in this repo and has the broadest scope coverage for terminal-heavy workflows.

Use the v2 variant when testing the newer JSON, Markdown, TOML, PowerShell, JavaScript, TypeScript, and config-file readability overrides:

themes/Nicks-Codex-Noir-v2.tmTheme

Install With npm

Use the CLI without a global install:

npx codex-terminal-themes list --search noir
npx codex-terminal-themes show nicks-codex-noir
npx codex-terminal-themes install nicks-codex-noir --target both

Open the interactive picker with an ANSI terminal preview:

npx codex-terminal-themes pick

Install directly from the picker:

npx codex-terminal-themes pick --install --target codex

Run environment checks before installing:

npx codex-terminal-themes doctor

CLI config is optional and only stores CLI defaults. It does not edit theme files or mutate Codex configuration:

npx codex-terminal-themes config set defaultTheme nicks-codex-noir
npx codex-terminal-themes config set defaultTarget both
npx codex-terminal-themes install

Useful install overrides:

npx codex-terminal-themes install nicks-codex-noir --target codex --codex-dir "$env:USERPROFILE\.codex\themes"
npx codex-terminal-themes install nicks-codex-noir --target bat --bat-dir "$((bat --config-dir).Trim())\themes"
npx codex-terminal-themes install nicks-codex-noir --dry-run --json

Use With Codex Manually

Copy the .tmTheme file you want into your Codex themes directory, then select it from your Codex configuration.

On Windows, that folder is usually:

$env:USERPROFILE\.codex\themes

Example:

Copy-Item ".\themes\Nicks-Codex-Noir.tmTheme" "$env:USERPROFILE\.codex\themes\"

Use With Bat Manually

Find Bat's config directory:

bat --config-dir

Create a themes folder there if it does not exist, copy the .tmTheme files into it, then rebuild Bat's cache:

$batConfig = bat --config-dir
New-Item -ItemType Directory -Force -Path "$batConfig\themes"
Copy-Item ".\themes\Nicks-Codex-Noir.tmTheme" "$batConfig\themes\"
bat cache --build

Use a theme once:

bat --theme "Nicks-Codex-Noir" README.md

To make a Bat theme permanent, put the theme name in Bat's config file:

--theme="Nicks-Codex-Noir"

Use With Glow

Glow uses Glamour JSON styles, not TextMate .tmTheme files. The translated custom Noir styles live in:

glow/styles/

Use the v2 style once:

glow --style ".\glow\styles\nicks-codex-noir-v2.json" README.md

Install the generated styles into Glow's local config directory:

$glowStyles = "$env:LOCALAPPDATA\glow\Config\styles"
New-Item -ItemType Directory -Force -Path $glowStyles
Copy-Item ".\glow\styles\*.json" $glowStyles -Force

Then point style in $env:LOCALAPPDATA\glow\Config\glow.yml at the JSON file you want:

style: "C:/Users/Nick/AppData/Local/glow/Config/styles/nicks-codex-noir-v2.json"

These styles map the TextMate palette into Markdown element styles and Chroma token classes, so syntax colors are intentionally close but not a one-to-one scope conversion.

Sync Everything Locally

For local source checkout workflows, this repo also works with a drop-in PowerShell sync script named:

Sync-TerminalThemes.ps1

Dry run first:

Sync-TerminalThemes.ps1 -WhatIf

Then sync:

Sync-TerminalThemes.ps1

The sync script copies valid .tmTheme files to the Codex theme folder and Bat's theme folder, then rebuilds Bat's cache.

Theme Metadata

Use metadata/themes.json when you need to inspect the collection without parsing XML plist files yourself.

It includes:

  • theme id, display name, file name, path, UUID, author, semantic class, and color space
  • detected dark, light, or unknown appearance
  • global colors such as background, foreground, selection, caret, line highlight, and invisibles
  • setting counts, color-reference counts, scoped-setting counts, and unique scope counts
  • TextMate scopes used by each theme
  • duplicate UUID groups for imported themes that share historical UUIDs

See metadata/README.md for the manifest field contract and a small consumption example.

Troubleshooting

If Bat does not show a theme, rebuild its cache:

bat cache --build

If a downloaded theme does not work, make sure it is a raw .tmTheme XML plist file. Saving a rendered GitHub webpage as .tmTheme creates an HTML file that Codex and Bat cannot consume.

If a theme looks too flat, try another Nicks-Codex-Noir*.tmTheme variant. Nicks-Codex-Noir.tmTheme is the flagship Codex terminal theme, while the suffixed variants preserve earlier AMOLED experiments with different contrast and color balance.

Maintainers

Development commands, validation, generated files, and release checks live in DEVELOPMENT.md.