Zenn Dev Ctxpack Ai Context Extractor
AIエージェントのコンテキスト消費を80%削減するCLIツール「ctxpack」を作った
- URL: https://zenn.dev/pepabo/articles/ctxpack-ai-context-extractor
- 日付: 2026-06-10
- Tier: Tier 3
- 要旨: Claude CodeなどのAIエージェントがURL読取時に消費するコンテキストを最大91%削減するCLI「ctxpack」をGMOペパボのエンジニアが開発・公開。Python公式ドキュメント1ページが81,506→20,495トークンに圧縮(74.9%削減)。Homebrew対応。
詳細
解決する問題
- AIエージェントにURL読ませるとナビゲーション・広告・フッター・スクリプトタグ等のノイズがコンテキストを大量消費
- Python公式ドキュメント1ページで80,000トークン超になることも
主な機能
- HTML/Markdown/URLからノイズ除去してコンパクトなMarkdown/JSONを返すCLI
--stats: トークン節約量を出力末尾に表示--query "キーワード": タスク関連セクションを先頭に並べ替え(重要部分が切り捨てられにくくなる)--json: エージェントのツール呼び出し結果向けの構造化JSON出力ctxpack stats: 累計節約量の確認
インストール
brew install atani/tap/ctxpack実測値
- Python argparse ページ: 81,506トークン → 20,495トークン(74.9%削減)
- 9ページ累計: 573,028トークン → 51,565トークン(91.0%削減)
ノイズ除去の仕組み
<script>、<style>、<noscript>、<nav>、<footer>、<aside>をタグごと削除- class/id/roleでad、banner、breadcrumb、cookie、header、menu等をキーワードマッチで削除
- 標準ライブラリのみで実装(外部依存なし)
トークン推定方式
- CJK文字(ひらがな・カタカナ等): 1文字≒0.8トークン
- その他: 4文字≒1トークン
- モデル非依存の近似値(削減前後の相対比較用)
Claude Code連携 CLAUDE.mdに以下を追記することでClaude CodeがctxpackをWebFetchより優先使用するようになる:
URL読み込み前に `ctxpack <url> --json` でパックしてトークンを節約するロードマップ: Playwright対応、MCP/サーバーモード、モデル別トークナイザー対応など