Kotonia
ログイン今すぐ始める

Kotonia Articles

ターミナルで完結する creative agent を 1 日で作った話 — 視覚優位ツールに殴られ続けてきた言語優位プレイヤーへ

kotonia-cli を 1 日で書き上げた記録。bash 1 ツール + 3 秒で届く画像生成 + ffmpeg ネイティブが、Claude Code / Codex が誰も埋めなかったカテゴリ空白を埋める。1 人開発がフロンティア API 屋に勝てる唯一の領域は、能力ではなく言語優位ユーザーへのロスレス UX だった。

著者 7分で読める
#agent#cli#個人開発#creative-coding#rust#llm
他の言語英語中国語

ターミナルに 3 行打って、3 秒待ったら、この絵が手元のディスクに落ちてきた。

GUI を 1 回も開いていない。Midjourney に行ってもいないし、ComfyUI のノードグラフを組んでもいないし、ChatGPT のチャット欄に貼り付けてダウンロードボタンを探してもいない。KOTONIA_API_KEYexport して、kotonia-cli を起動して、「可愛い美少女の画像を作って」と日本語で言っただけだ。

ここに辿り着くまでに 1 日かかった。自前の CLI agent をゼロから書いて、自前の /api/v1 の画像生成エンドポイントに結線して、bash 経由で agent に curl を叩かせて、生成された PNG を ./bishoujo.png に保存させた。コミット数 8 本、ユニットテスト 31 本、Rust の行数およそ 2,000 行。

このセットアップが動き出した瞬間に「これは何かのカテゴリ空白を埋めにいってる」という確信が来た。その正体を整理したい、というのがこの記事だ。


1. カテゴリ空白 — code agent と image gen の交差点に誰もいない

2026 年 6 月時点で、開発者向けの agent 系プロダクトを並べると 3 つのクラスタに分かれる。

クラスタ代表プロダクトできることできないこと
Code agent (CLI / IDE)Claude Code、OpenAI Codex CLI、Cursor、Aiderコードを読む / 書く / 走らせる、shell ツール、git 操作画像 / 音声 / 動画の生成。サムネ作成。絵コンテ。
Image / video gen (GUI)Midjourney、Stable Diffusion WebUI、ComfyUI、Runway視覚成果物の生成。コントロール豊富、品質高いshell も git もコードも触れない。会話エージェントではない
Chat with image (App)ChatGPT desktop、Claude desktop、Gemini appチャット会話 + 画像生成。GUI 中心CLI じゃない、ローカル shell に手が出ない、ファイル直接操作できない

GPT のオプションのうち macOS 向け Codex なんかは GUI で画像生成も提供してきていて、モデルの絶対品質は (たぶん向こうのほうが) 上だ。だが 「ターミナルで完結 × デフォルトで画像/音声/動画生成 × shell ツールに無制限アクセス」 という組み合わせを 1 個のバイナリでパッケージしているものは、寡聞にして聞いたことがない。

つまり、ここがカテゴリ空白だ。

2. ベン図の真ん中 ─ kotonia-cli が落ちる場所

kotonia-cli が提供している機能を雑に並べる。

  • bash 1 ツール、agent が任意のシェルコマンドを発行できる
  • 承認モード 3 種 (all / allowlist / auto) で安全マージン可変
  • git worktree デフォルトでサンドボックス、--in-place で直接編集
  • 双方向 REPL、会話履歴は turn 間で永続
  • セッション JSONL を ~/.kotonia/sessions/<id>.jsonl に書き出し、--resume <id> で完全復元
  • マルチ provider (V4-Flash local / Gemma 4 26B local / DeepSeek API / 順次拡張)
  • KOTONIA_API_KEY が export されていれば、自前 /api/v1 の画像・音声・動画生成エンドポイントを system prompt に自動公開

ここの最後の項目が、上の 3 クラスタ全部から外れる立ち位置を作る。

Code agent としては bash と git に全アクセスして cargo / pytest / npm を回せる。だが Code agent が普通持っていない「画像 / 音声 / 動画生成」のドアもデフォルトで開いている。GUI image gen のような「ノードグラフを組む」コストはなく、自然言語の指示が agent によって curl + JSON body に翻訳される。

追記: 「Claude Code がなぜ画像生成しないのか」を考えると、これは Anthropic にとっては合理だ。彼らの推論コストは GPU 中心で、画像生成サービスを bundling すると価格モデルが歪む。彼らがやらない領域だからこそ、1 人開発の側に空白が落ちてくる。

3. 言語優位 vs 視覚優位 ─ ツールの認知タックスの話

既存の動画編集ツール、画像編集ツール、デザインツールは、当たり前だけど ビジュアルシンカー向けに最適化されている。タイムラインを掴んで、レイヤーを重ねて、ベジェ曲線を引いて、マウスで形を弄る。これは視覚で考える人間にとっては自然なインタラクションだ。

ところが世の中には 「言語で考える」プレイヤー が一定数いる。書く、説明する、議論する、設計する、コーディングする。インプットもアウトプットも基本テキスト。エンジニア、ライター、PM、研究者、編集者、起業家、その他多くの人がここに分類されると思う。

そういう人間が、必要に駆られて視覚成果物を作らないといけない瞬間がある。記事を書いたらサムネが要る。動画生成のために絵コンテを描かないといけない。プレゼン資料に図を入れたい。サービスのロゴを試作したい。

このとき言語優位プレイヤーに何が待っているか。

Adobe Premiere の三層タイムラインを目で追って、トラック数を増やして、フェードイン用のキーフレームを 2 本打って、それを Bezier curve で微調整して、というあのモード。あるいは Unreal Engine の Blueprint や Unity の Visual Scripting のような、線とノードでロジックを組み上げる UI。視覚思考者には自然かもしれないが、言語思考者にとっては「気持ち悪いインターフェースに脳を譲り渡す拷問」みたいな時間だ。

何が起きているかというと、モード切り替え税 がかかっている。コードを書くときの言語モードから、ツールを使うときの視覚モードに、強制的に切り替えさせられる。1 つのタスクの中で何度も切り替わる。脳のリソースが本来の創造ではなく「ツールに合わせること」に溶けていく。

今回作った kotonia-cli は、その税金をゼロに近づける。

  • 入力は自然言語: 「猫じゃなくて美少女にして、もう一回」「30 秒の縦長ショートにして、フェードイン入れて、字幕は『試したけどダメだった』」
  • 出力は workspace に落ちるファイル: ./bishoujo.png./short.mp4./narration.wav
  • モード切り替えなし: ターミナルから出ない、GUI を開かない、ブラウザにも行かない

ローカル shell に居ながら、言語で発想し、言語で指示し、出来上がりだけが視覚として手元に届く。これは創作者の認知負荷を構造的に下げる。社会的にも意義がでかいと思う。視覚モードに切り替えられず諦めていた人 (たとえば仕様書に図を入れたかった研究者、サムネが要るブロガー、メールに音声添付したかった非エンジニア) が、テキストだけで視覚物を生み出せるようになる。

4. ffmpeg ネイティブの multiplier 効果

画像生成を 1 ツール乗せただけなら他社も追随できる。kotonia-cli の真の差別化は、agent が shell の中で ffmpeg を当たり前にドライブできる ことだ。

たとえば「30 秒の縦長動画にして、頭にフェードイン、字幕『試したけどダメだった』を黄色で焼き込んで」を agent に指示すると、内部的にはこういう連鎖になる:

  1. /api/v1/videos/generations を curl で叩く (LTX-2、768×512、async ジョブ)
  2. ポーリングで完成待ち
  3. ダウンロード
  4. ffmpeg -i in.mp4 -vf "fade=in:0:30,drawtext=...:fontcolor=yellow" out.mp4
  5. workspace に ./final.mp4 を保存

これを全部 1 ターンで agent が組み立てる。ユーザー側のキーストロークは 1 行のプロンプトだけ。途中の curl も ffmpeg のフィルタ式も agent が書く。気に入らなければ「もう少し速いフェードで」と次のターンで言うだけで、agent は同じファイルを ffmpeg だけ差し替えて再生成する。

これは 「素材生成 + 編集」が連続体になる ということだ。普通は素材生成 (DALL-E / Midjourney) と編集 (Premiere / DaVinci) は別ツールで、間にダウンロード → アップロード → タイムライン配置という移動がある。kotonia-cli はそれを全部 shell の中の 1 つの会話に圧縮する。

ffmpeg は世界中の動画 / 音声処理のスイスアーミーナイフで、コマンド体系はテキスト 100%、agent と相性が圧倒的に良い。「agent が ffmpeg を自然言語からドライブする」体験を default で乗せた CLI は (繰り返しになるが) 他で見たことがない。

5. どう作ったか

中身は (Rust で書いた CLI agent としては) シンプルだ。infrastructure/execution/host.rs が bash 実行を扱い、application/kotonia_agent/ 配下に agent loop / 承認 / worktree / parser / history / provider が並ぶ。

  • エージェント・ループ: delimiter ベース。LLM が <<<BASH>>>...<<<END_BASH>>><<<FINAL_ANSWER>>>...<<<END_FINAL_ANSWER>>> を吐く。native tool calling は将来対応 (V4-Flash 側 chat_template 整備待ち、V4-Flash を自宅で動かす経緯は 16 コアが久しぶりに全力で唸った日 に書いた) だが、delimiter のほうが任意の OpenAI 互換 backend に動作する。
  • 承認モデル: 3 段階セレクタブル。auto は無人運転、allowlist は read-only / build / test 系を自動許可・destructive (rm -rf / git push --force) は承認待ち、all は全コマンド承認。卵層 (技術者の卵層 = 専門学校生 / 副業エンジニア / 駆け出し) には all、本人には auto といった具合に幅を広げる。
  • Worktree デフォルト: git worktree add /tmp/kotonia-agent-<uuid> で隔離。事故っても元の checkout は無傷。--in-place で素直に cwd 編集も可。
  • Session JSONL: ~/.kotonia/sessions/<id>.jsonl にメタデータ + 全メッセージ + bash 観測 + turn マーカーを書き出し。--resume <id> で完全復元。長時間セッションでコンテキストが context cap に当たる前に、別プロセスで再開できる。

そして本記事の主役パート、/api/v1 の B1 統合:

# 鍵を export するだけで、agent の system prompt にこの 4 endpoint が
# 自動公開される。zero code change for the user.
export KOTONIA_API_KEY=kotonia_xxxx
kotonia-cli "可愛い美少女の画像を作って ./bishoujo.png に保存して"

実装は 30 行。kotonia 側の /api/v1/{images,audio,videos}/generations への curl 呼び出しの shape を、system prompt の末尾にカリキュラム的に追記しているだけ。tool calling の native 化 (B2 案) は 200 行コースだったが、bash 経由なら 30 行で同じ capability density に届く。agent が jq | base64 -d > ./out.png を組み立てるのは LLM の標準レパートリーで、その能力を信じるとこの軽さで済む。

画像生成の中身 (HiDream-O1-Image を 8bit fp で resident、写実系 LoRA + 3-stage caption で品質を引き上げた経緯) は 3-stage caption で under-fit 天井を破った話 に書いた。冒頭の bishoujo.png の品質はここの基盤が効いている。

(リポジトリは現状クローズドだが、CLI 部分だけ独立 OSS として切り出す予定。準備が整ったら別途案内する)

6. 戦略的含意 ─ 1 人開発が Anthropic / OpenAI に勝てる領域はここしかない

最初に書いた通り、Code agent の市場は Claude Code / OpenAI Codex が圧倒している。モデル性能で勝負したら 1 人開発に勝ち目はない。インフラ規模での価格勝負も無理 (DeepSeek API は $0.27/M tokens 級、ローカル GPU で個人ホストすると同じ呼び出しが 200 倍のコストになる)。「ローカルで V4-Flash を動かせたから自前 API を出せばいい」というのは罠で、Fable 5 reviewer に同じ戦略を敵対的にレビューさせて 4 つの穴を突かれた話を別記事 (AI に「技術記事を書くな」と言われた話) に書いた。

では何で戦うか。「言語優位ユーザーへのロスレス UX」 は、フロンティアラボが構造的に優先度を上げにくい領域だ。理由は単純で、彼らの主要な収入源 (B2B 開発者 API) は 既存のコード IDE / GUI を使っている前提のユーザー に向いている。Cursor 経由で Claude を使う、VSCode 拡張経由で GPT を使う、ブラウザの ChatGPT で画像を使う。GUI が外側にある前提だから、CLI で言語完結する体験を磨くインセンティブが薄い。

逆に 1 人開発の側からは、ここを 「CLI で完結する creative agent」 として磨き込める。差別化軸は:

  1. CLI completeness: GUI を 1 度も開かなくていい
  2. Generative tool bundle: 画像 / 音声 / 動画が default、追加のサインアップ不要 (1 鍵で全部)
  3. ffmpeg multiplier: 素材生成 + 編集が同じ shell 内の連続体
  4. 言語優位プレイヤー fit: 視覚モードに脳を譲り渡さない、テキストだけで完結
  5. ローカル shell の自由: agent は cargo build / git fetch / curl / ffmpeg / 何でも触れる、E2B 系の隔離サンドボックスにない自由度

このセットを 1 個の CLI として届ければ、Claude Code を使っている言語優位の人 (= ターミナルから出ない設計を選んでいる人 ≒ 母集団のかなりの割合) が、サムネや絵コンテのためにわざわざ別ツールを開く必要がなくなる

社会的にも意義がでかい、と本気で思っている。視覚モードに切り替えられず諦めていた多くの人の創造性が、テキストだけで視覚物に変換可能になる。

ちなみにこの「1 人開発が compound knowledge で立ち上がる」感覚は最近別の文脈でも記事にした (memory と git が agent 経由で初めて使われる側になった日)。今日 1 日で kotonia-cli が完成したのも、過去数ヶ月の memory / 設計判断 / 既存 /api/v1 の積み上げが agent 経由で初めて全部レバレッジされた、という同じ構造の続編だ。

7. 次にやること

  • /api/v1/chat/completions を kotonia 側に追加 — DeepSeek API 鍵を別途要求しなくても、kotonia 鍵 1 個で agent loop の LLM も含めて全部完結する。Gemma 4 26B Uncensored (爆速 + 高並列、Agentic Index は 11 と中庸だが汎用効率タスクは余裕でこなす) を OpenAI 互換多重化する想定。
  • ffmpeg のツール例を system prompt に追加 — agent が「動画にフェード入れて」「字幕焼いて」「BGM ミックスして」を 1 行プロンプトで通せる prompt example を pre-load。
  • 配布フォーム — 今はリポからビルドだけ、cargo install 経路と GitHub Releases のバイナリ配布は順次。Linux x86_64 から開始、macOS / Windows は CI を整えてから。
  • /chat/studio への逆輸入 — CLI で磨いた agent ループを Web 側にも反映、ターミナル派 / Web 派どちらの言語優位プレイヤーにも届ける。Web 側で同じ「ロスレス UX」を実装する経験は、以前音声 LLM レイテンシを 600ms → 22ms に圧縮した時 (voice-first-local-llm) の延長で考えている。「X-first」を選んだら全ての画面 / 階層をそれに合わせて削る、という設計原則は creative-cli にも同じく当てはまる。

bishoujo.png を 1 枚生成しただけの記事のように見えるかもしれないが、ここから先の半年は 「言語と視覚の相互変換コストをどこまでゼロに近づけられるか」 がそのまま 1 人開発のプロダクト戦略になる、という確信を今日 1 日で得た。

それを残しておきたかった。

Kotonia は音声AI、AIチャット、画像生成、チーム共有をひとつにまとめたAIワークスペースです。

試してみる