Reasonix:DeepSeekで動かすClaude Codeスタイルのコーディングエージェント

公開日
2026年7月11日
更新日
2026年7月11日
著者
Jacob Lloyd — プロジェクト完了後、AIの支援を受けて執筆
読了時間
約7分で読めます

かんたんに言うと: Reasonixはターミナルで動くAIコーディングアシスタントです。やりたいことを普通の言葉で伝えると、コードを読み、書き、テストまでしてくれます。月額サブスクリプションではなく、格安の従量課金AIサービスであるDeepSeekに接続するので、本格的なコーディング支援が数円で済みます。この記事ではインストール、キーの設定、自動アップデートの仕組みを紹介します。

Claude Code流の作業スタイル — ターミナルに住み、ファイルを読み、コマンドを実行し、自分のミスを自分で直すコーディングエージェント — は好きだけど、月額サブスクリプションより1タスク数銭の従量課金がいい。そんな人向けのレシピがこれです:Claude CodeスタイルのCLIエージェント「Reasonix」を、DeepSeekのAPIに向ける。

要点

  • これは何:Claude Code型のエージェントCLI「Reasonix」— サブエージェント、スキル、プロジェクト別メモリ付き — を有料プランの代わりにDeepSeekモデルで動かす構成。
  • 費用:トークン単位の従量課金、サブスクなし。規模感として、常時稼働の私のエージェント群を同じDeepSeek階層で1か月フル稼働させて$24.08でした。
  • 必要なもの:Node.js + npm、DeepSeekのAPIキー、10分。
  • 得られるもの:疲れ知らずのターミナル型コーディングエージェント、更新に耐える設定、そして意識しなくても最新に保たれる定期アップデーター。

出来上がりの姿

プロジェクトのディレクトリでターミナルを開き、reasonixと打って、やりたいことを伝えます:「このスクリプトに --dry-run フラグを追加してREADMEも更新して」。エージェントは関連ファイルを読み、編集し、スクリプトを実行して自分の作業を確認し、報告します — Claude Codeユーザーにはお馴染みのループです。違いは配管部分にあります:

  • 頭脳はDeepSeekで、トークン単位の課金。階層は2つで足ります:日常の編集や雑務用のflashモデルと、厄介なリファクタやデバッグ用の推論モデルpro。常時稼働の私のエージェント群はこの同じ2階層で走っていて、1か月フルで$24.08(flash $9.54 + pro $14.54)でした — 同じワークロードを大手フラッグシップAPIで見積もるとおよそ$475〜$915になります。
  • スケジュールは自由。シートライセンスがないので、一括リファクタ、テスト書き、ドキュメント整備といった長時間の作業を、使用量メーターを気にせず回し続けられます。
  • 状態はホームディレクトリに。Reasonixはドットフォルダ(~/.reasonix/)に設定ファイルとプロジェクト別のセッション履歴・メモリを保持するので、リポジトリごとの文脈を実行をまたいで覚えています。

ステップ1:インストール

npmのグローバルパッケージです:

npm install -g reasonix
reasonix --version

インストールはこれだけ。Nodeを標準外のプレフィックスに置いている場合はnpmのフルパスを控えておいてください — ステップ4のアップデーターでまた使います。

ステップ2:DeepSeekに向ける

DeepSeekのプラットフォームサイトでAPIキーを作成します(従量課金。私のエージェント一式で7月最初の11日間の合計が$2.23でした)。あとは~/.reasonix/config.tomlの設定ファイルに3つの事実を教えるだけ:

# ~/.reasonix/config.toml — 形の例(実物の貼り付けではありません)
[api]
base_url = "https://api.deepseek.com"
api_key  = "sk-..."             # 自分のキー。または環境変数・キーファイル参照

[models]
default = "deepseek-v4-flash"   # 日常用の階層
smart   = "deepseek-v4-pro"     # 難タスク用の推論階層

キー名はエージェントCLIごとに違いますが、どれも結局は同じ三点セットに帰着します:ベースURL、キー、モデルID。ツールを問わない衛生ルールが2つ:

  • キーを含むファイルはchmod 600。そしてキーをコマンドラインに渡さない(シェル履歴とpsの出力に残ります)。
  • 両方の階層を設定する。「デフォルトはflash、難所はpro」がコスト面の全てです:ほとんどのターンは安く済み、モデルが明らかに苦戦しているときだけ格上げする。

ステップ3:サブエージェントとスキル

サブエージェントは、メインのエージェントが生成するスコープを絞ったワーカーです — 「この関数の呼び出し元をコードベース全体から探して」など — そしてトークン単位の課金ではこれがコストのレバーにもなります。オーケストレーターがproで考えている間、ワーカーはflash階層で走らせられるからです。スキルは、エージェントが必要時に読み込む手順書です。デプロイ手順やテストの書き方の規約を一度書いておけば、セッションごとに説明し直さずに済みます。

ステップ4:定期的に最新に保つ

エージェントCLIの進化は速く、古いままだとツール周りの修正を逃します。更新を覚えておくのではなく、スケジュールしましょう。うちでは1日おきの朝6時にスケジューラから実行しています。面白いのはスクリプトの方で、cronでの素朴なnpm update -gにはガードすべき故障モードが2つあります:

#!/usr/bin/env bash
set -euo pipefail
LOG="$HOME/logs/update-reasonix.log"
NPM="$(command -v npm)"

# 1. ロックガード — npmの二重実行はインストールを壊す
exec 9>"${LOG%.log}.lock"
flock -n 9 || { echo "update already running"; exit 0; }

# 2. ログローテーション — cronのログは削らない限り無限に育つ
[ -f "$LOG" ] && tail -n 5000 "$LOG" > "$LOG.tmp" && mv "$LOG.tmp" "$LOG"

echo "before: $("$NPM" list -g reasonix --depth=0 | grep reasonix)" >> "$LOG"
"$NPM" update -g reasonix >> "$LOG" 2>&1
echo "after:  $("$NPM" list -g reasonix --depth=0 | grep reasonix)" >> "$LOG"

cronでもsystemdタイマーでもどちらでも動きます。バージョンを更新前と更新後に記録するのは見た目以上に重要です:ある朝エージェントの挙動が変わったとき、原因がアップデートかどうかログが教えてくれます。

おまけ:チャットアプリに組み込む

ターミナル型エージェントがターミナルに留まる必要はありません。ReasonixはPTY上のただのCLIなので、xterm.jsでWeb UIにストリーミングすれば、ネットワーク上のどのデバイスからでも使えます。私のセルフホスト・チャットアプリはまさにこれをやっていて、Reasonixが通常のチャットエージェントと並んで「ターミナルボット」として現れ、開始・再起動・停止の操作もできます。構成の全体はDisPatch:セルフホストAIチャットにまとめています。

ハマりどころ

  • 推論モデルは答える前に止まって見える。pro階層は返答の前に思考をストリームします。エージェントを包むラッパーやゲートウェイのアイドルタイムアウトが短いと、長考の途中で殺されます。タイムアウトを伸ばすこと。モデルのせいにしない。
  • キーは絶対にargvに入れない。設定ファイル(chmod 600)か環境ファイルのみ。コマンドラインフラグは履歴とプロセス一覧から漏れます。
  • アップデーターではnpmのパスを固定する。cronは最小限のPATHで動くため、対話シェルとcronではnpmの解決先が変わり得ます。スクリプト内でハードコードするか明示的に解決すること。
  • 更新ジョブにはロックを。flockなしだと、遅いnpmレジストリと熱心なスケジュールの組み合わせで、いつかグローバルインストールが二重に走ってCLIが壊れます。
  • 格上げ癖に注意。従量課金が安いのはflashがデフォルトの間だけ。「念のため」で毎回proを使うなら、それはサブスクの再発明です — 最初の1週間は支出を記録しましょう。
  • セッションフォルダは育つ。プロジェクト別履歴は便利ですが、おしゃべりなエージェントの数か月分は重い。ドットフォルダのセッションデータはときどき掃除を。

関連記事:より広いDeepSeekをあらゆる場所に配線するガイドでは、本物のClaude Code CLIをDeepSeekのAnthropic互換エンドポイントに向ける方法を扱っています — 同じ発想の逆方向です。


← AIとローカルLLMをもっと見る