ClaudeでOpenClawを乗っ取る

Dev.to / 2026/4/26

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical Usage

要点

  • 著者はOpenClawライティングチャレンジに参加し、社内の開発環境ではClaude CodeのCLIアクセスのみがある状態でもOpenClawを試すことを目的にしています。
  • 彼らは大きな障壁として、組織がClaude Codeツールは提供した一方で、Webアカウント・APIキー・OAuthアクセスなどの公式な認証手段を用意していないため、通常のログインができない点を説明しています。
  • 「マッドサイエンティスト」になってでも、ツールだけは使えるが公式の認証情報はないという企業の制約を回避する必要があると述べています。
  • SNSや動画で得た程度の予備知識しかない中で、チームのためにOpenClawを動かす実践的な試みとして記事を位置付けています。

これはOpenClaw Writing Challengeへの提出です

ClawCon Michigan

前奏曲(Prelude)

上司が「もっと口で説明しろ」とか「作業の証拠を見せろ」だとかうるさく言ってくるんです。で、私は誰も見ていないのにコードを押し進めていました。

gigachadvscrawny

そこで、製品マネージャーとして(うちの“人間の”製品マネージャーがタイに逃げました。ホント!)OpenClawを試してみることにしました。

セットアップの方法も、仕組みも分かりません。動画サイトで、良いことも悪いことも言っているのを見た程度でした。そして数週間前にFireshipの動画も見ました。これが、このカニについての私の知識のすべてです。
なので今日はみなさんのためにやります!
私たちのClawfficer(クロウ警官)!

問題:Claude Codeはあったのに、Claudeはなかった

話はこうです。うちの会社は開発環境経由で Claude Code(CLIツール)へのアクセスはくれました。けれども、ClaudeのWebアカウントやAPIキーは渡してくれませんでした。console.anthropic.comもありません。OAuthフローもありません。何もです。

つまり、強力なCLIツールはインストールされているのに、「普通の」方法でログインできない。なぜなら、それにはWebアカウントが必要だからです。

聞き覚えありませんか? もしあなたの会社の情シスが、うちと同じような感じなら、ツールへのアクセスはあるけど、それを「正式に」動かすためのアカウントは渡されていない、という状況かもしれません。

ならば、狂気の科学者ムーブで突破するしかない。

そもそもOpenClawって何?

ここまで読んでくれたなら、あなたは私の投稿が何を言いたいのか分かっている前提で、OpenClawが何かは知っているはずだと思います ¯_(ツ)
つまり、歴史上でいちばん伸びているリポジトリみたいに大きいわけではないんです。 ¯_(ツ)

ただし、落とし穴があります。OpenClawは、実際に考えるためにClaude(または他のAIモデル)を必要とします。そしてClaudeは通常、動かすのにAPIキーかWebのOAuthが必要です。

……でも、すでにClaude Codeはインストール済みなんです。そしてClaude Codeには“技”があります。

シンボリックリンク(Symlink)ハック

Claude Codeをグローバルにインストールすると:

npm install -g @anthropic-ai/claude-code

すると、PATHに claude というバイナリが作られます。しかし、ほとんどの人は気づいていませんが、このバイナリは自前の認証を持っています。

claude /login(私たちはできました。CLIはあるのに、上司がメールアカウントを消したのでできない ┐( ˘_˘)┌ というやつです)を実行すると、ブラウザが開いて、Claude Pro/MaxのサブスクリプションでOAuthを行います。その後、リフレッシュトークンを次に保存します:

~/.claude/.credentials.json

そしてここが素晴らしいポイントですが:Claude Codeはヘッドレスモードで動かせます

echo "これらのコミットを要約して" | claude -p --output-format=text

APIキーはいらない。ANTHROPIC_API_KEY の環境変数も不要。Webコンソールも不要。必要なのは、Claude Codeが自分で管理しているOAuthトークンだけで、無限に自動更新され続けます。

私たちは要するに、Claude CodeのCLI認証メカニズムを乗っ取って、それをOpenClawのワークフローに流し込みました。CLIが、APIキーに触れることなしに、私たちの「APIレイヤー」になります。

これが、APIキーを一切公開することなく、Claude CodeのOAuthフローを私たちのOpenClawセットアップに流し込む方法です

System Architecture for OpenClaw with Clause Code CLI

もちろん、私たちはまだ終わっていません!

LOOP!(ループ!)

エージェントがいて、ランタイムもあります。
だから、再起動が起きても生き残れるようにしないといけません("( – ⌓ – )")

なので、ユーザーのsystemdサービスとしてラップします。はい、これで起動時に立ち上がって、クラッシュしてもリスタートします。

systemdのユニット内でPATHを上書きし、claudeのシンボリックリンクが見つかるようにします。これをPATH上書きしないと、systemdの削ぎ落とされた環境ではClaude Codeが見つからず、ダイジェストのフロー全体が壊れます。たった一行の修正なのに、判明させるのに恥ずかしいくらい時間がかかりました。

openclaw as a systemd service

Clawfficer(クロウ警官)に会おう

じゃあ、その「狂気の科学」ムーブで、私たちの何が実際にやるのか?

私たちは、プロダクトマネージャーの役割を果たす Discord ボットを作りました。名前はClawfficerです。
サーバーのチャンネルに clawfficer を追加すると、彼が毎日および毎週の GitHub 更新を自然言語で要約してくれます。単なる汎用的な自動生成の箇条書きではありません。たとえば「ねえ、このプロジェクトの最新状況は?」「これをロードマップに追加して、Shatil を担当にしてほしい」「この issue を見つけたんだけど、Shatil を割り当てて調べてもらえる?」と聞けます。Clawfficer はきちんと調査したうえで、該当する開発者を割り当て、さらに GitHub issue 内にメッセージ URL もタグ付けします!

こちらは、Clawfficer が活躍しているところの写真です!

ここでは、Clawfficer に issue に Mahim(私の大学)を割り当てるよう頼んでいます
assign to issue

issue が作成され、discord のメッセージ参照とともに割り当てられたことが分かります

issue with discord message

私が repo へのアクセス用に自分の GitHub PAT(personal access token)を使っていたので、issue が私によって作成されたことが示されています。

ここでは、Clawfficer が自然な環境で要約を共有している様子が見られます

daily summary
毎日 9 AM、そして毎週日曜の 10 AM に、ボットがすべてのブランチから(main だけではありません。テスト用にエージェントで最もアクティブなものを含めているので、他にもリポジトリはありますが)8 つすべてのリポジトリのアクティビティを取得します。

そして、そのすべてのデータを次に流し込みます:

claude -p --output-format=text

Claude は、人間が読める文章として返してきます。箇条書きではありません。生の JSON でもありません。「実際の文章」です。たとえば:

"Medihelp は今週 3 ブランチで合計 12 件のコミットがありました。主に Mahim によるスキーマのマイグレーションです。eyecraft のランディングページには初めて PR レビューが入りました。"

ボットはこれを #roadmap に投稿します。私の上司がそれを見ます。「作業実績の証明」について小言を言われなくなります。

みんなが得をします。

Claude Code のシンボリックリンク(symlink)方式を使うことで、次のことができます:

  1. 既存のサブスクリプションを使う(Claude Pro/Max)- インタラクティブ利用と同じ課金バケット
  2. ヘッドレスで実行する(スクリプト、cron ジョブ、ボットで)
  3. API キーを扱わない - OAuth トークンは ~/.claude/ に保存され、自動で更新されます
  4. どこでもデプロイ可能 - Node.js と、あなたのユーザーコンテキストがあれば

これは「API の置き換えとして公式にサポートされている」わけではありません。でも動きます。そして調達のバトルなしに「とにかく動く」必要のある社内ツールにとっては、それは最高です。

OpenClaw Harness with Claude Code AI Engine in Node Runtime

あまりにも時間をかけすぎたこと

1. ブランチカバレッジは重要

GitHub の /commits エンドポイントはデフォルトでデフォルトブランチを返します。チームが機能ブランチで作業している場合(そしてそうあるべきです)、コードがプッシュされていても、ダイジェストが空っぽに見えてしまいます。

修正: すべてのブランチを巡回し、コミット SHA で重複を除去します。振り返れば明らかなのに、本番ではつらい。

2. OAuth トークンはすべて

~/.claude/.credentials.json ファイルが認証失敗の一点です。期限切れになったり、壊れたりすると、claude -p は終了コード 1 で落ちてしまい、ダイジェストが箇条書きにフォールバックします。

修正: claude を一度インタラクティブに実行して再認証します。CLI はその後、リフレッシュトークンを自動で処理します。

3. systemd の PATH はあなたのシェル PATH ではない

インタラクティブなシェルには PATH に claude が入っています。ですが systemd には入りません。ユニットファイルで Environment=PATH=... を明示的に設定しないと、spawn が静かに失敗します。

Clawfficer は意図的にミニマムです。私は、ほかの通常の機能をあれこれ作りませんでした。(つまり、Claw についての事前知識なしで昨日 8 時間かけて作っただけなので ¯_(ツ)_/¯ )
でも土台はそこにあります。そしてもっと重要なのは、認証パターンもそこにあることです。Claude Code の CLI は、単なるインタラクティブなコーディングアシスタントではありません。たまたま既に認証済みの、ヘッドレスの LLM エンジンです。

Shatil Khan は Anchorblock でものを作り、ネット上のカニと口論しています。動くのに謎なエンジニアリング判断の続報をフォローしてください。

Yeah Baby!

返却形式: {"translated": "翻訳されたHTML"}