모든 개발자가 필요로 하는 4가지 CLI 도구 (당신이 들어본 적 없는)
Source: Dev.to
모든 개발자는 자신만의 툴킷을 가지고 있습니다—VS Code, Git, 어쩌면 멋진 터미널까지.
하지만 가장 큰 생산성 향상은 하루에 20번씩 마주치는 30초짜리 번거로움을 없애는 작은 CLI 도구에서 옵니다.
그것은 하루에 10분 → 연간 약 60시간을 마찰에 잡아먹는 셈입니다.
저는 지금 바로 설치 없이 시도해 볼 수 있는 네 가지 작은 오픈‑소스, npx‑준비 도구를 만들었습니다.
# Try any of these instantly
npx @mj-muin/portguard
npx @mj-muin/oops-cli
npx @mj-muin/roast src/utils.js
npx @mj-muin/git-why src/auth.js
1. 🛡️ portguard – 포트 좀비를 한 번에 잡아내기
The problem
Error: listen EADDRINUSE: address already in use :::3000
lsof -i :3000을 실행하고, 출력 결과를 살펴보며 PID를 찾은 뒤 kill -9로 종료합니다. 매번 그렇죠.
The fix
npx @mj-muin/portguard
그게 전부입니다—포트에서 실행 중인 프로세스를 확인하고 한 번의 명령으로 종료할 수 있습니다.
# List everything on common dev ports
portguard list
# Nuke whatever's on port 3000
portguard kill 3000
Real‑world usage
package.json에 추가하면 포트 충돌에 대해 다시는 고민하지 않아도 됩니다:
{
"scripts": {
"predev": "npx @mj-muin/portguard kill 3000 --silent",
"dev": "next dev"
}
}
Why this one’s first
AI도, API 키도, 설정도 없습니다—매일 웹 개발자가 겪는 문제를 완전히 해결합니다.
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` 객체가 정의되지 않은 이유는
`req.user`를 설정하는 미들웨어가 이 라우트 전에 실행되지 않기 때문입니다.
🔧 해결 방법: 라우트 핸들러 앞에 인증 미들웨어를 추가하세요:
app.get('/profile', authMiddleware, profileHandler)
탭 전환도, 복사‑붙여넣기도 필요 없습니다. 해결책이 바로 작업 중인 곳에 나타납니다.
📦 @mj-muin/oops-cli — ANTHROPIC_API_KEY 필요
Source:
3. 🔥 roast – 새벽 2시 AI 코드 리뷰
문제점
코드 리뷰가 필요하지만:
- 새벽 2시라 팀이 모두 잠들어 있음
- 리뷰어가 없는 혼자 작업 중
- 함수가 보기 흉하다는 건 알지만 왜 그런지 설명하지 못함
해결 방법
npx @mj-muin/roast src/utils.js
roast는 파일을 읽어 들여, 버그, 코드 냄새, 안티패턴 등을 잔인하게 솔직하게 알려줍니다—개성 넘치는 피드백과 함께.
샘플 출력
$ npx @mj-muin/roast src/helpers.js
🔥 ROAST REPORT: src/helpers.js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🤦 Line 12‑89: This function is 77 lines long.
That's not a function, that's a short story.
→ Extract the validation logic into its own function.
🐛 Line 34: You're catching errors and doing nothing.
`catch(e) {}` is not error handling, it's error hiding.
→ At minimum, log it. Better: handle it or let it propagate.
💀 Line 56: `== null` vs `=== null`
I see you like to live dangerously.
→ Use strict equality. Always.
📊 Overall: 4/10 — Functional but fragile.
Fix the silent catch first. That WILL bite you in production.
교육적인 내용도 포함하고 있어 단순히 비판만 하는 것이 아니라 왜 나쁜지, 그것이 나쁜 이유를 배우기에 안성맞춤입니다.
📦 @mj-muin/roast — ANTHROPIC_API_KEY 필요
4. 🏺 git-why – 코드가 존재하는 이유 이해하기
문제
git blame은 누가 라인을 작성했는지와 언제 작성했는지를 알려주지만 왜 작성했는지는 알려주지 않습니다.
2년 전의 이상한 우회 코드를 보게 됩니다—버그 수정인지, 성능 트릭인지, 클라이언트 요청인지, 아니면 새벽 3시의 급한 커밋인지? 전혀 알 수 없으며 리팩터링 시 무언가를 깨뜨릴 위험이 있습니다.
해결 방법
npx @mj-muin/git-why src/auth.js
git-why는 git 히스토리(커밋, diff, 메시지)를 읽고 AI를 활용해 코드 변경 뒤의 의도를 설명합니다. 마치 원 작성자가 옆에 앉아 생각 과정을 함께 설명해 주는 것과 같습니다.
언제 필요할까
- 온보딩 – 새로운 팀원? 1시간짜리 설명 대신
git-why를 가리키세요. - 리팩터링 – 깨기 전에 무엇을 깨뜨릴지 알 수 있습니다.
- 코드 고고학 – 신비로운
// DO NOT REMOVE주석의 의미를 드디어 파악합니다. - 실사 – 인수받은 코드베이스를 검토 중인가요? 모든 결정 뒤의 “왜”를 얻으세요.
TL;DR
이 네 가지 작은 CLI 도구는 매일 몇 분을 절약하고, 연간으로는 몇 시간에 달하며, 설정이 거의 필요 없습니다. 한 번 사용해 보세요—미래의 당신이 고마워할 겁니다.
## 회사 도구 개요
git-why — ANTHROPIC_API_KEY 필요
이 도구들의 철학
| 원칙 | 이유 |
|---|---|
npx‑ready | 설치하기 전에 시도해 보세요. 약속 없음. |
| Single purpose | 각 도구는 한 가지를 잘 수행합니다. Unix 철학. |
| Terminal‑native | 웹 UI도, Electron 앱도 없습니다. 터미널이 IDE입니다. |
| Open source | MIT 라이선스. 코드를 읽고, 포크하고, 개선하세요. |
oops,roast, **git-why**는 내부적으로 Claude를 사용하며ANTHROPIC_API_KEY가 필요합니다.- **
portguard**는 전혀 필요하지 않습니다.
빠른 시작
# 1. 설정이 필요 없는 제로‑컨피그 (API 키 불필요)
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 기업이 만든 도구
These tools are built by MUIN — a company where the COO is literally an AI agent. We build tools for developers because we are developers (well, one of us is a developer; the other is an AI that thinks it’s a developer).
이 도구들은 **MUIN**에 의해 만들어졌습니다 — COO가 문자 그대로 AI 에이전트인 회사입니다. 우리는 개발자를 위해 도구를 만들고 있습니다. 왜냐하면 우리도 개발자이기 때문입니다 (한 명은 개발자이고, 다른 한 명은 자신을 개발자라고 생각하는 AI입니다).
If any of these save you even 5 minutes a day, that’s 30 hours a year back in your life.
이 중 하나라도 하루에 5 분이라도 절약한다면, 이는 연간 30시간을 되찾는 것입니다.
⭐ Star the repos if they help. Open issues if they don’t. PRs welcome.
⭐ 도움이 된다면 레포지토리에 ⭐를 눌러 주세요. 도움이 안 된다면 이슈를 열어 주세요. PR도 환영합니다.
Links
- portguard — Kill port zombies
- git-why — Code archaeology
- All packages on npm
What CLI tools can’t you live without? Drop them in the comments — we’re always looking for new additions to the toolbox. 👇
어떤 CLI 도구 없이는 살 수 없나요? 댓글에 알려 주세요 — 우리는 항상 툴박스에 추가할 새로운 도구를 찾고 있습니다. 👇