Zed からの変更点
ForgeKairos が Zed と違う動きをする点を 1 か所にまとめる。名前の変更など見た目だけの違いは載せない。 詳しくは各節のリンク先を見る。
言語
- UI を他の言語で表示できる (まず英語と日本語)。ソースは英語の原文のままで、訳は
locales/の gettext の PO ファイルに置く。言語はui_languageで選び、再起動なしで切り替わる。アクションの説明と設定の スキーマも訳す。(表示言語と翻訳) - ビルドし直さずに訳を試したり足したりできる。リモートサーバーの文もクライアントの言語で出る。
通信とプライバシー
- AI の機能が始める外部への通信は既定で拒否し、ホストごとに許可する (設定 → ネットワーク)。リダイレクト は 1 hop ずつ確かめ、同意の確認からホストを足せる。(外部通信の統制)
- ACP のエージェント、MCP サーバー、エージェントを入れる npm には loopback のプロキシを渡し、同じ許可 リストで確かめる。SSH リモートでも同じ。
- Zed 社へは何も送らない: テレメトリー、クラッシュレポート、Zed のホスト型の編集予測は使わず、 コラボレーション (通話・画面共有・LiveKit) はビルドに含めない。
- 更新の確認はこのリポジトリの GitHub Releases だけに行い、自動更新は既定でオフ。 (インストールと更新)
- 言語サーバーや Copilot が開かせるリンクは先に確認を出し、
httpとhttpsだけを開く。
AI
- AI の機能はすべて、有効にするまでオフ (
agent.enabled)。既定のモデルは決めず、動いているローカル LLM が選ばれる。(AI) - クラウドのプロバイダーは、入力が保存・学習に使われうるという警告を受け入れてから使える。自分で足した プロバイダーは設定で編集・削除できる。
- Claude Code の CLI をエージェントパネルのタブで動かし、ForgeKairos を IDE として繋げる (loopback の IDE サーバー。ハイライト・注釈・解説ツアー・定義・参照・シンボル検索のツール付き)。
- エージェントのコマンドはサンドボックスの中で動く。SSH リモートでも同じ (Linux はネットワーク名前空間と slirp4netns)。外で動かすのはユーザーの明示の選択だけで、エージェントからは求められない。
- ツールの権限に、別のモデルが安全かを判定する「AI が判定」のモードと、「編集のみ」のプロファイルを足した。
- エージェントがプロジェクトのフォルダーに書き込むと、そのフォルダー自身のコード (フォーマッター、 リンター、ビルドスクリプト) は、ユーザーが確かめて再開するまで止まる。
- プロジェクトの設定に書かれた MCP サーバー・言語サーバー・フォーマッターは、その内容をユーザーが承認する まで起動しない。
- 秘密のファイルとプロジェクトの外のファイルはエージェントに見せない。同じパスの別の綴りでも見せない。
- 大きな添付は予算の範囲でアウトラインにして送る。モデルの選択はお気に入り以外の群を畳む。信頼していない フォルダーではツールを外し、その理由を伝える。
- エージェントのスレッドをタブとして開き、分割したり、別のパネルや別のウィンドウに移したりできる。
ワークスペース
- タブやパネルを窓の外へドラッグすると、それだけの新しいウィンドウが開く。パネルはドックの間をドラッグで 移せる。
- 1 つのドックに 2 枚のパネルを並べて表示できる (既定は右にエージェントとブラウザー)。
- 内蔵ブラウザーのパネル (Microsoft Edge WebView2、Windows のみ)。タブはエディターやターミナルのペインと 行き来できる。
- VS Code に近い配置と既定値: プロジェクト・アウトライン・Git のパネルは左、エージェントは右、タイトル バーにメニュー、起動時にターミナルを開く、空白を表示、日本語のフォールバックフォント、ステータスバーに Vim モード・SSH リモート・整形のボタン。(設定の一覧)
- Windows のインストーラーはエクスプローラーの右クリックに「ForgeKairos で開く」を足す。
- 足りない言語サーバーやフォーマッターは、通知のボタンからデータフォルダーに入れられる。
C と C++
- 名前ベースのシンボル索引がコンパイル情報なしでプロジェクト全体を受け持ち、定義へ移動とシンボル検索で 言語サーバーを補う。(C と C++ のコードの移動)
- 呼び出し元と呼び出し先を見る呼び出しグラフのパネル。
- ホバーに型の中身 (構造体のメンバー、列挙の定数、マクロの定義) を出す。
- clangd の索引の範囲・スレッド数・メモリを設定でき、メモリを使いすぎたら再起動できる。
- C と C++ は clang-format (Windows では同梱) の GNU 風のスタイルで整形する。
- 言語サーバーを再起動したとき、開いたままのバッファーを正しく開き直す。
ターミナル
- 変数・分岐・出力待ちを持つマクロ。タブの中でカードとして編集し、フォルダーで整理する。 (ターミナルのマクロとセッション)
- SSH と Telnet のクイック接続。パスワードは任意で OS の資格情報ストアに預ける。
- セッションのログと、ターミナルからのファイル転送 (SFTP、SCP、FTP)。
Git
- 履歴の書き換え (amend・fixup・squash・並べ替え・削除・メッセージの変更) をメニューとドラッグ & ドロップで行える コミットグラフ。できないときは始める前に断り、元に戻す道を出す。(Git)
- 選んだコミットからブランチを組むマージリクエストの箱と、2 つの ref の比較。
- 各操作の説明を画面に出し、Git の操作ガイドを持つ。
- 古い git (Ubuntu 18.04 のものなど) でも動き、失敗は Git パネルに出す。
Markdown と Mermaid
- 書式のアクションと書式バー、画像の挿入 (貼り付けを含む)、文字色・マーカー・文字サイズ、PDF への出力。 (Markdown と Mermaid)
- Mermaid の図をタブで編集する構造化エディターと、プレビューでのラベルの編集。
- プレビューは
<details>と<br>を描き、改行 1 つを改行として表示し、既定で全幅を使う。
CSV と TSV
- CSV と TSV のファイルを表計算ソフトのようなグリッドで開く: 編集、行と列の操作、フィルター、セルの色、 比較。編集はテキストバッファーへの編集なので、元に戻すと保存はいつもどおり。 (CSV と TSV のグリッド)
リモート開発
- 静的リンクのリモートサーバーを同梱するので、glibc の古い Linux (Ubuntu 18.04 で確認) でもダウンロード なしで使える。(リモート開発)
- 1 つのホストのプロジェクトはすべて 1 つのサーバープロセスが受け持ち、ネットワークの切断やスリープの後は 自動で繋ぎ直す。
- SSH のターミナルは切断や再起動をまたいで動き続け、繋ぎ直すと出力を流し直す。
- インターネットに出られないホストは、言語サーバーなどをこの PC 経由でダウンロードする。
- Linux のファイル監視は inotify の枠を他のプログラムに残し、残りはポーリングで見る。プロジェクトパネルに 手動の更新がある。