@codixus/mt
v0.3.4
Published
Cross-platform skill manager + dev shortcut CLI
Maintainers
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/mtRequires 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 orphansTwo 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.
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/dirTemplated 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 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 hookClaude Code hooks
Built-in Claude Code hooks ship with mt and are merged into ~/.claude/settings.json 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 ~/.claude/settings.json nowShipped hooks:
| id | what it does |
|---|---|
| block-claude-coauthor | Blocks git commit Bash calls whose message contains a Claude/Anthropic co-author trailer. |
| block-em-en-dash | Blocks Write/Edit/MultiEdit whose new content contains an em-dash or en-dash (AI-typography tell). The hook self-exempts edits to its own source under hooks/pretooluse/block-em-en-dash.{ts,partial.json}; for other files that legitimately contain those characters, run mt hooks disable block-em-en-dash first. |
The merge is idempotent: managed handlers are matched by absolute script path under ~/.agents/hooks/, so user-added entries in settings.json are preserved untouched. Hooks are global only.
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 repoSelf-update
mt upgrade # re-install @codixus/mt@latest via your package managerConfiguration
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_TOKEN → gh auth token. mt never embeds tokens; it delegates to whatever auth you already have.
License
MIT.
