<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>CLI on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/cli/</link>
        <description>Recent content in CLI on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sat, 16 May 2026 22:41:41 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/cli/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>DeepSeek-TUI：DeepSeek V4をターミナル上のコーディングAgentにする</title>
        <link>https://knightli.com/ja/2026/05/16/deepseek-tui-terminal-coding-agent/</link>
        <pubDate>Sat, 16 May 2026 22:41:41 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/16/deepseek-tui-terminal-coding-agent/</guid>
        <description>&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Hmbown/DeepSeek-TUI&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DeepSeek-TUI&lt;/a&gt; は、DeepSeek V4をターミナル開発フローに接続するオープンソースプロジェクトです。単なるチャットの外枠ではありません。Claude CodeやCodex CLIに近い「コマンドラインのコーディングAgent」であり、ファイルを読み、コードを編集し、コマンドを実行し、ツールを呼び出し、TUI上でタスクを継続的に進められます。&lt;/p&gt;
&lt;p&gt;すでにエディタとターミナルを行き来している開発者にとって、この種のツールの価値は分かりやすいものです。コードをWebチャットへ何度もコピーする必要がなく、プロジェクト構造を毎回手で説明する必要もありません。タスクを渡せば、現在のワークスペースからコンテキストを読み取り、手順を計画し、変更を実行し、結果をレビュー用に返してくれます。&lt;/p&gt;
&lt;h2 id=&#34;deepseekの利用入口を補う&#34;&gt;DeepSeekの利用入口を補う
&lt;/h2&gt;&lt;p&gt;DeepSeekモデル自体は強い推論能力とコード能力を持っています。ただし、その能力を実際の開発フローに落とし込むには、工程化された外側のレイヤーが必要です。&lt;/p&gt;
&lt;p&gt;Webチャットは質問には向いていますが、長時間のプロジェクト編集には向いていません。APIはシステム連携には向いていますが、個人開発者はツール呼び出し、コンテキスト管理、ファイル操作、権限制御を自分で組む必要があります。DeepSeek-TUIが補おうとしているのはこの層です。DeepSeek V4を、ターミナル内で働けるAgentとして包みます。&lt;/p&gt;
&lt;p&gt;プロジェクト説明によると、主な機能は次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ターミナルTUI;&lt;/li&gt;
&lt;li&gt;DeepSeek V4向けの会話とタスク実行;&lt;/li&gt;
&lt;li&gt;ツール呼び出しとファイル操作;&lt;/li&gt;
&lt;li&gt;1Mコンテキスト対応;&lt;/li&gt;
&lt;li&gt;Autoモード;&lt;/li&gt;
&lt;li&gt;サブAgent;&lt;/li&gt;
&lt;li&gt;サンドボックス実行;&lt;/li&gt;
&lt;li&gt;永続タスクキュー。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの機能の目的は、モデルの返答をより人間らしくすることではありません。モデルを開発現場に入りやすくすることです。&lt;/p&gt;
&lt;h2 id=&#34;長いタスクには純粋なcliよりtuiが向いている&#34;&gt;長いタスクには純粋なCLIよりTUIが向いている
&lt;/h2&gt;&lt;p&gt;多くのAI CLIツールは、最初はプレーンテキストの対話から始まります。プロンプトを入力し、出力を待ち、コマンドをコピーしたり追加コンテキストを渡したりする方式です。これは単純ですが、タスクが長くなるとすぐ混乱します。&lt;/p&gt;
&lt;p&gt;TUIの利点は、会話、ファイル、実行結果、タスク状態をより安定した画面に置けることです。コーディングAgentではこれが重要です。1つのコードタスクは、単なる一問一答ではないからです。多くの場合、次の流れを含みます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;プロジェクト構造を理解する。&lt;/li&gt;
&lt;li&gt;関連ファイルを探す。&lt;/li&gt;
&lt;li&gt;コードを変更する。&lt;/li&gt;
&lt;li&gt;テストやコマンドを実行する。&lt;/li&gt;
&lt;li&gt;エラーに基づいて修正を続ける。&lt;/li&gt;
&lt;li&gt;変更内容をまとめる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;画面がログの羅列だけだと、ユーザーはAgentが今どこまで進んだのかを判断しにくくなります。TUIは少なくとも、観察し、必要なら引き継ぐための入口を提供します。&lt;/p&gt;
&lt;h2 id=&#34;autoモードは境界が明確なタスクに向く&#34;&gt;Autoモードは境界が明確なタスクに向く
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUIが言及しているAutoモードは、境界が比較的明確な作業に向いています。たとえば小さなバグ修正、スクリプト追加、設定変更、文書整理、局所的な機能実装です。&lt;/p&gt;
&lt;p&gt;こうしたタスクには共通点があります。目標が明確で、確認方法も明確で、影響範囲が制御できます。Agentは自分でファイルを調べ、編集し、コマンドを実行し、結果をユーザー確認に戻せます。&lt;/p&gt;
&lt;p&gt;ただし、Autoモードは無制限の権限ではありません。実際のプロジェクトでは、ファイル削除、大規模リファクタリング、データベース移行、デプロイコマンドには明確な確認が必要です。コーディングAgentの効率は自動化から生まれますが、リスクも同じ場所から生まれます。コマンドを実行できるツールほど、サンドボックス、権限境界、人間によるレビューが必要です。&lt;/p&gt;
&lt;h2 id=&#34;サブagentの意味はタスク分割にある&#34;&gt;サブAgentの意味はタスク分割にある
&lt;/h2&gt;&lt;p&gt;サブAgentは新しい概念ではありませんが、コード作業では役に立ちます。&lt;/p&gt;
&lt;p&gt;少し複雑なタスクでは、複数の種類の作業が同時に必要になります。コードを読む役、実装を変更する役、テストを確認する役、ドキュメントを整理する役です。従来のマルチAgentシステムが派手に見えるだけで終わりがちなのは、実際のツールやワークスペースを持たず、会話の中で相談しているだけだからです。&lt;/p&gt;
&lt;p&gt;サブAgentがファイルシステム、コマンド実行、タスクキューと結びつけば、より現実的なタスク分割の仕組みになります。たとえば、あるサブAgentが依存関係を分析し、別のサブAgentが特定モジュールを変更し、メインAgentが結果を統合する、といった形です。これにより、1つのコンテキストに無関係な情報を詰め込みすぎる問題を減らせます。&lt;/p&gt;
&lt;p&gt;もちろん、サブAgentには追加コストもあります。token消費、複雑な状態、追跡しにくい責任境界です。そのため、中程度以上の複雑さを持つタスクに向いており、すべての小さな修正に必要なものではありません。&lt;/p&gt;
&lt;h2 id=&#34;1mコンテキストは万能ではないがプロジェクト理解には役立つ&#34;&gt;1Mコンテキストは万能ではないが、プロジェクト理解には役立つ
&lt;/h2&gt;&lt;p&gt;1Mコンテキストは大げさに聞こえますが、コーディングでは単なる宣伝文句ではありません。&lt;/p&gt;
&lt;p&gt;実際のコードベースのコンテキストは細かく分散しています。README、設定ファイル、型定義、テスト、呼び出しチェーン、過去の約束事、エラーログは、どれも1つの修正に影響します。長いコンテキストは、局所だけを見て手を動かす問題を減らし、モデルがより多くのプロジェクト制約を保持する助けになります。&lt;/p&gt;
&lt;p&gt;ただし、コンテキストが長いことは判断が正しいことと同義ではありません。コードタスクには依然として検索、選別、検証が必要です。プロジェクト全体をコンテキストに詰め込むことが、関連ファイルを正確に読むことより良いとは限りません。良いコーディングAgentは、長いコンテキストをバッファとして使うべきであり、エンジニアリング判断の代替にすべきではありません。&lt;/p&gt;
&lt;h2 id=&#34;向いているユーザー&#34;&gt;向いているユーザー
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUIは次のような人に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ターミナルでDeepSeekを使ってコード作業をしたい開発者。&lt;/li&gt;
&lt;li&gt;ツール呼び出しやファイル操作の枠組みを自分で作りたくない人。&lt;/li&gt;
&lt;li&gt;Claude CodeやCodex CLIに慣れており、DeepSeekモデルの入口も試したい人。&lt;/li&gt;
&lt;li&gt;Web上のコード断片ではなく、ローカルプロジェクトのコンテキストが必要な人。&lt;/li&gt;
&lt;li&gt;AIコーディングの流れをコマンドライン環境に入れたい人。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;たまに関数の書き方を聞くだけなら、Webチャットで十分です。モデルに直接プロジェクト変更へ参加してほしいなら、ターミナルAgentの意味が大きくなります。&lt;/p&gt;
&lt;h2 id=&#34;注意すべきリスク&#34;&gt;注意すべきリスク
&lt;/h2&gt;&lt;p&gt;この種のツールで特に注意すべきことは3つあります。&lt;/p&gt;
&lt;p&gt;1つ目は権限です。ツールがファイルを読み書きし、コマンドを実行できるなら、デフォルトでどこにアクセスできるのか、ファイルを削除できるのか、ネットワークに出られるのか、危険なコマンドに確認が必要なのかを把握する必要があります。&lt;/p&gt;
&lt;p&gt;2つ目はロールバックです。使う前にGitの作業ツリーをきれいにしておくと、Agentの変更を毎回 &lt;code&gt;git diff&lt;/code&gt; で明確に確認できます。未コミットの変更が大量にある状態で、Agentに自動編集させるべきではありません。&lt;/p&gt;
&lt;p&gt;3つ目は検証です。Agentがコードを書いたことは、タスク完了を意味しません。テスト、ビルド、lint、人間のreviewは残す必要があります。AIコーディングツールは進行を速めますが、最後のエンジニアリング確認を置き換えるものではありません。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;DeepSeek-TUIの意味は、また1つチャットクライアントが増えたことではありません。DeepSeek V4を、実際の開発作業に近いターミナル環境へ入れていることです。&lt;/p&gt;
&lt;p&gt;開発者にとって、モデル能力は最初の一歩にすぎません。本当に体験を左右するのは、プロジェクトを読めるか、安全にファイルを変更できるか、検証コマンドを実行できるか、長いタスクで状態を保てるか、ユーザーがいつでも引き継げるかです。&lt;/p&gt;
&lt;p&gt;DeepSeekを日常的なコード変更、プロジェクト読解、自動化された開発タスクに使いたいなら、DeepSeek-TUIは注目に値します。方向性も明確です。AIコーディングツールは「コードの質問に答える」段階から「プロジェクト実行に参加する」段階へ進んでいます。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>MCPを捨てますか？ CLI がエージェントのデフォルトのツール層になりつつある理由</title>
        <link>https://knightli.com/ja/2026/04/10/mcp-vs-cli-for-agents/</link>
        <pubDate>Fri, 10 Apr 2026 21:55:12 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/04/10/mcp-vs-cli-for-agents/</guid>
        <description>&lt;p&gt;過去 1 年間、エージェント ツールチェーンに関する議論は、次の 1 つの問題にますます集中してきました。&lt;/p&gt;
&lt;p&gt;MCP (モデル コンテキスト プロトコル) はツールの呼び出しを簡単にしますか? それとも、もともと単純だったものを複雑にしますか?&lt;/p&gt;
&lt;p&gt;CLI は、ほとんどの日常的な開発タスクにとって、より実用的なデフォルトになりつつあります。&lt;/p&gt;
&lt;h2 id=&#34;コストの違いは経験の問題ではなく桁違いの問題です&#34;&gt;コストの違いは「経験の問題」ではなく、桁違いの問題です
&lt;/h2&gt;&lt;p&gt;MCP に対する実際の最大のプレッシャーはトークンのオーバーヘッドです。&lt;/p&gt;
&lt;p&gt;一般的なシナリオでは、MCP は実際にタスクを実行する前に、多数のツール スキーマをロードする必要があります。 GitHub MCP サーバーを例に挙げると、初期化で数万のトークンが消費される可能性があります。長いタスクの場合、これはコンテキスト バジェットを直接圧迫します。&lt;/p&gt;
&lt;p&gt;コミュニティのベンチマークは、同じ結論を繰り返し示しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 回の MCP 呼び出しのコストは、通常、CLI の数倍から数十倍になります。&lt;/li&gt;
&lt;li&gt;失敗した再試行のコストも高くなります (接続の再構築とコンテキストの再ロード)。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これは「遅い」というギャップではなく、むしろ API 料金、レイテンシー、安定性の問題にまで拡大します。&lt;/p&gt;
&lt;h2 id=&#34;モデルが自然にcli-に精通している理由&#34;&gt;モデルが自然に「CLI に精通している」理由
&lt;/h2&gt;&lt;p&gt;見落とされがちな事実は、トレーニングの分布です。&lt;/p&gt;
&lt;p&gt;LLM は、トレーニング中にコマンド、出力、エラー レポート、スクリプト、マニュアル ページなどの大量の端末テキストを確認しました。言い換えれば、CLI 対話モードは本質的にモデルの「母国語入力」に近いものになります。&lt;/p&gt;
&lt;p&gt;それどころか、MCP の JSON-RPC とツール スキーマは、ここ 2 年間で大規模に登場したばかりの新しいパラダイムです。モデルは確かに学習できますが、親しみやすさと圧縮効率は通常、CLI などの歴史的コーパスほど良くありません。&lt;/p&gt;
&lt;p&gt;これは、その理由を何度も説明するものでもあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目標は同じですが、CLI 命令は短くなります&lt;/li&gt;
&lt;li&gt;出力は推論を直接続行するのにより適しています。&lt;/li&gt;
&lt;li&gt;エラー回復パスの安定性が向上&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;安全と隔離mcpにはまだ補講の余地があります&#34;&gt;安全と隔離：MCPにはまだ補講の余地があります
&lt;/h2&gt;&lt;p&gt;MCP がセキュリティを実現できないわけではありませんが、エコシステムはまだ初期段階にあります。&lt;/p&gt;
&lt;p&gt;現在の一般的な懸念事項は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ツール中毒&lt;/li&gt;
&lt;li&gt;サービス動作のドリフト (ラグプル)&lt;/li&gt;
&lt;li&gt;同名のツール「シャドウイング」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もちろん、CLI にもセキュリティの問題 (インジェクション、不正アクセス、パスのリスク) がありますが、そのプロセス モデル、権限の境界、監査リンクは数十年にわたるエンジニアリングの実践によって検証されています。本番環境では、この「予測可能性」が重要です。&lt;/p&gt;
&lt;h2 id=&#34;これはmcpが無価値であるという意味ではありません&#34;&gt;これはMCPが無価値であるという意味ではありません
&lt;/h2&gt;&lt;p&gt;私はMCPを放棄すべきではないと思います。&lt;/p&gt;
&lt;p&gt;より合理的な位置付けは次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CLI は実行層 (ローカル、低遅延、高頻度の呼び出し) を担当します。&lt;/li&gt;
&lt;li&gt;MCP は接続層 (リモート サービス ディスカバリ、統合認証、監査、マルチテナント) を担当します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一般に、ハイブリッド アーキテクチャ: &lt;code&gt;CLI + MCP Gateway&lt;/code&gt; とも呼ばれます。&lt;/p&gt;
&lt;p&gt;多数のリモート システムに接続し、統合された権限管理とコンプライアンス監査を実行する必要がある場合、MCP には依然として明白な価値があります。しかし、「エージェントが開発タスクを迅速に完了できるようにする」という点では、多くの場合、CLI ファーストの方が現在のモデルの機能の境界に沿っています。&lt;/p&gt;
&lt;p&gt;今日のエンジニアリングの現実では、CLI はエージェントの母国語に似ています。 MCP は、唯一の実行プロトコルではなく、接続プロトコルとして適しています。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
