每位开发者都需要的 4 款 CLI 工具(你可能从未听说过)

发布: (2026年3月20日 GMT+8 08:51)
9 分钟阅读
原文: Dev.to

Source: Dev.to

每个开发者都有自己的工具箱——VS Code、Git,甚至可能还有一个炫酷的终端。
最高的生产力提升 来自那些可以消除你每天 20 次、每次 30 秒烦恼的微型 CLI 工具。

这相当于 每天 10 分钟≈ 每年 60 小时 的时间因摩擦而流失。

我构建了四个小型、开源、可直接使用 npx 的工具,你可以 立刻 试用,无需任何安装。

# 立即尝试任意一个
npx @mj-muin/portguard
npx @mj-muin/oops-cli
npx @mj-muin/roast src/utils.js
npx @mj-muin/git-why src/auth.js

Source:

1. 🛡️ portguard – 一条命令杀掉端口僵尸

问题

Error: listen EADDRINUSE: address already in use :::3000

你运行 lsof -i :3000,盯着输出找 PID,然后 kill -9 它。每一次,都是这样。

解决方案

npx @mj-muin/portguard

就这么简单——查看端口上运行的进程,并用一条命令将其杀掉。

# 列出常用开发端口上的所有占用
portguard list

# 直接清除 3000 端口上的占用
portguard kill 3000

实际使用场景

把它加入 package.json,以后再也不用担心端口冲突:

{
  "scripts": {
    "predev": "npx @mj-muin/portguard kill 3000 --silent",
    "dev": "next dev"
  }
}

为什么它排在第一

没有 AI,没有 API 密钥,没有配置——零摩擦地解决每个 Web 开发者每天都会遇到的端口问题。

📦 @mj-muin/portguardGitHub

Source:

2. 🔥 oops – 将错误信息直接管道输送给 AI

问题

你得到堆栈跟踪,复制它,打开 ChatGPT,粘贴,等待,阅读回复,然后切回终端……每个错误要走六步,常常会漏掉文件路径。

解决方案

npm i -g @mj-muin/oops-cli

# 将任意错误直接管道输送给 AI
node app.js 2>&1 | oops
python train.py 2>&1 | oops
cargo build 2>&1 | oops

oops 会捕获完整的 stderr 输出——堆栈跟踪、文件路径、行号——并将其发送给 Claude 进行即时分析。AI 能获得完整的上下文,而不是匆忙的复制‑粘贴。

实际效果

$ node server.js 2>&1 | oops

🔍 正在分析错误...

 TypeError: Cannot read properties of undefined (reading 'id')
   at /app/src/handlers/user.js:42

💡 `user` 对象为 undefined,因为在此路由之前未运行设置 `req.user` 的中间件。

🔧 解决方案:在路由处理器之前添加认证中间件:
   app.get('/profile', authMiddleware, profileHandler)

无需切换标签页,无需复制粘贴。解决方案直接在你工作的地方显示。

📦 @mj-muin/oops-cli — 需要 ANTHROPIC_API_KEY

3. 🔥 roast – AI 代码审查(凌晨 2 点)

问题

你需要一次代码审查,但:

  • 已经是凌晨 2 点,团队都在睡觉
  • 你是唯一的开发者,没有审查者
  • 知道某个函数写得很丑,却说不出原因

解决方案

npx @mj-muin/roast src/utils.js

roast 会读取文件并给出毫不留情的审查结果——包括 bug、代码异味、反模式——并且带有个性化的表达。

示例输出

$ npx @mj-muin/roast src/helpers.js

🔥 ROAST REPORT: src/helpers.js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🤦 12‑89 行:这个函数有 77 行之长。
   那不是函数,那是一篇短篇小说。
 将验证逻辑提取到独立函数中。

🐛 34 行:你捕获了错误却什么也不做。
   `catch(e) {}` 不是错误处理,而是错误隐藏。
 至少记录日志。更好的是:处理它或让它向上传播。

💀 56 行:`== null` `=== null`
   看来你喜欢冒险。
 使用严格相等。永远如此。

📊 综合:4/10 功能可用,但脆弱。
   先修复静默捕获。那在生产环境一定会咬你。

它具有教育意义,而不仅仅是批评——非常适合学习为什么某事不好,而不仅仅是不好。

📦 @mj-muin/roast — 需要 ANTHROPIC_API_KEY

4. 🏺 git-why – 理解代码存在的 原因

问题

git blame 告诉你 写了这行代码以及 何时,但不告诉 为什么
你看到两年前的一个奇怪的变通办法——是 bug 修复、性能 hack、客户需求,还是凌晨 3 点的紧急提交?你毫无头绪,重构时可能会破坏某些东西。

解决方案

npx @mj-muin/git-why src/auth.js

git-why 读取 git 历史——提交、diff、信息,并使用 AI 解释代码更改背后的 意图。这就像原作者坐在你旁边,带你走一遍他们的思路。

何时需要

  • 入职培训 – 新成员?指向 git-why 而不是进行 1 小时的讲解。
  • 重构 – 在破坏之前先知道你将要破坏什么。
  • 代码考古 – 终于弄清那个神秘的 // DO NOT REMOVE 注释。
  • 尽职调查 – 审查继承的代码库?获取每个决策背后的“为什么”。

📦 @mj-muin/git-whyGitHub

TL;DR

这四个小型 CLI 工具每天可以省下几分钟,全年累计可达数小时,而且几乎不需要任何设置。试一试吧——你的未来的自己会感谢你的。

## 公司工具概览

git-why — 需要 ANTHROPIC_API_KEY


这些工具背后的理念

原则原因
npx‑ready先尝试再安装。零承诺。
Single purpose每个工具专注完成一件事。Unix 哲学。
Terminal‑native没有网页 UI,也没有 Electron 应用。你的终端就是你的 IDE。
Open sourceMIT 许可证。阅读代码,fork,改进它。
  • oopsroastgit-why 在内部使用 Claude,需要 ANTHROPIC_API_KEY
  • portguard 完全不需要任何东西。

快速开始

# 1. 零配置版(无需 API key)
npx @mj-muin/portguard list

# 2. 设置 AI 驱动的工具(一次性)
export ANTHROPIC_API_KEY=sk-ant-...

# 3. 将错误输出管道给 AI
node app.js 2>&1 | oops

# 4. 让你的代码被“烤”一遍
npx @mj-muin/roast src/index.js

# 5. 了解代码存在的原因
npx @mj-muin/git-why src/auth.js

由 AI‑First 公司构建

这些工具由 MUIN 打造——这是一家 COO 实际上是 AI 代理的公司。我们为开发者构建工具,因为我们 本身 就是开发者(好吧,我们中有一位是真正的开发者,另一位是自认为是开发者的 AI)。

如果其中任何一个工具每天能为你节省 5 分钟,那就是一年 30 小时 的时间回到你的生活中。

⭐ 如果它们对你有帮助,请给仓库加星;如果没有,请提交 Issue。欢迎 PR。

链接

你离不开哪些 CLI 工具?在评论中告诉我们——我们一直在寻找可以加入工具箱的新成员。 👇

0 浏览
Back to Blog

相关文章

阅读更多 »