dev-npxify

Audit project dependencies and replace CLI-only tools with npx/pnpm dlx to reduce installed packages. Use when: (1) User wants to reduce dependencies, (2) User says 'npxify', 'dlxify', 'reduce deps', (3) User wants to clean up package.json, (4) User asks which deps can use npx/pnpm dlx.

6 stars

Best use case

dev-npxify is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Audit project dependencies and replace CLI-only tools with npx/pnpm dlx to reduce installed packages. Use when: (1) User wants to reduce dependencies, (2) User says 'npxify', 'dlxify', 'reduce deps', (3) User wants to clean up package.json, (4) User asks which deps can use npx/pnpm dlx.

Teams using dev-npxify should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/dev-npxify/SKILL.md --create-dirs "https://raw.githubusercontent.com/Takazudo/claude-resources/main/skills/dev-npxify/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/dev-npxify/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How dev-npxify Compares

Feature / Agentdev-npxifyStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Audit project dependencies and replace CLI-only tools with npx/pnpm dlx to reduce installed packages. Use when: (1) User wants to reduce dependencies, (2) User says 'npxify', 'dlxify', 'reduce deps', (3) User wants to clean up package.json, (4) User asks which deps can use npx/pnpm dlx.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Dependency NPXification

Audit project dependencies and identify packages that can be replaced with `npx` or `pnpm dlx` to reduce the installed dependency count.

## Package Manager Detection

Check the project for lockfiles to determine the package manager:

- `pnpm-lock.yaml` → use `pnpm dlx`
- `package-lock.json` → use `npx`
- `yarn.lock` → use `npx` (yarn dlx also works but npx is more universal)

## Workflow

### Step 1: Read all package.json files

Find all `package.json` files in the project (root + workspaces). For each, catalog all `dependencies` and `devDependencies`.

### Step 2: Analyze each dependency

For each dependency, determine how it is used:

1. **Search for imports/requires** — `grep` for `require('pkg')`, `from 'pkg'`, `import 'pkg'` in source code
2. **Search for CLI usage** — check `scripts` in package.json for the package binary name
3. **Check if other packages depend on it** — eslint plugins need eslint, prettier plugins need prettier, etc.

### Step 3: Classify each dependency

Classify into one of these categories:

#### Replaceable with npx/pnpm dlx (White List patterns)

These are CLI tools that run infrequently and have few sub-dependencies:

| Package | Typical Usage | Notes |
|---|---|---|
| `husky` | `"prepare": "husky"` | One-time setup on install |
| `lint-staged` | Called from git hooks | Runs only on commit |
| `serve` / `http-server` | `"serve": "serve dist"` | Ad-hoc static file serving |
| `create-*` / `init-*` | Project scaffolding | One-time use |
| `madge` | Dependency graph | Occasional analysis |
| `depcheck` | Unused dep detection | Occasional analysis |
| `license-checker` | License audit | Occasional audit |
| `npm-check-updates` / `ncu` | Update checking | Occasional use |
| `@takazudo/mdx-formatter` | Markdown formatting | Infrequent, lint-staged |
| `concurrently` / `npm-run-all` | Script runners | If used only in one script |
| `rimraf` / `del-cli` | Cross-platform rm | Simple CLI, few deps |
| `cross-env` | Cross-platform env vars | Simple CLI, few deps |
| `dotenv-cli` | Env file loading | Simple CLI |

#### NEVER replace with npx/pnpm dlx (Black List)

These must stay as installed dependencies:

| Category | Examples | Reason |
|---|---|---|
| **Runtime libraries** | react, express, lodash, axios | Imported in source code |
| **Build toolchains** | webpack, vite, esbuild, next, typescript | Deep integration, used constantly |
| **Framework packages** | @docusaurus/*, @nestjs/*, gatsby | Core framework |
| **Type definitions** | @types/* | Needed for IDE and typecheck |
| **Test frameworks** | jest, vitest, mocha, playwright | Run frequently, deep integration |
| **Linter + plugins** | eslint, eslint-plugin-*, prettier (when used by eslint-plugin-prettier) | Plugins must resolve from same node_modules |
| **PostCSS/Tailwind** | tailwindcss, postcss, autoprefixer | Build-time integration |
| **Heavy CLI tools (100+ deps)** | electron-builder (300+ deps), webpack-cli | Too slow to download each time |
| **Packages used by other deps** | prettier (if eslint-plugin-prettier is installed) | Must be resolvable |
| **Config dependencies** | globals (if imported in eslint.config.mjs) | Imported at config load time |

### Step 4: Present findings

Present a table to the user:

```
## Replaceable with pnpm dlx

| Package | Location | Current Usage | Sub-deps |
|---|---|---|---|
| husky | root devDep | prepare script | ~1 |
| lint-staged | doc devDep | pre-commit hook | ~30 |

## Keep as dependency (cannot replace)

| Package | Location | Reason |
|---|---|---|
| eslint | doc devDep | Plugins need local resolution |
| typescript | blog devDep | Build toolchain, IDE integration |
```

### Step 5: Apply changes (after user approval)

For each approved replacement:

1. Update the script/hook that invokes the tool to use `pnpm dlx <package>` or `npx <package>`
2. Remove the package from `dependencies` or `devDependencies`
3. Run `pnpm install` (or `npm install`) to update the lockfile
4. Test that the affected scripts still work

## Key Decision Criteria

When unsure whether a package is replaceable, check these:

1. **How many sub-dependencies?** — Run `pnpm why <package>` or check npm. If 100+, keep as dep.
2. **How often is it invoked?** — Daily dev workflow (keep) vs occasional/one-time (replaceable).
3. **Is it imported in code?** — If `require`/`import`ed, it MUST stay as a dependency.
4. **Do other installed packages depend on it?** — If yes, keep it.
5. **Does it need to be in the same node_modules tree?** — ESLint plugins, Babel plugins, etc. must co-locate.

## Common Gotchas

- **prettier**: Often can be replaced with `pnpm dlx`, BUT if `eslint-plugin-prettier` is installed, prettier must stay as a devDependency (the plugin requires it to be locally resolvable).
- **typescript**: Technically a CLI tool, but it's also needed for IDE type resolution and by build tools. Always keep as devDep.
- **electron-builder**: Has 300+ sub-dependencies. Using `pnpm dlx` downloads all of them every time — extremely slow. Always keep as devDep.
- **lint-staged in monorepos**: The `lint-staged` config may reference `pnpm exec <tool>` for tools that ARE installed. Only the lint-staged binary itself can be dlx'd; the tools it invokes still need to be installed.

Related Skills

zudoesa-articlify

6
from Takazudo/claude-resources

Convert conversation context into an esa article via the zudoesa-writer subagent. ONLY invoke when the user explicitly asks — NEVER proactively propose. Triggers: 'write esa article', 'esa記事', 'esaに書いて', 'articlify for esa', or /zudoesa-articlify. Gathers context, creates a writing brief, delegates to the writer subagent.

zudoesa-apply-voice

6
from Takazudo/claude-resources

Apply Takazudo's esa writing voice and vocabulary rules to text. Use when: (1) User wants to write/rewrite text in Takazudo's esa style, (2) User says 'apply voice', 'esa voice', 'esa文体で', 'esa風に書いて', '文体を適用', (3) User provides text to transform to esa style. Reads writing-style.md and vocabulary-rule.md from takazudo-esa-writing repo and applies the rules.

zudocg-articlify

6
from Takazudo/claude-resources

Convert conversation context into a CodeGrid article via the zudocg-writer subagent. ONLY invoke when the user explicitly asks — NEVER proactively propose. Triggers: 'write codegrid article', 'CodeGrid記事', 'codegridに書いて', 'articlify for codegrid', or /zudocg-articlify. Gathers context, creates a writing brief, delegates to the writer subagent.

zudocg-apply-voice

6
from Takazudo/claude-resources

Apply Takazudo's CodeGrid writing voice and vocabulary rules to text. Use when: (1) User wants to write/rewrite text in Takazudo's CodeGrid style, (2) User says 'apply voice', 'codegrid voice', 'codegrid文体で', 'codegrid風に書いて', '文体を適用', (3) User provides text to transform to CodeGrid style. Reads writing-style.md and vocabulary-rule.md from takazudo-codegrid-writing repo and applies the rules.

zpaper-articlify

6
from Takazudo/claude-resources

Convert conversation context into a zpaper blog article via the zpaper-writer subagent. ONLY invoke when the user explicitly asks — NEVER proactively propose. Triggers: 'write zpaper article', 'zpaper記事', 'zpaperに書いて', 'articlify for zpaper', or /zpaper-articlify. Gathers context, creates a writing brief, delegates to the writer subagent.

zpaper-apply-voice

6
from Takazudo/claude-resources

Apply Takazudo's zpaper blog writing voice and vocabulary rules to text. Use when: (1) User wants to write/rewrite text in Takazudo's zpaper style, (2) User says 'apply voice', 'zpaper voice', 'zpaper文体で', 'zpaper風に書いて', 'ブログ文体を適用', (3) User provides text to transform to zpaper style. Reads writing-style.md and vocabulary-rule.md from the zpaper repo and applies the rules.

xlsx

6
from Takazudo/claude-resources

Spreadsheet creation, editing, and analysis. Use when working with .xlsx, .xlsm, .csv, .tsv files for: (1) Creating spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modifying existing spreadsheets while preserving formulas, (4) Data analysis and visualization, (5) Recalculating formulas.

x

6
from Takazudo/claude-resources

Facade for development workflows. Routes on two axes: plan-first vs implement-now (escalates to /big-plan -a when the request needs research / decomposition / has unclear scope — the appended -a makes the plan chain into implementation in-session), then single vs multi on the ready-to-build fast paths (/x-as-pr single-topic, /x-wt-teams multi-topic parallel). Use when: (1) User says '/x' followed by dev instructions, (2) User wants to start development without choosing the workflow skill, (3) User says 'dev', 'implement', or 'build' with a task. Default option: -v (verify-ui). Review-loop (-l) is opt-in — without -l the downstream skill runs a single /deep-review pass. Forwards -a (autonomy/auto-chain) and -m (merge at the end + cleanup + CI watch) through every route; auto-fix of raised findings (-f) and issue-raising (-ri) are downstream defaults, with -nf/--no-fix and -nori/--no-raise-issues as the forwarded opt-outs. -a and -m are orthogonal — full hands-off end-to-end is -a -m.

x-wt-teams

6
from Takazudo/claude-resources

Parallel multi-topic development using git worktrees, base branches, and Claude Code agent teams. Use when: (1) User wants to work on multiple related features in parallel, (2) User mentions 'worktree', 'base branch', 'parallel development', 'split into topics', or 'multi-topic'. FULLY AUTONOMOUS — creates worktrees, spawns teams, coordinates everything. Also supports Super-Epic child mode for [Epic] issues from /big-plan with '**Super-epic:** #N' markers (targets the super-epic base branch instead of main).

x-as-pr

6
from Takazudo/claude-resources

Start a development workflow as a draft PR. Creates a NEW branch from the current branch, empty start commit, draft PR targeting the current branch, then implements. ALWAYS creates a new branch by default — produces a nested PR-on-PR when the current branch already has one. Use when: (1) User says 'dev as pr', (2) User wants a PR-first workflow before coding, (3) User passes -s/--stay to reuse the current branch instead of nesting, (4) User passes a GitHub issue URL to implement, (5) User passes --make-issue/--issue to create an issue first. Logs progress via issue comments when an issue is linked.

watch-ci

6
from Takazudo/claude-resources

Watch GitHub PR CI checks in the background and notify on completion. Use when: (1) User wants to monitor CI/CD status, (2) User says 'watch CI', 'check CI', 'monitor checks', or 'wait for CI', (3) User wants to know when checks pass or fail. Runs a background gh polling shell loop (NOT a subagent — near-zero token cost), sends macOS notification on completion. Also handles merged PRs by watching the target branch CI.

w-update-wording-rule

6
from Takazudo/claude-resources

Add or update wording rules (表記ルール) in the w repo's vocabulary-rule.md files. Use when: (1) User says 'add wording rule', 'update wording rule', '表記ルール追加', (2) User wants to add a kanji/hiragana usage rule, (3) User provides a rule like 'X should be Y' with examples.