New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@codixus/mt

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codixus/mt

Cross-platform skill manager + dev shortcut CLI

Source
npmnpm
Version
0.5.1
Version published
Weekly downloads
22
-21.43%
Maintainers
1
Weekly downloads
 
Created
Source

@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:

idwhat it does
block-claude-coauthorBlocks 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-dashBlocks 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-hooksBlocks 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-startSessionStart 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).

FilePurposeScope
skills.jsonskill subscriptions + cherry-picksglobal + local
shortcuts.jsonshell aliasesglobal only
hooks.jsonClaude Code hook include/excludeglobal only
lint.jsonlint rules + ignore patternsglobal + local
manifest.jsonmt's record of installed files (don't edit)global + local
auth.jsonGitHub 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.

Keywords

cli

FAQs

Package last updated on 14 Jul 2026

Related posts