2.4k 스타. /printing-press Notion 한 줄로 어떤 API든 ① Cobra CLI + ② MCP 서버 + ③ Claude Code 스킬 세 개를 동시에 인쇄한다. 핵심 트릭은 단순한 endpoint 래퍼가 아니라 로컬 SQLite 데이터 레이어 + FTS5 풀텍스트 검색 + 도메인 분석 명령까지 자동 생성한다는 것. OpenAPI 스펙이 없으면 브라우저를 직접 띄워 트래픽을 가로채 만들어낸다. ESPN·Google Flights처럼 공식 API가 없는 사이트도 깎아낼 수 있다.
"API 하나당 CLI 한 개"가 아니라, "API 하나당 CLI + MCP + 스킬 세트"를 자동으로 깎아내는 공장.
대부분의 사람들은 swagger-codegen이나 openapi-generator 같은 도구를 안다. OpenAPI 스펙(JSON/YAML)을 던지면 그 API를 부르는 클라이언트 라이브러리를 자동 생성하는 도구다. CLI Printing Press는 같은 입구로 들어오지만 출구가 완전히 다르다.
일반적인 코드 제너레이터는 endpoint 하나당 함수 하나를 만들고 끝낸다. Printing Press는 그 위에 네 겹을 더 쌓는다:
stale(오래된 이슈), health(종합 점수), bottleneck(병목) 같은, API 자체로는 절대 불가능한 복합 질의--compact로 60~80% 토큰 절감, 타입드 종료 코드일반 제너레이터가 "이 식당의 메뉴판을 그대로 복사한 메뉴판"이라면, Printing Press는 "메뉴판 + 인기 조합 세트 + 손님이 안 시켰지만 좋아할 만한 신메뉴 + 식당 분위기에 맞는 인테리어 가이드"까지 한 번에 인쇄해 주는 공장이다. 메뉴판 베끼는 건 다 한다. 그 위에 가치가 쌓인다.
출력물은 매번 두 개의 실행 파일이다 — <api>-pp-cli(셸 에이전트·사람용)와 <api>-pp-mcp(Claude Desktop·Cursor용). 둘 다 같은 internal/client, 같은 internal/store, 같은 인증 코드를 공유한다. 코드 중복이 없다.
"메뉴판은 다 베끼고, 그 위에 진짜 가치를 인쇄한다."
입력: API 이름(Notion), URL(postman.com/explore), 또는 HAR 파일. 출력: 검증된 Go CLI + MCP 서버 + Claude Code 슬래시 명령 + 연구 매뉴스크립트 + 품질 점수표.
이 공장은 단순히 코드를 짜는 게 아니라 커뮤니티의 모든 경쟁 도구를 흡수(absorb)하고, 그 위에 SQLite 기반 복합 질의로 초월(transcend)한다. Peter Steinberger가 discrawl·gogcli로 직관적으로 한 일을, 알고리즘으로 자동화한 결과물.
"AI 에이전트가 일하는 시대에는, 도구의 토큰 효율이 곧 비용이다."
2026년 5월 TrendShift Daily 19위에 진입한 이유는 단순히 "또 다른 CLI 제너레이터"가 아니기 때문이다. 이 도구가 해결하는 진짜 문제는 "AI 에이전트가 API를 호출할 때 토큰을 얼마나 태우느냐"다.
MCP 도구를 LLM에 등록하려면 매번 도구 정의(JSON 스키마)를 컨텍스트에 실어야 한다. 도구가 30개면 30개를 전부. CLI는 다르다 — npx some-cli --help를 한 번 부르면 끝. LLM은 셸 상호작용에 평생 학습돼 있다. 종료 코드 0=성공, --json | jq 합성도 자연스럽다.
"일주일 동안 블로커 상태인 이슈가 막고 있는 모든 이슈"를 Linear API에서 어떻게 가져올까? 불가능하다. API는 stateless라서 시간 축이 없다. Printing Press가 생성한 linear-pp-cli는 모든 이슈·상태 전환을 로컬 SQLite에 동기화해뒀기 때문에 linear-pp-cli stale --blocker-stuck-days 7 한 줄로 50ms 안에 답한다.
ESPN은 공식 API가 없다. 도미노피자도, Google Flights도 마찬가지다. --har 옵션이나 브라우저 스니핑 모드로 실제 사이트에서 HTTPS 트래픽을 가로채 OpenAPI 스펙을 역공학한다. "클릭해서 사용할 수 있다면 CLI로 만들 수 있다"는 표어가 비유가 아니다.
Peter Steinberger는 1인 개발자다. 그가 만든 discrawl(Discord, 11개 명령)이 583★를 얻은 반면 Discord 자체 SDK는 평범하다. 왜? "Discord = 대화 앱"이 아니라 "Discord = 검색 가능한 지식 베이스"라는 비밀 정체성(NOI)을 봤기 때문. Printing Press는 모든 API에 대해 그런 NOI를 자동 추출한다.
같은 시기에 떠오른 esengine/DeepSeek-Reasonix(prefix-cache 최적화)·anthropics/claude-plugins-official(공식 플러그인 디렉토리)·safishamsi/graphify(코드 그래프 스킬)·0xSteph/pentest-ai(MCP 펜테스트)와 정확히 같은 흐름. "에이전트 친화 도구의 자동 생성"이 2026년 OSS 핵심 테마다.
Go 84.7% + Go 템플릿 13.8% + Python(스킬 헬퍼) + Shell.
레포는 1,243 커밋, 68 릴리즈, 활발한 단일 활동을 보이는 1인 + 일부 컨트리뷰터 프로젝트다. 디렉토리 윤곽을 보면 "코드 생성기 그 자체"와 "생성된 CLI가 사용할 라이브러리"가 잘 분리돼 있다.
여기서 중요한 건 "생성기"와 "생성된 결과물"의 의존성이 다르다는 점이다. 생성기 자체는 Go로 짜여 있고, 생성된 CLI도 Go 출력물이다. 둘 다 Go 1.26.3+이 필요하다.
kubectl·gh·helm이 모두 Cobra로 만들어져 있다. 명령·하위 명령·플래그·자동완성·도움말을 선언적으로 정의. Printing Press가 생성하는 모든 CLI가 Cobra 구조.~/.config/<api>-pp/data.db 같은 단일 파일에 모든 데이터를 저장.<api>-pp-mcp 바이너리를 동시에 생성.SKILL.md 한 파일이 본체다. Printing Press의 /printing-press 슬래시 명령이 이 형식. ~/.claude/skills/ 또는 --plugin-dir로 로드한다.이 설정 묶음은 단순히 도구가 아니라 "인프라로서의 에이전트 친화성"을 보여준다. 골든 테스트는 "같은 입력에 항상 같은 출력"을 강제해, AI가 코드를 짜더라도 회귀가 발생하면 즉시 잡힌다. 1,243 커밋 동안 안정적으로 굴러간 비결.
8단계 파이프라인이 한 줄 슬래시 명령 뒤에 숨어 있다.
/printing-press Notion 한 줄을 입력하면 어떤 일이 벌어지는가? 표면에서 보면 30분 안에 두 개의 바이너리가 나온다. 안에서는 8단계 파이프라인이 차례로 굴러간다.
Phase 1은 NOI 한 문장을 못 쓰면 통과 못 한다. NOI는 "이 API는 OBVIOUS_THING이 아니라 NON_OBVIOUS_THING이다. 모든 DATA_POINT는 HIDDEN_TRUTH의 신호다"라는 양식. 예 → "Linear는 이슈 트래커가 아니다. 팀 행동 관측소다. 모든 상태 변경은 팀이 실제로 일하는 방식을 드러내는 신호다."
NOI 예시 8선 — 이게 왜 중요한지 한눈에 보인다:
| API | 겉으로 | 실제 정체성(NOI) |
|---|---|---|
| Discord | 채팅 앱 | 검색 가능한 지식 베이스 — 모든 스레드가 제도적 기억 |
| Linear | 이슈 트래커 | 팀 행동 관측소 — 상태 변경이 일하는 방식의 신호 |
| Stripe | 결제 처리기 | 비즈니스 건강 모니터 — 실패 결제와 이탈이 PMF 신호 |
| GitHub | 코드 호스트 | 엔지니어링 문화 지문 — 리뷰 턴어라운드가 출시 패턴 신호 |
| Notion | 문서 편집기 | 지식 부패 탐지기 — 오래된 페이지가 잊혀진 것 신호 |
| HubSpot | CRM | 관계 메모리 — 거래 단계 전환이 파이프라인 건강 신호 |
| Slack | 메신저 | 조직 신경계 — 응답 시간과 채널 침묵이 팀 건강 신호 |
| ESPN | 스포츠 데이터 | 베팅 인텔리전스 — 부상·라인업·배당 변동이 결과 신호 |
대부분의 코드 제너레이터는 1단에서 멈춘다. Printing Press는 5단까지 올라간다.
| 단 | 무엇 | 자동? | 예시 |
|---|---|---|---|
| 1 | API 래퍼 명령 | 예 (스펙에서) | issue create --title "…" |
| 2 | 출력 포맷팅 | 예 (항상) | --json --select --csv --dry-run |
| 3 | 로컬 영속성 | 예 (조건부) | sync · search · export · tail |
| 4 | 도메인 분석 | 예 (원형에서) | stale --days 30 · orphans · load |
| 5 | 행동 통찰 | 예 (원형에서) | health(종합 점수) similar(중복 탐지) |
3단은 테이블 스테이크(기본). 4단은 discrawl이 사는 곳. 5단은 아직 아무도 안 가본 곳이다.
스펙을 받자마자 분류기가 API를 다섯 가지 원형 중 하나로 분류한다. 그러면 그 원형에 맞는 워크플로 명령이 자동으로 끼워진다.
| 원형 | 탐지 신호 | 자동 생성 명령 |
|---|---|---|
| Project Management | issue/task/ticket · assignee · priority | stale · orphans · load · health · similar |
| Communication | message/channel/thread · 스레딩 필드 | channel-health · message-stats · health · similar |
| Payments | charge/payment/invoice · amount/currency | reconcile · revenue · health · similar |
| Infrastructure | server/deploy/instance | health · similar |
| Content | document/page/block | health · similar |
각 CLI는 100점 만점 점수표를 받는다. 두 단계로 나뉘어 있다.
Output Modes(--json/--csv/--select/--quiet/--compact) · Auth(OAuth + 헤더) · Error Handling(타입드 종료 코드 + 백오프) · Agent-Native(--json/--select/--dry-run/--stdin) · Terminal UX · README · Doctor · Local Cache · Breadth.
Path Validity(생성된 경로가 스펙에 실재) · Auth Protocol(securitySchemes와 일치) · Data Pipeline(sync가 도메인 특화 UpsertX를 부르는가) · Sync Correctness(실제 리소스/중첩 경로/페이지네이션/증분 커서) · Type Fidelity(문자열 ID, 필수 표시) · Dead Code(미사용 플래그/함수/테이블 없음).
식당 위생 등급에 비유하면 — Tier 1은 "주방 설계와 동선이 제대로인지"이고, Tier 2는 "실제 만드는 음식이 메뉴판과 일치하는지"다. 주방만 멋있어도 안 되고, 음식만 맞아도 안 된다. 둘 다 통과해야 Grade A다. "스코어카드를 위한 게이밍"을 막기 위해 anti-gaming 규칙도 있다.
점수표가 구조를 본다면, 행동 증명은 데이터 흐름을 본다. 4가지 강제 증명:
securitySchemes와 일치어떤 증명이라도 실패하면 자동 교정이 데드 코드를 제거하고 재검증한다. 환각된 경로(hallucinated paths)와 auth 불일치는 하드 FAIL 게이트 — 그 자체로 CLI 출시 불가.
"생성기 본체"와 "생성물의 골격"이 어디서 갈리는가.
이 레포의 디렉토리 윤곽이 중요한 이유는 "이 도구가 만들어내는 것"과 "이 도구 자체의 코드"가 다르기 때문이다. cmd/cli-printing-press는 생성기, internal/은 생성기의 두뇌, skills/는 Claude Code 인터페이스, catalog/는 미리 검증된 API 목록.
| 경로 | 역할 | 왜 중요한가 |
|---|---|---|
cmd/cli-printing-press/ | Go 바이너리 진입점 | main.go가 Cobra 명령 트리를 띄움 — generate · scorecard · dogfood · verify · auth doctor · mcp-audit 등 모든 서브명령이 여기서 분기 |
internal/ | 생성기 코어 (외부 import 금지) | Go의 관행 — internal/ 안의 패키지는 같은 모듈 외부에서 import 불가. 생성기 로직과 생성된 CLI 코드가 섞이지 않는 1차 방어선 |
skills/ | Claude Code Agent Skill | printing-press/SKILL.md가 /printing-press 슬래시 명령의 본체. 사람이 슬래시를 치면 Claude가 이 SKILL.md를 읽고 단계별로 cli-printing-press 바이너리를 호출 |
catalog/ | 26개 API 사전 검증 카탈로그 | 각 API에 대해 spec URL, auth type(Bearer/OAuth/Basic), 카테고리, NOI 후보가 미리 적혀 있음. 첫 사용자가 0초 만에 검증된 결과를 얻을 수 있는 핵심 |
testdata/golden/ | 골든 출력 픽스처 | cases/<case-name>/command.txt가 명령을, artifacts.txt가 비교 대상 파일을 지정. scripts/golden.sh verify가 실제 실행 결과와 비교 — 회귀 0의 비결 |
.claude-plugin/ | Claude Code 플러그인 매니페스트 | plugin.json으로 Claude가 이 디렉토리를 플러그인으로 인식. claude --plugin-dir .로 로드 |
docs/PIPELINE.md | 9단계 파이프라인 정식 명세 | 위에서 본 8단계 빠른 경로의 풀 버전. 단계마다 입력·출력·게이트·아티팩트가 명시 — 중간에 멈추거나 재개할 때 참조 |
docs/CURSOR.md | Cursor 사용자용 가이드 | 설치된 CLI를 Cursor에 어떻게 붙이고 인증을 어떻게 다루는지 — 다른 에이전트 호환성 |
AGENTS.md | 개발자 컨벤션 + 글로서리 | 커밋 스타일, 검증 규칙, AI 자동화 공시 — 컨트리뷰터가 따라야 할 모든 규칙 |
.goreleaser.yaml | 릴리즈 빌드 | macOS(amd64+arm64) + Linux + Windows 단일 명령으로 — Homebrew formula 자동 생성 |
위는 "생성기" 디렉토리. 그럼 /printing-press Notion의 결과로 나오는 notion-pp-cli 디렉토리는 어떻게 생겼을까?
이 구조는 모든 CLI가 똑같다. 어떤 API든 같은 골격. 그게 점수표와 검증을 자동화할 수 있는 이유다. 한 번 검증기를 짜두면 모든 생성물에 적용된다.
이 레포에서 실제로 무엇을 배울 수 있는가.
단순히 도구를 쓰는 게 아니라 이 레포의 코드를 읽으면서 얻을 수 있는 것들이다. 각 기술별로 "왜 그렇게 짰는지"가 명시돼 있어서 학습 자료로도 좋다.
Cobra 명령 트리, persistent flags vs local flags, Goreleaser로 멀티 플랫폼 릴리즈 + Homebrew 자동 등록, lefthook 프리푸시 훅, golangci-lint 룰셋. kubectl·gh 같은 큰 도구를 만드는 모든 패턴이 들어 있다. 실습 아이디어: 자기 회사 내부 API 하나를 골라 같은 구조로 작은 CLI를 직접 짜본다 — 명령 3개부터.
왜 JSON 블롭이 아니라 도메인 특화 컬럼인가? 왜 FTS5인가? cursor 기반 페이지네이션, batch SQLite 트랜잭션, pragma 튜닝, --since 증분 sync, --concurrency 병렬 워커. 실습 아이디어: 자기 Notion 워크스페이스 100페이지를 SQLite에 동기화하고 FTS5로 검색해 본다 — 200줄 안에 가능.
Anthropic의 MCP 표준이 어떻게 생겼는지, Go로 어떻게 서버를 구현하는지, readOnlyHint·destructiveHint·idempotentHint 같은 메타데이터를 어떻게 활용하는지. CLI 코드와 MCP 코드가 어떻게 internal/client·internal/store를 공유하는지. 실습 아이디어: 작은 API(예: GitHub Search) 하나로 CLI + MCP 두 바이너리를 직접 손으로 짜본다.
Go의 text/template 표준 라이브러리로 13.8%를 차지하는 템플릿 파일들. 스펙을 받으면 어떻게 명령 트리·핸들러·SQL DDL을 생성하는지. 도메인 원형 감지가 어떻게 동작하는지. 실습 아이디어: 간단한 OpenAPI YAML로 5개 명령을 가진 작은 CLI를 직접 템플릿으로 생성해본다.
공식 API가 없는 사이트에서 어떻게 트래픽을 잡고, HAR(HTTP Archive) 파일을 어떻게 파싱해서 OpenAPI를 역공학하는지. 적응형 rate limiting(처음엔 느리게, 성공이면 가속, 429면 백오프). 실습 아이디어: Chrome DevTools의 Network 탭에서 좋아하는 사이트의 트래픽을 HAR로 저장하고 직접 분석해본다 — 그 사이트의 비공식 API가 보인다.
testdata/golden/ + scripts/golden.sh 패턴 — 코드 제너레이터처럼 "출력이 같아야 한다"가 핵심인 도구에서 회귀 테스트가 어떻게 작동하는지. 머신 특정 경로 정규화, 결정적 JSON 포매팅, 알려진 provenance 필드(타임스탬프) 정규화. 실습 아이디어: 자기가 만든 CLI에 골든 테스트 5개를 추가해본다.
Trevin Chow의 "10 Principles for Agent Native CLIs"가 어떻게 코드로 구현되는지 — 파이프 자동 JSON, --compact 60-80% 토큰 절감, 타입드 종료 코드(0/2/3/4/5/7), --dry-run, --no-input, 명확한 에러 메시지(어느 플래그가 잘못됐는지 + 올바른 사용 패턴). 사람용 좋은 CLI는 결국 에이전트용 좋은 CLI다. 실습 아이디어: 자기가 쓰는 CLI 하나를 골라 이 10원칙에 따라 평가해본다 — 점수가 얼마나 나오는가?
"가벼운 도구치고는 환경이 까다롭다 — Go + Claude Code가 둘 다 필요하다."
이 도구는 코드 생성 + LLM 호출 + 브라우저 자동화를 모두 하기 때문에 환경 요구사항이 명확하다.
| 요소 | 요구사항 | 비고 |
|---|---|---|
| OS | macOS · Linux · Windows | regen-merge 서브명령만 Windows 미지원 |
| Go 버전 | 1.26.3 이상 | 꽤 최신 Go가 필요 — go install로 설치 |
| Claude Code | 필수 | 슬래시 명령(/printing-press)이 메인 인터페이스. 바이너리 단독 사용은 가능하지만 큐레이션 루프 빠짐 |
| Anthropic API | Opus 액세스 권장 | Codex 모드(/printing-press <api> codex)면 Opus 토큰 60% 절감 — Codex CLI 별도 필요 |
| 디스크 | API당 1~10MB | 생성된 CLI는 작음. 단, sync된 데이터(Linear 50k 이슈 등)는 별개 |
| 네트워크 | 아웃바운드 HTTPS | 스펙 페치, LLM 호출, 브라우저 스니핑 모두 필요 |
| 인증 토큰 | 각 대상 API별 | Phase 5 라이브 스모크 테스트는 키가 있을 때만 실행 (GET-only, 안전) |
토큰 비용 — 솔직한 추정: 표준 Opus 모드로 Phase 0~5를 끝까지 돌리면 한 API당 대략 $10~$30 정도가 든다(API 복잡도에 따라). Codex 모드는 약 40% 수준. Phase 1 연구는 Sonnet으로 충분히 가능하다는 후기도 있다.
난이도별 5개 — 1번부터 5번까지 사다리 식으로 어려워진다.
Go 1.26.3과 Claude Code를 설치한 뒤 go install github.com/mvanhorn/cli-printing-press/v4/cmd/cli-printing-press@latest로 바이너리를 깐다. 레포를 클론해서 claude --plugin-dir .로 진입한 다음 /printing-press Discord를 실행한다. 관찰 포인트: 8단계 파이프라인이 어떻게 흘러가는가, NOI가 무엇으로 추출되는가, 최종 점수가 몇 점인가.
본인이 매일 쓰는 API(Linear/Notion/Stripe)에 대해 CLI를 생성한 뒤, 일주일 동안 일상 워크플로에 끼워본다. 무엇이 부족한지 — 빠진 플래그, 어색한 인자 이름, null이 그냥 반환되는 상황 — 적어둔다. 관찰 포인트: 도메인 명령(stale · health)이 실제로 유용한가? API 직접 호출보다 빠른가?
/printing-press-amend로 PR 보내기실습 2에서 발견한 친화점들을 /printing-press-amend 슬래시 명령으로 PR로 바꾼다. 세션 transcript에서 친화점을 자동 추출하고, scope를 함께 정의한 뒤, 실제 PR이 만들어진다. 관찰 포인트: "내가 친 친화점이 PR이 되기까지의 자동화"가 어디까지 되고 어디부터 사람이 개입해야 하는가.
좋아하는 비공식 사이트(스타크래프트 리플레이 사이트, 한국 기상청, KOSIS 등) 하나를 골라 Chrome DevTools로 트래픽을 HAR로 저장한다. /printing-press --har ./capture.har로 CLI를 만든다. 관찰 포인트: 적응형 rate limiting이 어떻게 작동하는가, 어떤 endpoint가 발견되고 어떤 건 놓치는가, 발견 매뉴스크립트(discovery/)에 무엇이 담기는가.
Project Management·Communication·Payments·Infrastructure·Content 5종 외에 새로운 원형(예: Education / Healthcare / Logistics)을 정의하고, 자동 생성될 워크플로 명령 5개를 설계해 PR로 보낸다. 관찰 포인트: 어떤 API가 새 원형으로 분류돼야 하는가? 새 원형의 NOI 후보를 어떻게 정의하는가? 실력 입증용 PR로 손색이 없다.
"Printing Press를 정복하려면 6주 코스로 가야 한다."
한 번에 다 익히려고 하지 말고, 6주 동안 한 주에 하나씩 깊게 파는 게 효율적이다. 각 주차의 학습은 다음 주를 위한 토대가 된다.
| 주차 | 주제 | 학습 자료 | 이번 주 산출물 |
|---|---|---|---|
| 1주차 | Go + Cobra 기본기 | Cobra 공식 문서 · gh 소스 코드 리딩 · The Go Programming Language 7장 (인터페이스) | 3-명령 짜리 작은 CLI |
| 2주차 | SQLite + FTS5 패턴 | SQLite FTS5 공식 문서 · Steinberger의 discrawl 코드 리딩 · Go의 database/sql + modernc.org/sqlite | Notion 또는 Linear 페이지를 로컬에 sync + 검색하는 200줄 도구 |
| 3주차 | OpenAPI + 코드 생성 | openapi-generator 소스 코드 · Speakeasy 블로그 · Go text/template 깊이 | 간단한 OpenAPI YAML → 5명령 CLI 자동 생성 |
| 4주차 | MCP 표준 + Anthropic 에이전트 가이드 | MCP 공식 스펙(spec.modelcontextprotocol.io) · Anthropic 블로그 "Building agents that reach production" · mcp-builder 스킬 | 2주차 결과물에 MCP 서버 인터페이스 추가 |
| 5주차 | 에이전트 친화 CLI 10원칙 | Trevin Chow의 글 · Ramp CLI 사례 · gogcli의 점수표 | 3주차 결과물을 10원칙으로 평가 → 90점 이상 만들기 |
| 6주차 | Printing Press 직접 기여 | 이 레포 클론 · AGENTS.md + docs/PIPELINE.md 완독 · 골든 테스트 추가 PR 1개 | 실습 5 (새 원형) 또는 새 API 카탈로그 추가 PR |
Peter Steinberger(@steipete)의 X 타임라인과 글은 "에이전트용 CLI를 잘 짜는 직관"을 익히는 가장 빠른 길이다. discrawl·gogcli·peekaboo 같은 그의 작품들이 모두 Printing Press의 영감의 원천 — 코드를 직접 읽으면서 패턴을 익히면 6주 코스가 4주로 단축될 수 있다.
이 레포·문서에서 자주 나오는 용어 한곳에 정리.
testdata/golden/cases/<name>/의 명령을 실행한 결과를 expected/와 비교하는 회귀 테스트. scripts/golden.sh verify가 검증, update가 의도적 변경 시 기준 갱신.discovery/ 폴더에 전부 보관. 풀 감사 추적(audit trail)./printing-press <api> codex로 호출하면 Phase 3 코드 생성을 OpenAI Codex CLI에 위임. Claude는 두뇌(연구·계획·점수)에 집중, Codex가 손(코드 작성)을 맡음. Opus 토큰 60% 절감, 3회 실패 시 자동으로 표준 모드 폴백.cli-printing-press auth doctor가 모든 설치된 CLI의 매니페스트를 읽어 토큰이 설정/미설정/의심스러운지 진단 — 처음 4글자만 노출.stale(시간 축), health(여러 메트릭 합성), bottleneck(이슈 관계 그래프), reconcile(charges+subscriptions 조인) 등. Rung 4/5의 핵심.원본 문서·자매 레포·영감의 원천을 한 곳에.
| 분류 | 이름 | 링크 |
|---|---|---|
| 본체 | cli-printing-press 메인 레포 | github.com/mvanhorn/cli-printing-press |
| 본체 | printingpress.dev 카탈로그 사이트 | printingpress.dev |
| 본체 | printing-press-library — 발행된 CLI들 | github.com/mvanhorn/printing-press-library |
| 본체 | last30days-skill — 최근성 연구 스킬(같은 저자) | github.com/mvanhorn/last30days-skill |
| 영감 | Peter Steinberger의 discrawl (Discord) | github.com/steipete/discrawl |
| 영감 | Peter Steinberger의 gogcli (Google Workspace) | github.com/steipete/gogcli |
| 영감 | Trevin Chow의 "10 Principles for Agent Native CLIs" | trevinsays.com/p/10-principles-for-agent-native-clis |
| 영감 | Ramp의 에이전트 친화 CLI | github.com/ramp-public/ramp-cli |
| 관련 표준 | MCP (Model Context Protocol) 스펙 | spec.modelcontextprotocol.io |
| 관련 표준 | Anthropic — Building agents that reach production | docs.anthropic.com/ko/docs/agents-and-tools/mcp (원래 링크 404 — MCP 공식 문서로 대체) |
| 관련 표준 | OpenAPI 3.x 스펙 | spec.openapis.org/oas/v3.1.0 |
| 유사 도구 | Speakeasy (상용 SDK 생성기) | speakeasyapi.dev |
| 유사 도구 | Fern (상용 SDK + 문서 생성기) | buildwithfern.com |
| 유사 도구 | OpenAPI Generator (오픈소스) | github.com/OpenAPITools/openapi-generator |
| 한국어 자매 분석 | esengine/DeepSeek-Reasonix 딥다이브 | DeepSeek-Reasonix-deep-dive.html |
| 한국어 자매 분석 | anthropics/claude-plugins-official 딥다이브 | claude-plugins-official-deep-dive.html |
| 한국어 자매 분석 | safishamsi/graphify 딥다이브 | graphify-deep-dive.html |
go version·claude --version로 둘 다 깔려 있는지 본다.go install github.com/mvanhorn/cli-printing-press/v4/cmd/cli-printing-press@latest 한 줄.git clone github.com/mvanhorn/cli-printing-press 후 cd해서 claude --plugin-dir ../printing-press <그 API> 한 줄. 30분 ~ 1시간 대기.manuscripts/<api>/<run-id>/research/noi.md에 적혀 있다 — Printing Press가 그 API의 비밀 정체성을 어떻게 봤는지 30초만 읽으면 사고가 확장된다.