mcpField
T
terminal-print

terminal-print

github.com/terrylicaドキュメント1130 回インストール1 日前に更新
リポジトリ

terminal-print について

Terminal Printは、iTerm2のターミナル出力をHPネットワークプリンターで印刷するSkillです。ANSI制御コードを除去してPDFを作成し、プレビュー後の印刷やPDFのみの生成に対応します。

主な機能

  1. 01クリップボードまたはファイルから読み込み
  2. 02ANSI制御コードを除去してPDFを作成
  3. 03プレビュー、直接印刷、PDFのみの出力
  4. 04プリンターキュー指定とAirPrint回避
  5. 05等幅フォントと横向きレイアウト

活用シーン

  1. 01iTerm2からコピーしたコマンド出力の印刷
  2. 02コマンドラインセッションのPDF保存
  3. 03印刷用ターミナルログの作成
  4. 04会議や文書でのターミナル出力共有

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/terrylica/cc-skills --skill terminal-print

インストール後、Claude Code で/terminal-printを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
print-terminal.sh
setup-socket-9100-queue.sh
references/
airprint-blank-page-troubleshooting.md
evolution-log.md
workflow.md

詳細

ターミナル印刷

1 つのコマンドで、iTerm2 のターミナル出力を HP ネットワークプリンターに印刷します。

自己進化型スキル:このスキルは使用を重ねることで改善されます。手順に誤りがある場合、パラメーターが変わっている場合、または回避策が必要だった場合は、先送りせず、すぐにこのファイルを修正してください。実際に再現できる問題がある場合にのみ更新してください。

このスキルを使う場面

次のような場合にこのスキルを使います。

  • ターミナル出力をネットワークプリンターに印刷する
  • コマンドラインセッションの出力を PDF として保存する
  • 印刷に適した形式でターミナルログをアーカイブする
  • 会議やドキュメントでターミナル出力を共有する

クイックスタート

  1. iTerm2 でターミナル出力をコピーします(Cmd+C)
  2. このスキルを呼び出します
  3. PDF のプレビューを確認し、Enter キーを押して印刷します

仕組み

Clipboard → Strip ANSI → Markdown code block → pandoc/xelatex → PDF → Preview → Print
  • ANSI コードを除去:色とエスケープシーケンスを取り除き、白黒で見やすく出力します
  • 等幅フォント:文字を適切に揃えるため、DejaVu Sans Mono を使用します
  • 横向き:1 行あたり約 120 文字を表示できます
  • US Letter 用紙:プリンター設定から自動検出します

実行方法

/usr/bin/env bash << 'PRINT_EOF'
SKILL_DIR="$(cc-plugin-root doc-tools)/skills/terminal-print"
bash "$SKILL_DIR/assets/print-terminal.sh"
PRINT_EOF

オプション

実行ブロックを変更して、引数を指定して実行します。

/usr/bin/env bash << 'PRINT_EOF'
SKILL_DIR="$(cc-plugin-root doc-tools)/skills/terminal-print"
bash "$SKILL_DIR/assets/print-terminal.sh" --no-preview
PRINT_EOF
フラグ説明
--file FILEクリップボードではなく、ファイルから読み込みます
--no-previewPDF のプレビューを省略し、直接印刷します
--no-printPDF のみを生成し、プリンターには送信しません
--printer NAME対象のプリンターキューを指定します(デフォルト:システムのデフォルト)
--bypass-airprintsocket-9100 と PostScript キューを使用します。HP LaserJet Pro MFP 3101/3108/3201/3208/3301/3308 の AirPrint で白紙が出る問題への回避策です。
-h, --helpヘルプメッセージを表示します

使用例

クリップボードから印刷(デフォルト)
# Copy terminal output in iTerm2, then:
/usr/bin/env bash << 'EOF'
bash "$(cc-plugin-root doc-tools)/skills/terminal-print/assets/print-terminal.sh"
EOF
ファイルから印刷
/usr/bin/env bash << 'EOF'
bash "$(cc-plugin-root doc-tools)/skills/terminal-print/assets/print-terminal.sh" --file ~/session.log
EOF
PDF のみを生成(印刷しない)
/usr/bin/env bash << 'EOF'
bash "$(cc-plugin-root doc-tools)/skills/terminal-print/assets/print-terminal.sh" --no-print
EOF

前提条件

MacTeX をインストールした macOS では、必要な依存関係をすべて利用できます。

ツール用途状態
pandocMarkdown から PDF へ必須
xelatexPDF エンジン必須(MacTeX)
pbpasteクリップボードへのアクセス標準搭載
lprCUPS 印刷標準搭載

出力

  • PDF の保存先:/tmp/terminal-output-YYYYMMDD_HHMMSS.pdf
  • Markdown ソース:/tmp/terminal-YYYYMMDD_HHMMSS.md
  • クリーンアップ:macOS が /tmp を定期的に自動クリーンアップします

トラブルシューティング

「クリップボードにテキストがありません」

まず iTerm2 で Cmd+C を使ってターミナル出力をコピーしてください。

「pandoc が見つかりません」または「xelatex が見つかりません」

MacTeX をインストールしてください:brew install --cask mactex

プリンターが見つからない

プリンターの状態を確認します:lpstat -p -d

このスクリプトはシステムのデフォルトプリンターを自動検出します。--printer NAME で別のプリンターを指定するか、環境変数 TERMINAL_PRINT_PRINTER を設定してください。

空白ページが出力される(またはlprが成功を報告するのに何も印刷されない)

HP LaserJet Pro MFP 3101/3108/3201/3208/3301/3308 AirPrintの空白ページ問題でよく見られる症状です。プリンターのIPP-Everywhere PDFインタープリターがジョブを黙って破棄する一方で、CUPSはcompletedと報告します。このまったく同じ症状を2026-05-09に確認しました。

簡単な修正方法:

# 1. One-time setup of bypass queue (socket-9100 + Generic PostScript PPD)
"$(cc-plugin-root doc-tools)/skills/terminal-print/assets/setup-socket-9100-queue.sh"

# 2. Reprint with --bypass-airprint
bash "$(cc-plugin-root doc-tools)/skills/terminal-print/assets/print-terminal.sh" --bypass-airprint

コマンドシーケンスと判断ツリーを含む詳細な診断手順: airprint-blank-page-troubleshooting.mdを参照してください。

要点:lpstat -oやjob-state=completedを信用しないでください。ipptool -tv ipp://<printer>.local.:631/ipp/printを使って、プリンター自身のジョブ台帳からjob-impressions-completedとjob-media-sheets-completedを照会してください。CUPSは嘘をつきますが、プリンターは(たいてい)真実を語ります。

関連スキル

実行後の振り返り

このスキルの実行後、終了前に次の点を確認してください。

  1. コマンドは成功しましたか? — 失敗した場合は、原因となった手順またはエラーテーブルを修正してください。
  2. パラメーターや出力は変わりましたか? — 基盤となるツールのインターフェイスに変更があった場合は、使用例とパラメーターの表を実際に合わせて更新してください。
  3. 回避策が必要でしたか? — 別のフラグや追加手順など、その場で工夫する必要があった場合は、次回同じ回避策が不要になるよう、このSKILL.mdを更新してください。

問題が実際に発生し、再現できる場合にのみ更新してください。推測に基づいて更新しないでください。

コメント