mcpField
P
packx

packx

github.com/johnlindquistエージェントワークフロー2664 回インストール45 週間前に更新
リポジトリ

packx について

packxは、コードファイルを選別してAI向けコンテキストにまとめるコマンドラインスキルで、コードの準備を行う開発者向けです。テキストやファイルのフィルター、Git状態による選択、内容の圧縮、複数の出力方法に対応し、通常は`--limit 49k`を指定します。

主な機能

  1. 01パス、テキスト、ファイルパターンによるコード選別
  2. 02ステージ済み、差分、未コミット状態でのファイル選択
  3. 03コメントや空行を除いた内容の圧縮
  4. 04一致ファイルのプレビューと対話式選択
  5. 05クリップボードや複数形式への出力

活用シーン

  1. 01機能のコードをAI分析用にまとめる
  2. 02PRレビュー用に差分やステージ済みファイルを収集
  3. 03デバッグ用に問題のファイルとインポート先を収集

インストール

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

$npx skills add https://github.com/johnlindquist/claude --skill packx

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

詳細

PACKX - AI コンテキストバンドラー

AI コンテキスト用にコードファイルをバンドルおよびフィルタリングします。

重要: 常に --limit 49k を使用する

必須: ユーザーが明示的に別の制限を要求しない限り、すべての packx コマンドには --limit 49k を含める必要があります。これは譲れません。50k ではなく 49k を使用することで安全バッファーを確保できます。

# CORRECT - always include --limit 49k
packx --limit 49k -c src/
packx --limit 49k -s "pattern" -i "*.ts" -c

# WRONG - never omit the limit
packx -c src/                        # NO! Missing --limit
packx -s "pattern" -i "*.ts" -c      # NO! Missing --limit

前提条件

packx --version    # Verify installed
npm install -g packx   # If not installed

標準コマンドパターン

packx --limit 49k [filters] [output] [paths]

常に --limit 49k から始め、その後にフィルターと出力オプションを追加します。

CLI リファレンス

トークン予算 (必須)
# Standard (default for all commands)
packx --limit 49k -c src/

# Only use different limits if user explicitly requests
packx --limit 32k -c src/            # User said "32k"
packx --limit 128k -c src/           # User said "large context"

# Split into chunks if content exceeds limit (requires -o for numbered files)
packx -M 49k -o context src/         # Creates context-1.xml, context-2.xml

制限の形式: 8k=8,000 | 32K=32,768 | 50000=50,000

検索とフィルター
# Find files containing text
packx --limit 49k -s "TODO" -c
packx --limit 49k -s "useState" -i "*.tsx" -c
packx --limit 49k -s "error" -s "warning" -c

# Exclude content
packx --limit 49k -S "test" -S "mock" -c

# Filter by glob patterns
packx --limit 49k -i "*.ts" -c
packx --limit 49k -i "src/**/*.tsx" -c
packx --limit 49k -x "*.test.ts" -x "*.spec.ts" -c

# Regex patterns
packx --limit 49k -R -s "function\s+\w+" -c

# Case-sensitive
packx --limit 49k -C -s "Error" -c
Git 連携
packx --limit 49k --staged -c        # Staged files
packx --limit 49k --diff -c          # Changed from main
packx --limit 49k --dirty -c         # Modified/untracked
処理オプション
# Strip comments (reduces tokens)
packx --limit 49k --strip-comments -c src/

# Minify (remove empty lines)
packx --limit 49k --minify -c src/

# Both (maximum token efficiency)
packx --limit 49k --strip-comments --minify -c src/

# Context lines around matches
packx --limit 49k -s "TODO" -l 5 -c

# Follow imports
packx --limit 49k --follow-imports src/index.ts -c

# Related files (tests, stories)
packx --limit 49k -r src/utils.ts -c
出力オプション
# Copy to clipboard (most common)
packx --limit 49k -c src/

# Save to file (use --stdout > to avoid WriteFile hook limits)
packx --limit 49k --stdout src/ > context.md

# Output formats
packx --limit 49k -f xml -c src/         # XML (default)
packx --limit 49k -f markdown -c src/    # Markdown
packx --limit 49k -f plain -c src/       # Plain text
packx --limit 49k -f jsonl -c src/       # JSONL

重要: 大きなバンドルで WriteFile フックのサイズ制限が発生するのを避けるため、常に --output <file> ではなく --stdout > <file> を使用してください。

プレビュー (パッキング前に確認)
# Preview matching files without packing
packx --limit 49k --preview src/
packx --limit 49k -s "pattern" --preview
インタラクティブモード
packx --limit 49k -I src/            # Interactive selection
packx --limit 49k --no-interactive src/  # Scripting mode

操作: Tab=プレビューのフォーカス | PgUp/PgDn=スクロール | Enter=確定

バンドル (保存された設定)
packx -b api                         # Load .pack/bundles/api

一般的なワークフロー

デフォルト: 機能コンテキスト
# Most common - search for feature, copy to clipboard
packx --limit 49k -s "auth" -i "*.ts" -c
PR レビューコンテキスト
packx --limit 49k --diff -c
packx --limit 49k --staged -f markdown --stdout > pr.md
デバッグコンテキスト
packx --limit 49k --follow-imports src/problem.ts -c
packx --limit 49k -r src/problem.ts -c    # Include tests
最小コンテキスト (最大効率)
packx --limit 49k --strip-comments --minify -i "*.ts" -c src/
特定のファイル
# List specific files directly
packx --limit 49k src/auth.ts src/user.ts src/api.ts -c

ベストプラクティス

  1. 常に --limit 49k を使用する - ユーザーが指定しない限り例外なし
  2. クリップボードには -c を使用する - 最も一般的な出力方法
  3. 最初にプレビューする - --preview でファイル選択を確認
  4. ノイズを除去する - トークンが厳しいときは --strip-comments --minify
  5. 具体的にする - -s 検索と -i glob で範囲を絞る
  6. git の状態を確認する - PR コンテキストには --diff と --staged

トラブルシューティング

問題解決策
トークンが多すぎる-i "*.ts"、-x "test"、または --strip-comments を追加する
ファイルが見つからないglob を確認し、--preview を使用する
49k を超える必要がある-M 49k -o output で分割する (番号付きファイルが作成されます)
WriteFile フックエラー--output file.md ではなく --stdout > file.md を使用する

コメント