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

@codixus/mt

v0.3.13

Published

Cross-platform skill manager + dev shortcut CLI

Downloads

1,358

Readme

@codixus/mt

Cross-platform skill manager + dev shortcut CLI for Claude Code, Codex, Gemini CLI, Cursor and other AI coding agents.

Install

npm i -g @codixus/mt
# or
bun add -g @codixus/mt

Requires Bun ≥1.0 (the CLI ships as .ts and runs through bun).

Skill manager

Subscribe to skill repos (public or private), install only what you need, sync across machines.

mt login                                                       # save GitHub PAT to ~/.mt/auth.json (chmod 600)
mt add anthropics/skills --path "skills/frontend-design"       # cherry-pick a single skill
mt add me/private-skills --path "skills/*" --exclude "cxs-*"   # subscribe to a whole repo with filters
mt sync                                                         # fetch + reconcile skills + shortcuts (idempotent)
mt list                                                         # show configured + installed
mt remove <name>                                                # remove + reconcile orphans
mt skills disable <name>                                        # exclude one skill from a repo subscription, delete its files now
mt skills enable <name>                                         # clear the disable flag and sync it back in

Two scopes, auto-detected by cwd:

  • Global (~/.mt/): installs to ~/.claude/, ~/.codex/, ~/.gemini/, etc.
  • Local (<project>/.mt/): installs only to that project's .claude/ etc.

Use --global or --local to override detection.

Per-name overrides live in skills.json's skills map, keyed by skill/command/agent leaf name:

{
  "entries": [{ "name": "codixus", "repo": "codixus/skills", "path": "skills/*" }],
  "skills": {
    "cxs-app-audit": { "enabled": false },
    "mtc": { "alias": "mt-commit" }
  }
}

enabled: false excludes that name from every future mt sync (whether it comes from a glob subscription or not) and deletes any previously-synced copy immediately; alias materialises a new short name as a copy of an existing leaf. mt skills disable/mt skills enable manage the enabled flag for you; alias entries are still hand-edited directly in skills.json.

Shell shortcuts

Cross-platform alias manager (bash, zsh, fish, PowerShell 7+).

mt shortcuts add b "bun install"
mt shortcuts add bt "bun test"
mt shortcuts add mkcd "mkdir -p {1} && cd {1}"
mt shortcuts sync                                               # one-time: wires up your rc file
exec zsh
b foo                                                           # → bun install foo
mkcd test/dir                                                   # → mkdir -p test/dir && cd test/dir

Templated args use {N} / {@} placeholders; mt translates per shell.

Built-in utilities

mt kp 3000 5173               # kill processes on ports (cross-platform)
mt sv ./public -p 8080        # serve directory as static web server
mt open .                     # cross-platform Finder/Explorer/xdg-open
mt awake                      # block system/display sleep + screensaver until Ctrl+C
mt rimraf node_modules dist
mt compress *.png             # lossless image compress in-place (with .bak)
mt convert webp *.png         # batch format conversion (lossless quality 100)

Supported image formats: PNG, JPG/JPEG, WebP, AVIF.

Linter

mt lint is a generic project linter — works in any project, not skill-specific. ~35 rules covering things ESLint doesn't: secrets (AWS/JWT/Stripe/GitHub PATs), AI-slop phrases, Turkish diacritics, typography (smart quotes, em-dash, mojibake), design tokens (off-scale px/rem, raw hex, magic z-index), markdown structure, cross-platform footguns, and i18n locale sync.

mt lint                       # lint staged files
mt lint --all                 # lint all tracked files
mt lint --fix                 # apply safe auto-fixes
mt lint init                  # write .mt/lint.json (auto-detects project type)
mt lint list-rules            # show all rules + severity
mt lint explain <ruleId>      # show rule detail
mt lint install-hook          # install pre-commit hook

Agent hooks (Claude Code + Codex)

Built-in hooks ship with mt and are merged into both ~/.claude/settings.json (Claude Code) and ~/.codex/hooks.json (Codex) on mt sync. Pick which ones you want via ~/.mt/hooks.json (include / exclude over predefined ids).

mt setup --profile mt --global    # writes ~/.mt/hooks.json with include: ["*"]
mt hooks list                     # show built-in hooks + enabled state
mt hooks enable  <id>             # turn a hook on
mt hooks disable <id>             # turn a hook off
mt hooks sync                     # reconcile both hook files now

Shipped hooks:

| id | what it does | |---|---| | block-claude-coauthor | Blocks a Claude/Anthropic co-author trailer, a Generated with/by/using Claude Code trailer, or an @anthropic.com email — in git Bash calls and in file content (Write/Edit/MultiEdit on Claude Code, apply_patch added lines on Codex), closing the bypass of writing the trailer into a file and git commit -F-ing it. | | block-em-en-dash | Blocks new content containing an em-dash or en-dash (AI-typography tell) — Write/Edit/MultiEdit on Claude Code, apply_patch added lines on Codex. The hook self-exempts edits to its own source under hooks/pretooluse/block-em-en-dash.{ts,partial.json,partial.codex.json}; for other files that legitimately contain those characters, run mt hooks disable block-em-en-dash first. | | protect-hooks | Blocks Write/Edit/MultiEdit (Claude Code) and apply_patch (Codex) edits whose target is a managed hook source (hooks/pretooluse/*.{ts,partial.json,partial.codex.json}, hooks/lib/*.ts, hooks/registry.json, and anything under ~/.agents/hooks/), so the agent can't weaken or disable the guards by editing their source. To change a hook, run mt hooks disable <id> first, edit, then mt hooks sync. Covers file-tool edits only — not Bash sed/redirection, nor the merged settings.json/hooks.json. | | inject-mt-start | SessionStart hook (fires on startup/clear/compact): injects the mt-start development-workflow skill into context, plus the workspace docs/MEMORY.md when present. Reads the installed skill at ~/.agents/skills/mt-start/SKILL.md (single source of truth, no duplication) and stays silent when it is absent. MEMORY.md path resolves from $MT_DOCS, then $WS/docs, then ~/Documents/Coding/docs. |

The merge is idempotent: managed handlers are matched by absolute script path under ~/.agents/hooks/, so user-added entries in either file are preserved untouched. Hooks are global only.

Codex note: Codex requires reviewing and trusting non-managed hooks before they run, keyed to the exact hook definition — after a sync adds or changes hooks, run /hooks inside Codex to trust them. Per-hook Codex variants live next to the Claude partials as *.partial.codex.json (the Claude partial is reused when no variant exists).

Skill authoring

If you maintain a skills repo, these helpers operate on the repo's skills/, commands/, and agents/ folders:

mt skills validate            # check SKILL.md frontmatter + structure
mt skills new <name>          # scaffold a new skill (SKILL.md template)
mt skills list                # list skills + commands in this repo

Self-update

mt upgrade                    # re-install @codixus/mt@latest via your package manager

Configuration

mt uses a .mt/ config folder (npm-style global vs local).

| File | Purpose | Scope | |---|---|---| | skills.json | skill subscriptions + cherry-picks | global + local | | shortcuts.json | shell aliases | global only | | hooks.json | Claude Code hook include/exclude | global only | | lint.json | lint rules + ignore patterns | global + local | | manifest.json | mt's record of installed files (don't edit) | global + local | | auth.json | GitHub token (chmod 600) | global only |

Auth chain (in order): ~/.mt/auth.json$MT_GITHUB_TOKEN$GITHUB_TOKENgh auth token. mt never embeds tokens; it delegates to whatever auth you already have.

License

MIT.