mcpField
P
pp-archive-is

pp-archive-is

github.com/mvanhorn生産性2.1k644 回インストール今日更新
リポジトリ

pp-archive-is について

URLをアーカイブし、保存されたページの内容を取得するCLIスキルです。調査やペイウォール記事の確認に使えます。既存スナップショットの検索、新規保存、履歴確認、レート制限付きの一括保存に対応します。

主な機能

  1. 01スナップショットの検索・作成
  2. 02アーカイブ記事テキストの抽出
  3. 03取得ページの要約
  4. 04スナップショット履歴の確認
  5. 05URLリストの一括保存
  6. 06アーカイブバックエンドの順序指定

活用シーン

  1. 01アーカイブ版を使った記事の閲覧
  2. 02ページ変更前の保存
  3. 03URLの過去スナップショットの確認
  4. 04調査用URLリストの一括保存

MCP 対応

インストール可能なarchive-is-pp-mcp MCPサーバーを提供します。READMEには公開ツールの説明はありません。

インストール

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

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-archive-is

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

詳細

archive.today — Printing Press CLI

前提条件:CLI をインストールする

このスキルは archive-is-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。 インストールされていない場合は、先にインストールします。

  1. Printing Press インストーラーを使ってインストールします。デフォルトでは、macOS/Linux の場合は $HOME/.local/bin、Windows の場合は %LOCALAPPDATA%\Programs\PrintingPress\bin にバイナリがインストールされます。
    npx -y @mvanhorn/printing-press-library install archive-is --cli-only
    
  2. 確認します:archive-is-pp-cli --version
  3. このスキルを実行するエージェント/ランタイムの $PATH に、表示されたインストールディレクトリが含まれていることを確認します。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を使った直接インストールに切り替えます(Go 1.26.6 以降が必要です)。

go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/archive-is/cmd/archive-is-pp-cli@latest

インストール後に --version が「command not found」と表示する場合、ランタイムからバイナリのディレクトリを $PATH 経由で参照できません。確認が成功するまで、スキルのコマンドを実行しないでください。

この CLI を使用する場面

URL をアーカイブしたい、有料記事を読みたい、すでにアーカイブされているか確認したい、または調査のために複数の URL を一括で保存したい場合は、いつでもこの CLI を使用してください。特に、次の用途に適しています。

  • 有料リンクをユーザーから受け取り、「これを読めますか」と尋ねられた場合 → read がアーカイブ経由でテキストを取得します
  • 変更される可能性のある URL を保存したい場合 → save が新しいキャプチャを強制します
  • 過去のバージョンを確認したい場合 → history が既知のスナップショットをすべて一覧表示します
  • アーカイブする URL が 20 件以上ある場合 → bulk がレート制限付きで一括アーカイブします

アーカイブサービスを使わなくても URL を簡単にスクレイピングできる場合(有料記事ではない、robots.txt で許可されている、HTTP で直接取得できるなど)や、キャッシュ版ではなく元のソースをユーザーが求めている場合は、この CLI を使用しないでください。

独自の機能

CLI 全体が独自の機能です。archive.today には公式 API がありません。ただし、この CLI の中でも、特に際立つコマンドがあります。

主なコマンド
  • read <url> — URL のアーカイブを検索または作成します。既存のスナップショットを先に検索し(Memento timegate → CDX の順にフォールバック)、見つからない場合にのみ新しいキャプチャを送信します。常に適切な処理を行うコマンドです。

    エージェントによる呼び出しの 90% は、このコマンドから始めるのがおすすめです。冪等性があるため、同じ URL に 2 回実行しても、二重に送信されることはありません。

  • get <url> [--raw] / tldr <url> — 記事のテキストを取得し、必要に応じて LLM で要約します。archive.today が CAPTCHA を表示する場合(クラウド IP では毎日のように発生します)、自動的に Wayback にフォールバックします。

    tldr は取得したテキストを要約処理に通します。20 KB の HTML を返す代わりに短い要約を取得したいエージェントチェーンで便利です。

アーカイブの永続性に関する操作
  • save <url> — /submit/?url=<x>&anyway=1 経由で新しいキャプチャを強制します。read が古すぎる既存のスナップショットを返した場合や、有料記事の更新が反映されていない場合に使用します。

  • history <url> — Memento のタイムマップを解析して、既知のスナップショットをすべて一覧表示します。archive.today と Wayback の両方で、すべてのキャプチャ日時を表示します。

  • bulk [file] — ファイルまたは標準入力から、レート制限付きで URL を一括アーカイブします。1 行につき 1 つの URL を読み込み、バックオフを挟んでそれぞれを送信し、成功・失敗・既存のアーカイブのレポートを返します。

    grep -oE 'https?://[^ )]+' notes.md | archive-is-pp-cli bulk - を実行すると、Markdown ファイル内のすべての URL がアーカイブされます。

  • request <url> — 必要に応じて待機とポーリングを行いながら、送信を開始して結果を待たずに戻ります。後で確認したい時間のかかるキャプチャに便利です。

可観測性
  • snapshots newest <url> — 指定した URL の最新スナップショット URL のみを返します。スクリプトで便利です。

  • captures — ローカルのキャプチャインデックスを一覧表示します(同期後)。

  • feeds — archive.today の最新アーカイブのグローバルフィードを表示します。

  • --backend archive-is,wayback — read と get では、バックエンドの優先順位を指定できます。デフォルトでは archive-is を優先し、Wayback にフォールバックします。順序を入れ替えると、Wayback が優先されます。

コマンドリファレンス

アーカイブと取得:

  • archive-is-pp-cli read <url> — 検索または作成します(主要コマンド)
  • archive-is-pp-cli get <url> — 記事テキストを取得します(Wayback へのフォールバックあり)
  • archive-is-pp-cli tldr <url> — 取得して要約します
  • archive-is-pp-cli save <url> — 新しいキャプチャを強制的に作成します
  • archive-is-pp-cli request <url> — 結果を待たずに送信します
  • archive-is-pp-cli request check <url> — 送信したリクエストが完了したか確認します

一覧と履歴:

  • archive-is-pp-cli history <url> — 既知のスナップショットをすべて表示します
  • archive-is-pp-cli snapshots <url> — URL の既知のスナップショットのうち最適なものを表示します
  • archive-is-pp-cli snapshots newest <url> — 最新のスナップショット URL を表示します
  • archive-is-pp-cli snapshots timemap <url> — 生の Memento タイムマップを表示します
  • archive-is-pp-cli captures — ローカルのキャプチャインデックスを表示します
  • archive-is-pp-cli feeds — 最近の全体フィードを表示します

一括処理:

  • archive-is-pp-cli bulk [file] — ファイルまたは標準入力から一括処理します

ローカルストア:

  • archive-is-pp-cli sync / export / import / workflow archive — ローカルの SQLite 操作

認証とヘルスチェック:

  • archive-is-pp-cli auth — 設定(API キーは不要です。認証は何もしません)
  • archive-is-pp-cli doctor — バックエンドに到達できることを確認します

使用例

ペイウォールのある記事を読む
archive-is-pp-cli read "https://www.wsj.com/articles/..." --agent
# or: return just the text
archive-is-pp-cli get "https://www.wsj.com/articles/..." --agent

read はアーカイブ URL を返します(既存のものを検索するか、新しく作成します)。get はデフォルトで抽出した記事テキストを返し、archive.today が CAPTCHA を表示した場合は Wayback にフォールバックします。アーカイブされた HTML が必要な場合に限り、--raw を追加してください。

変更される前に URL を保存する
archive-is-pp-cli save "https://example.com/important-page" --agent
archive-is-pp-cli history "https://example.com/important-page" --agent  # verify

キャプチャを強制的に作成してから、履歴を確認し、新しいスナップショットが登録されたことを確かめます。

調査対象を一括でアーカイブする
grep -oE 'https?://[^ )]+' research-notes.md | archive-is-pp-cli bulk - --agent
# or from a file:
archive-is-pp-cli bulk urls.txt --agent

1 行に 1 つずつ URL を読み込み、指数バックオフを使ってそれぞれを送信し、URL ごとのステータス(アーカイブ済み、既存、失敗)を JSON で返します。

信頼性の高い読み込みのために Wayback を優先する
archive-is-pp-cli read "https://ft.com/content/xyz" --backend wayback,archive-is --agent

Wayback Machine のスナップショットのほうがきれいだと分かっている場合や、archive.today がレート制限を行っている場合に使用します。

認証の設定

API キーは不要です。 Archive.today と Wayback Machine はどちらも公開されています。auth サブコマンドは一貫性のために存在しますが、何もしません。doctor が「Auth: not required」と報告するのが想定される状態です。

任意の環境変数:

  • ARCHIVE_IS_BASE_URL — archive.today のホストを上書きします(ミラー用)
  • WAYBACK_BASE_URL — Wayback Machine のホストを上書きします

エージェントモード

任意のコマンドに --agent を追加します。これは --json --compact --no-input --no-color --yes --no-prompt に展開されます。非対話モードで実行すると、すべてのアクションコマンドが stderr に構造化された next_actions のヒントも出力します。呼び出し元のエージェントは「X を試し、Y を得たので、Z を検討してください」という情報を自動で受け取れます。

主なフラグ:

  • --submit-timeout <duration> — 新しい送信を待つ最大時間(デフォルトは 10m、0 は無制限)
  • --backend archive-is,wayback — バックエンドの優先順位とフォールバック順序
  • --raw — get で抽出テキストの代わりに生の HTML を返します
出力のフィルタリング

--select は、ネストされたレスポンスをたどるためのドット区切りパスを受け付けます。配列の場合は各要素をたどります。

archive-is-pp-cli <command> --agent --select id,name
archive-is-pp-cli <command> --agent --select items.id,items.owner.name

これを使って、巨大なペイロードから必要なフィールドだけに絞り込みます。深くネストされた API レスポンスでは特に重要です。

レスポンスエンベロープ

データレイヤーのコマンドは、出力を {"meta": {...}, "results": <data>} でラップします。データには .results を解析し、データが live とローカルのどちらから取得されたかを確認するには .meta.source を解析してください。N results (live) の概要は、標準出力が TTY の場合にのみ stderr に出力されます。パイプやエージェントの利用者には、標準出力に純粋な JSON が出力されます。

終了コード

コード意味
0成功
2使用方法のエラー
3見つかりません(スナップショットが存在しません)
5API エラー(archive.today または Wayback がダウンしています)
7レート制限(送信回数が多すぎます)

インストール

go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/archive-is/cmd/archive-is-pp-cli@latest
archive-is-pp-cli doctor
MCP サーバー
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/archive-is/cmd/archive-is-pp-mcp@latest
claude mcp add archive-is-pp-mcp -- archive-is-pp-mcp

引数の解析

$ARGUMENTS の場合:

  1. 空、help、または --help → archive-is-pp-cli --help を実行します
  2. install → CLI、install mcp → MCP
  3. URL のように見えるもの、または「archive 」/「bypass paywall on 」 → デフォルトでは read <url> --agent を実行します。これは冪等で、一般的なケースの 90% をカバーします。
  4. 「bulk archive」/「archive these」 → URL が貼り付けられている場合は標準入力から bulk を実行し、そうでない場合はファイルパスを尋ねます。

エージェントのワークフロー機能

この CLI は、cli-printing-press の PR #218 から取り込まれた、共有のエージェントワークフロー機能を 3 つ提供します。

名前付きプロファイル

一連のフラグを名前付きで保存し、複数回の呼び出しで再利用できます。

# Save the current non-default flags as a named profile
archive-is-pp-cli profile save <name>

# Use a profile — overlays its values onto any flag you don't set explicitly
archive-is-pp-cli --profile <name> <command>

# List / inspect / remove
archive-is-pp-cli profile list
archive-is-pp-cli profile show <name>
archive-is-pp-cli profile delete <name> --yes

フラグの優先順位:明示的なフラグ > 環境変数 > プロファイル > デフォルト。

--deliver

コマンドの出力先を標準出力以外のシンクに変更します。エージェントが、処理をつなぐことなく、結果をファイル、Webhook、または別のプロセスに渡す場合に便利です。

archive-is-pp-cli <command> --deliver file:/path/to/out.json
archive-is-pp-cli <command> --deliver webhook:https://hooks.example/in

ファイルシンクはアトミックに書き込みます(一時ファイルの作成後に名前を変更)。Webhook シンクは application/json(--compact が設定されている場合は application/x-ndjson)を POST します。不明なスキームが指定された場合は、サポート対象の一覧を含む構造化された拒否を返します。

feedback

ループ内のエージェント側から、この CLI に関するフィードバックを記録します。デフォルトではローカルのみのため、設定なしで安全に呼び出せます。

archive-is-pp-cli feedback "what surprised you or tripped you up"
archive-is-pp-cli feedback list         # show local entries
archive-is-pp-cli feedback clear --yes  # wipe

エントリは ~/.archive-is-pp-cli/feedback.jsonl に JSON Lines 形式で追記されます。ARCHIVE_IS_FEEDBACK_ENDPOINT が設定されていて、--send が指定されるか ARCHIVE_IS_FEEDBACK_AUTO_SEND=true が設定されている場合、エントリはアップストリームにも POST されます(ノンブロッキングで、ローカルへの書き込みは常に成功します)。

コメント