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

claude-math

v0.4.1

Published

Render math legibly in Claude Code and OpenAI Codex CLI. Emits Unicode glyphs instead of unrenderable LaTeX in the terminal. (Graphical sixel/kitty rendering is on the roadmap.)

Readme

claude-math

Make math in Claude Code and Codex legible.

Terminal coding agents do not render LaTeX. In both Claude Code and OpenAI Codex CLI, a formula like $f(x) = \sum_{i=1}^n x_i$ appears as raw dollar signs and backslashes, exactly the noise you wanted formatting to remove. This project ships a single skill (math-unicode) that instructs the model to emit math as Unicode glyphs inline. Unicode-capable terminals with a suitable font render these glyphs directly. It installs as a Claude Code plugin and, via the identical SKILL.md, as a Codex skill (claude-math install --codex).

Before / after

Before:  The qualifying cohort is $Q = \{ (s,r) \in T : n_{s,r} \geq 18 \wedge p^0_{s,r} < 0.9 \}$,
         with $|Q| / |T| \approx 17.3\%$.

After:   The qualifying cohort is Q = { (s,r) ∈ T : n_{s,r} ≥ 18 ∧ p⁰_{s,r} < 0.9 },
         with |Q| / |T| ≈ 17.3 %.

Install

The quickest install is through the plugin marketplace (see below). The npm and manual paths also work.

via npm

npm install -g claude-math
claude-math install

Symlinks the package into ~/.claude/plugins/local/claude-math, registers it in installed_plugins.json, and enables it in settings.json (atomically; both files get a .claude-math.bak backup on first touch). Restart Claude Code and the skill loads.

npx claude-math install also works: the CLI auto-detects an npx-cache install path and copies rather than symlinks (since the cache directory is ephemeral). Prefer the global install if you want updates via npm update -g claude-math to propagate automatically.

Other commands:

claude-math status        # report target, validity, settings state, next-install mode
claude-math uninstall     # remove symlink/dir, deregister, disable
claude-math --help        # full flag list, env overrides

Flags: --force overrides safety checks (foreign symlinks, non-plugin directories at the target). --copy forces a real copy instead of symlink.

Manual install

git clone https://github.com/vladimirrott/claude-math \
  ~/.claude/plugins/local/claude-math

Then add "claude-math@local": true under enabledPlugins in ~/.claude/settings.json and a matching entry in ~/.claude/plugins/installed_plugins.json. The CLI does both; running it once is the easiest path.

Via Claude Code's plugin marketplace (recommended)

/plugin marketplace add vladimirrott/claude-math
/plugin install claude-math@vladimirrott

The skill normally activates for mathematical output. To load the complete rule set explicitly in Claude Code, run /math-unicode before the request.

Codex CLI

claude-math works in OpenAI Codex CLI too — the skill uses the same name + description SKILL.md frontmatter Codex reads. Two install paths:

Native Codex plugin (recommended — no npm):

codex plugin marketplace add vladimirrott/claude-math
codex plugin add claude-math@vladimirrott

Codex installs the plugin (manifest: .codex-plugin/plugin.json) and loads its math-unicode skill. Restart Codex if it does not appear; invoke with /skills or by mentioning $math-unicode. Remove with codex plugin remove claude-math@vladimirrott.

Via npm (drops just the skill file):

npm install -g claude-math
claude-math install --codex

This copies the skill into ~/.agents/skills/math-unicode/ (the current Codex user-skills dir; the older ~/.codex/skills/ path is deprecated but still read for backward compatibility). Use claude-math status --codex to check and claude-math uninstall --codex to remove. Set CLAUDE_MATH_CODEX_SKILLS_DIR to target a non-default skills directory.

Use one path or the other, not both — installing via the plugin and the CLI would load two copies of the same skill.

Hacking on this repo

Working from a clone (before or after publish):

git clone https://github.com/vladimirrott/claude-math && cd claude-math
node bin/claude-math.js install     # uses the cloned directory directly
node --test test/                   # run the test suite

CLAUDE_CONFIG_DIR=/tmp/somewhere claude-math install lets you test against a sandbox without touching your real ~/.claude state, useful for contributing.

The math-unicode skill auto-triggers any time the model (Claude or Codex) writes or explains math. No configuration required.

Graphical rendering (sixel / kitty): not inside the chat

Rendering math as an actual image (sixel or kitty graphics) is not possible inside the Claude Code chat. The TUI repaints its own screen buffer on every update and overwrites any graphics escape sequences a plugin emits, and its line accounting does not know an image's height. So in-chat output stays Unicode, which is the point of this skill.

Roadmap (not built yet): a standalone claude-math render "<latex>" command that converts LaTeX to an image and prints it via the terminal's graphics protocol in your own graphics-capable terminal (kitty, wezterm, ghostty, foot), outside the Claude Code TUI. It would be a convenience for viewing an equation on demand, not in-chat rendering.

Why Unicode by default?

| Path | Works in plain terminal | SSH / tmux | CI logs | Copy-paste | Install cost | |---|---|---|---|---|---| | Unicode (this skill) | ✓ | ✓ | ✓ | ✓ | 1 file | | Sixel / kitty graphics | ✗ (not in chat) | partial | ✗ | ✗ images | separate render CLI (roadmap) | | Pipe through external viewer | ✗ TUI breaks | n/a | ✓ if --print | ✓ | shell wrapper |

Unicode is the only approach that preserves text across the distribution channels a Claude Code session commonly uses. The graphical path is roadmap-only and, even then, would run as a separate terminal command outside the chat.

Related issues & prior art

License

MIT.