mvanhorn/cli-printing-press

Every API has a secret identity. This finds it, absorbs every feature from every competing tool, then builds the GOAT CLI — designed for AI agents first, with SQLite sync, offline search, and compound insight commands.

CLI Printing Press – 本格的なCLI(およびMCPサーバー)のAI駆動型生成ツール

何であるか – Goベースのツールで、AIアシスタント(Claude Code、Codexなど)が任意のウェブサービスやAPIをトークン効率的なコマンドラインインターフェースと対応する MCP(Machine‑Code‑Plugin)サーバーに変換できる。完全に自動化されたパイプラインを実行する:

  1. 調査 – 公式ドキュメントを読み込み、コミュニティのCLIをスクレイピングし、非公開サイトのブラウザトラフィックをキャプチャする。
  2. 吸収 – 既存ツールに見つかった有用な機能のマニフェストを構築する。
  3. 生成 – 同じクライアント/ストアコードを共有するGo CLI(Cobraベース)とMCPサーバーを出力する。
  4. 永続化 – フルテキスト検索、インクリメンタル同期、複合コマンドをサポートするローカルSQLiteストアを作成する。
  5. 検証 – パブリッシュ前にスコアカード、ドッグフードテスト、動作検証チェック、ライブスモークテストを実行する。

結果として、notion‑pp-cliのようなインストール可能なバイナリと、エージェントが直接呼び出せる補完的なnotion‑pp-mcpが得られ、トークンコストを最小限に抑える。


AIエージェントにとっての重要性

  • 高速性とトークン経済性 – エージェントは長大なAPIドキュメントを歩んでもらう代わりに、簡潔なCLIを呼び出せる。フラグはマシン消費向けに設計されており(コンパクトな出力、型付きの終了コード、自動JSON出力)。
  • ローカル優先データ – 取得したすべてのデータはSQLite DBに保存され、状態なしのAPIラッパーでは決して実現できない超高速なsearchsql、および複合コマンド(stalehealthbottleneck)を可能にする。
  • 二重インターフェース – 同じ生成コードがシェル対応CLIとMCPサーバーの両方を駆動するため、ターミナルベースのエージェント(Claude Code、Codex)および IDE統合エージェント(Claude Desktop、Cursor、Windsurf、Cline)の両方で動作する。
  • 仕様ゼロワークフロー – ウェブサイト(例:ESPN、Google Flights)にプレスを向け、トラフィックをキャプチャし、OpenAPI仕様を逆引きしてCLIを自動生成する。

クイックインストール(バイナリ+スキル)

# 1行でGoジェネレータをインストールし、Claude Code用のすべてのPrinting‑Pressスキルを登録
curl -fsSL https://raw.githubusercontent.com/mvanhorn/cli-printing-press/main/scripts/install.sh | bash
  • --cli-onlyまたは--skills-onlyを追加すると片方だけをインストールでき、--agent codexを指定するとClaude CodeではなくCodexをターゲットにできる。

手動の代替案(Goツールを好む場合):

go install github.com/mvanhorn/cli-printing-press/v4/cmd/cli-printing-press@latest
npx -y skills@latest add mvanhorn/cli-printing-press/skills --skill '*' -g -a claude-code -y

CLIの生成(エージェントワークフロー)

  1. Claude Code(またはCodex)セッションを開始する。
  2. チャット内で次のスキルを実行する:
    /printing-press <app‑name-or‑URL>
    
    例: /printing-press ESPN/printing-press https://postman.com/explore
  3. スキルがcli-printing-pressバイナリを呼び出し、5フェーズのパイプラインを実行し、~/printing-press/library/<api>/に2つのバイナリを生成する:
    • <api>-pp-cli – Cobra CLI。
    • <api>-pp-mcp – MCPサーバー。
  4. CLIを直接使用する(<api>-pp-cli --help)か、IDEエージェントがMCPサーバーを自動検出させる。

生成されたCLIのコア機能

機能 機能内容 エージェントへの利点
sync ローカルSQLiteストアに最新データを取得。 1回のネットワークコールで、以降のすべてのクエリはオフラインで実行可能。
search / sql ローカルデータに対するフルテキストまたはSQLクエリ。 ミリ秒単位の応答、トークン消費を大幅に削減。
stale, health, bottleneck 歴史的データから導かれるドメイン固有の分析。 カスタムコードなしでエージェントに高レベルのインサイトを提供。
--compact 高重力フィールドのみを出力(60–80%のトークン削減)。 プロンプトを短く保つ。
型付き終了コード マシン読み取り可能なステータス(023、…)。 テキスト解析なしで論理分岐が可能。
自動JSON出力 パイプされた場合、--jsonフラグなしでJSONを出力。 jqや他のツールとシームレスに合成可能。

パブリッシュと改善

  • パブリッシュ/printing-press-publish <api> は検証、パッケージ化を行い、パブリックなPrinting‑Press LibraryへのPRを開く。
  • 仕上げ/printing-press-polish <api> は診断を実行し、検証失敗を修正し、ドキュメントを整える。
  • 修正 – ドッグフードセッション後に、/printing-press-amend は摩擦ポイントを抽出し、PRを作成し、自動的にPIIをクリーンアップする。

内部の仕組み(概要フロー)

Phase 0  仕様またはURLの解決(1–3分)
Phase 1  調査概要 – イデンティティ、競合、データ層(5–10分)
Phase 1.5 エコシステムの吸収 – 既存CLI/MCP機能をカタログ化(5–10分)
Phase 1.7 ブラウザスニッフィング – 仕様がなければHARをキャプチャ(2–5分)
Phase 2  Go CLI + MCPサーバーの生成(1–2分)
Phase 3  「GOAT」の構築 – ローカルストア、複合コマンド、分析機能を追加(10–20分)
Phase 4–5 検証、スコアリング、必要に応じてパブリッシュ

すべてのフェーズはcli-printing-pressバイナリによってオーケストレーションされる。重い処理(コード生成)はCodex/printing-press <api> codex)に委任することで、Claude Codeのトークン使用量を節約できる。


生成されたCLIの例(ESPN)

espn-pp-cli games --date today --compact
# → 1回の呼び出しでNBAプレーオフのスコア、得点リーダー、怪我情報のJSONを出力

同じ機能はIDEベースのエージェント向けにespn-pp-mcpでも利用可能。


誰が使うか

  • 数十ものサービスに迅速かつ低トークンでツールを提供したいAIエージェント開発者。
  • SaaSデータのローカルで検索可能なキャッシュを望むDevOps/自動化エンジニア。
  • スクレイピングを書かずに非公開のWeb APIを探索したい研究者。
  • 1つのソースからCLIとMCPプラグインの両方を配布したいツールビルダー。

リンク


CLI Printing Press は、ドキュメント化されていようがいまいが、任意のAPIを高パフォーマンスでエージェントフレンドリーなコマンドラインツールとMCPサーバーに変換するライフサイクル全体を自動化し、AI補完ワークフローにおけるトークンコストと開発労力を劇的に削減する。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト