Reasonix:DeepSeekで動かすClaude Codeスタイルのコーディングエージェント
- カテゴリ
- AIとローカルLLM
- 公開日
- 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互換エンドポイントに向ける方法を扱っています — 同じ発想の逆方向です。