CLOVER🍀

That was when it all began.

Dockerコンテナー内で動かしているClaude Codeなどをherdrに認識してもらう

これは、なにをしたくて書いたもの?

以前にコーディングエージェントを強く意識したターミナルマルチプレクサー、herdrを試してみました。

ターミナルマルチプレクサーherdrを試す - CLOVER🍀

Claude CodeやGitHub Copilot CLIなどを認識してくれて便利なのですが、これらのコーディングエージェントをDockerコンテナーなどで
動かしていると認識してくれません。

これをなんとかしたいというのが今回のお題です。

HERDR_AGENT環境変数を使う

答えを書いてしまうと、HERDR_AGENT環境変数を使います。

ドキュメントではこちらですね。

Agents / VMs and sandbox wrappers

対象はフォアグラウンドで動作するプロセスです。

HERDR_AGENT環境変数で、herdrにどのコーディングエージェントとして認識させるかを指定します。例はこちらです。

$ HERDR_AGENT=claude nono run --profile claude-code -- claude

また子プロセスグループを辿りたい場合はHERDR_PROCESS_DETECTION=child-groups環境変数を使うようですが、herdrサーバーの
再起動が必要なのと、ベストエフォートで動作します。

HERDR_AGENT環境変数の利用で、基本的には事足りる気はしますが。それでは試してみましょう。

環境

今回の環境はこちら。

$ herdr --version
herdr 0.9.0


$ claude --version
2.1.269 (Claude Code)

ふつうに使ってみる

まずはherdrでClaude Codeをふつうに使ってみましょう。

$ claude

認識してくれます。

これはよいですね。

Dockerコンテナー内で動かすClaude Codeで使ってみる

次は、Dockerコンテナー内で動かすClaude Codeで使ってみます。

まずはClaude Codeを含めたDockerイメージを作りましょう。

Dockerfile

FROM ubuntu:24.04

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
                       unzip \
                       curl \
                       ca-certificates \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://claude.ai/install.sh | bash

ENV PATH="/root/.local/bin:${PATH}"

ENTRYPOINT ["claude"]
CMD []

Dockerイメージをビルドします。

$ docker image build -t kazuhira/claude .

では、このDockerイメージを使ってherdrを起動してみます。

$ docker container run -it --rm --name claude kazuhira/claude:latest

agentsタブには表示されません。

では、ここでHERDR_AGENT環境変数と組み合わせてみましょう。

$ HERDR_AGENT=claude docker container run -it --rm --name claude kazuhira/claude:latest

今度は認識されました。

この後もふつうに使えます。

HERDR_AGENT環境変数にはどういう値を指定すればいいのかというと、インテグレーションするコーディングエージェントの名前に
なります。

herdr integrationコマンドかドキュメントで確認するとよいでしょう。

$ herdr integration
herdr integration commands:
  herdr integration install pi
  herdr integration install omp
  herdr integration install claude
  herdr integration install codex
  herdr integration install copilot
  herdr integration install devin
  herdr integration install droid
  herdr integration install kimi
  herdr integration install opencode
  herdr integration install kilo
  herdr integration install hermes
  herdr integration install qodercli
  herdr integration install qwen
  herdr integration install cursor
  herdr integration install mastracode
  herdr integration install antigravity-cli
  herdr integration install grok
  herdr integration uninstall pi
  herdr integration uninstall omp
  herdr integration uninstall claude
  herdr integration uninstall codex
  herdr integration uninstall copilot
  herdr integration uninstall devin
  herdr integration uninstall droid
  herdr integration uninstall kimi
  herdr integration uninstall opencode
  herdr integration uninstall kilo
  herdr integration uninstall hermes
  herdr integration uninstall qodercli
  herdr integration uninstall qwen
  herdr integration uninstall cursor
  herdr integration uninstall mastracode
  herdr integration uninstall antigravity-cli
  herdr integration uninstall grok
  herdr integration status [--outdated-only]

Integrations | herdr

CLI reference / Integrations

こんなところでしょうか。

おわりに

Dockerコンテナー内で動かしているClaude Codeなどを、herdrが認識するようにしてみました。

自分はふだんClaude CodeなどをDockerコンテナーで動かしているので、herdrは使えないのかなと思っていたのですがふつうにドキュメントに
方法が書かれていましたね。

これでherdrの利用も進みそうです。