ブログ

Claude Code の「-p」モードをサブスクリプション内で利用する:リレープロキシ「clarp」の仕組み

GitHub で公開されている Search code, repositories, users, issues, pull requests... というリポジトリを読み、Claude Code の運用コストを抑えつつ自動化機能を活用するアプローチが非常に実用的だと感じたので、こちらで内容を整理して紹介します。

ただ、claudeのライセンスを考えると微妙な感じですね。確か、claude code 以外からの利用以外は、API(従量制)を使ってねになってた筈ですから…。でも、claude -p 経由での課金方法が変わったのは痛いなぁ。


Claude Code は開発者にとって非常に便利なツールですが、外部ツールと連携する際のコスト面で少し気になる点が出てきました。その課題を解決するための実験的なプロキシツール「clarp」について詳しく見ていきましょう。

解決したい課題:プリントモードの個別課金

Claude Code には -p(プリントモード)という機能があります。これは、標準入力(stdin)から JSON 形式で指示を受け取り、標準出力(stdout)にストリーミング形式で結果を返すモードです。この機能があるおかげで、IDE の拡張機能や CI/CD パイプライン、自作のスクリプトから Claude Code を「エージェント」として呼び出すことができます。

しかし、Anthropic 社のアナウンスによると、この -p モードによる利用は今後、通常の Claude Pro サブスクリプションとは別に、API 使用量に応じた従量課金が行われる可能性があります。

自動化ツールや IDE 連携を頻繁に行うユーザーにとっては、定額のサブスクリプション内でこの機能を使いたいというのが本音ではないでしょうか。

clarp とは:既存のセッションを「ラップ」する

clarp(Claude API Relay Proxy)は、この課題に対する一つの回答となるツールです。一言で言えば、「対話型の Claude Code セッションを裏側で立ち上げ、それを -p モードのように見せかけるプロキシ」です。

ツール名に「LARP(ライブアクション・ロールプレイング)」という言葉が掛けられており、あたかも本物の claude -p であるかのように振る舞うという遊び心が感じられます。

主な特徴

  • ドロップイン代替: バイナリ名を claude から clarp に変えるだけで、既存のツールがそのまま動くように設計されています。
  • プロトコルの互換性: 入力形式や出力イベント、フラグなどが本家と全く同じになるよう構成されています。
  • サブスクリプションの利用: 背後で通常の対話型セッションを動かすため、API 課金ではなく既存のサブスクリプションの枠内で動作します。

アーキテクチャの概要

clarp がどのように動作しているのか、処理の流れを整理してみました。

flowchart TD
    A[外部ツール / IDE / スクリプト] -->|stdin: JSON形式の指示| B(clarp -p)

    subgraph clarp内部
    B --> C[Stdin Reader]
    C --> D[Session Controller]
    D <--> E[PTY Host / 仮想端末]
    E <--> F[対話型 Claude Code 本体]
    D --> G[Output Emitter]
    H[PID Watcher] -.->|状態監視| D
    end

    G -->|stdout: ストリーミングJSON| A

実際にやっていることは、プログラムから制御可能な「仮想端末(PTY)」を立ち上げ、その中で対話型の claude コマンドを実行し、入出力を JSON プロトコルに変換して外部ツールと橋渡しをするという仕組みです。

導入と使い方のイメージ

利用方法は非常にシンプルです。これまでのコマンドを置き換えるだけなので、学習コストはほとんどかからないかと思います。

# これまでの方法(将来的に従量課金になる可能性があるもの)
claude -p "この関数をリファクタリングして"

# clarp を使った方法(サブスクリプション内で動作)
clarp -p "この関数をリファクタリングして"

IDE 連携などでパスを指定している場合は、実行バイナリを clarp に向けるだけで対応できるはずです。

注意点とリスク

こちらのツールは非常に便利そうに見えますが、いくつか注意しておくべき点があります。

項目 内容
公式の立場 Anthropic 社とは無関係のサードパーティ製ツールです。
安定性 実験的なツールであり、Claude Code 本体のアップデートにより突然動作しなくなる可能性があります。
利用規約 本ツールの利用がサービスの利用規約に抵触しないか、各自で確認が必要です。
メンテナンス 個人開発のリポジトリであるため、自己責任での利用が基本となります。

「とりあえず手元で少し試してみたい」という場合には良い選択肢かもしれませんが、業務クリティカルなラインに組み込むには、少し慎重になったほうがいいかもしれません。

まとめ

clarp は、Claude Code の強力な機能を低コストかつシームレスに外部ツールから利用するための、賢い「ハック」だと思います。

公式が提供する API ベースの安定性を取るか、こうしたコミュニティ製のツールでワークフローを最適化するかは悩ましいところですが、個人の開発環境を整える上では、こういった選択肢があること自体が面白いですよね。

自動化のコストが気になっていた方は、一度チェックしてみる価値があるのではないでしょうか。

参照記事