
編集が着地した。コードパネルはまさにそのハンクを映す。
承認された編集の前に取得し、承認を経ない編集のあとは編集自身のアンカーから再構成しています。
- 1編集が着地したら ± 差分モードへ切り替える
- 2ディスク上のファイルに対する +4 −1 を読む
- 3簡潔なツール行を辿る:読み取り、次に編集
- 4コンテキストが 200k の 13 % まで満ちるのを見る
Rovecode は Bun 上で動き、16 のプロバイダまたは OpenAI 互換の任意のエンドポイントと話し、すべてのツール呼び出しをリポジトリに触れる前に既定で拒否するポリシーに通します。AGPL-3.0 のもとで自由なソフトウェアです。

実際のフレーム:bun test の承認カード、+4 −1 の編集行、コンテキストは 200k の 13 %。固定クロックで sextant のペインタを通して描画。
ターミナルのためのコーディングエージェント。Bun 上の TypeScript、47 の移植パターン、すべてのツールの前に既定で拒否するポリシーを一つ。
rovecode を使うチーム
最初のお客様が掲載に同意するまでの仮の名前です。
02コックピット
git ステータス付きのファイル、ハイライト帯と ± 差分付きのコード、簡潔なツール行、計画、使用量、そしてマスコット。固定クロックのもと sextant のペインタでヘッドレスに描画されます。TUI が描くのと同じコード経路であって、モックアップではありません。
you · sent
add a state check to the oauth callback and run the auth tests
◆ rovecode · needs you
Let me look at the auth flow first.
◆ needs your permissionbash bun test tests/auth.test.ts
allowalwaysdeny↵ confirm · ↔ choose · esc deny
メッセージパネル · 一行ずつ
すべてのツール呼び出しは一行です。動詞、ファイル、そして何が変わったか。編集は +4 −1 として着地しました。シェルコマンドは三つの答えを持つ一枚のカードの後ろで待ちます。Esc は拒否で、答えはセッションの残りのあいだ記憶されます。
子エージェントは尋ねられません。禁止された argv はカードにすら届きません。
03問題 → 解決
キーボードの前で言うであろう言葉で述べ、仕組みとその限界で答えます。どの帯も本物のフレームの切り抜きか、本物の設定ファイルです。
{"default": "kaesra/zai-org/glm-5.3-flash","providers": {"kaesra": {"baseUrl": "https://api.kaesra.tech/v1","protocol": "openai","keyEnv": "KAESRA_API_KEY"},
01問題
どのエージェントも一社の API と一枚の価格ページに溶接されて届く。
rovecode のすること
一つの StreamFn の継ぎ目と、生きたプロバイダレジストリ。16 の名前付きプロバイダ、または providers.json にある OpenAI・Anthropic 互換の任意のエンドポイント。別のターミナルで追加したプロバイダが次の呼び出しから使われます。役割ごとのフォールバック連鎖は 429 や 5xx で先へ進みます。
rovecode provider add homelab http://10.0.0.7:8000/v1 --no-key
02問題
エージェントが編集している最中に、チャットログがその当のファイルを画面外へ押し流す。
rovecode のすること
パネル式のコックピット:ファイル、コード、メッセージ、計画、使用量、そして雲のマスコット。メッセージパネルは各ツール呼び出しを一行に収め、コードパネルは着地した一つのハンクだけを見せます。
files · code · messages · plan · usage · rovecode
03問題
モデルが rm -rf を求め、誰も間に合って止めなかったのでハーネスが実行してしまう。
rovecode のすること
まず既定で拒否するワイルドカード規則、次に禁止が実行にも人間にも届かない execpolicy の判定、そして訂正済みの引数に対する承認カード。四層を重ねますが、どれもサンドボックスのふりはしません。
rules → execpolicy → approval → runtime denylist + cwd lock
04問題
40 ターン目でおかしくなり、戻る道が新しい会話しかない。
rovecode のすること
sha256 のハッシュ連鎖を持つ追記専用の JSONL セッションツリー。/rewind はターン選択を開き、任意のターンから分岐し、そのターンの全文をエディタに埋めます。shadow-git のチェックポイントはあなたの .git に触れずに 3 つのモードで復元します。
/rewind /checkpoints /restore rovecode trace <session-id>04機能
Rovecode は pi、opencode、codex、cline、aider、gemini-cli などから裏づけのあるパターンを移植します。移植が着地するのは、作業前に書かれた基準に照らして新しい文脈の批評者が検証したあとだけです。
表層
100×30 以上のトゥルーカラー TTY に 6 パネル:git ステータス付きのファイル、ハイライト帯と ± 差分付きのコード、簡潔なツール行、計画、使用量、マスコット。3 つのパレット、/theme は実行中に切り替え、--classic は pi-tui のチャットを保ちます。
rovecode · ROVECODE_TUI=sextant|classic · /theme night|ember|contrast
プロバイダ
16 の組み込みに加え、providers.json に登録したものすべて。呼び出しごとに生きたスナップショットからプロバイダを解決します。別のターミナルで追加すれば、動作中のコックピットが次の呼び出しで使います。再起動は不要です。
rovecode provider add|list|test · rovecode model use provider/model{"default": "kaesra/zai-org/glm-5.3-flash","providers": {"kaesra": {"baseUrl": "https://api.kaesra.tech/v1","protocol": "openai","keyEnv": "KAESRA_API_KEY"},"homelab": {"baseUrl": "http://10.0.0.7:8000/v1","protocol": "openai","noKey": true,"models": ["qwen3-coder-30b"]}}}
文脈
.rovecode/mcp.json からの stdio と HTTP サーバ。2 つのレジストリツールによる遅延開示で、待機中のサーバはほぼゼロトークンです。
mcp_list · mcp_call安全
すべてのツール呼び出しは実行前に四段を登ります。禁止された argv はどのフックが見るより先に拒否されます。--yolo は確認を飛ばしますが、拒否規則は決して飛ばしません。
rules → execpolicy → approval → runtime
記憶
sha256 のハッシュ連鎖を持つ追記専用 JSONL。/rewind で分岐、/resume で再開、shadow-git のチェックポイントは 3 つのモードで復元し、あなたの .git には決して触れません。
/rewind · /checkpoints · /restorestdio 上の Agent Client Protocol v1、公式 SDK。
rovecode acpセッション、一本の RunEvent ストリーム、/doc の OpenAPI。ポート 4100、ループバックのみ。
rovecode serve上限付き FIFO の子セッション、既定で同時 3 つ。メモは親の次のターンに届きます。
/tasks.rovecode/hooks.ts に型付きのフックが 9 つ、それぞれ 5 秒で打ち切り。pre_tool は拒否しかできません。
pre_tool · approval · on_event実行ごとに一本のトレース:run ⊃ turn ⊃ tool にトークン、レイテンシ、費用。エンドポイント未設定ならエクスポータもなし。
ROVECODE_OTEL_ENDPOINT05セキュリティと運用
READMEが述べるとおりの安全モデルを、限界も含めて示します。各層は何を判断し、どこで止まるかを名乗ります。どれもサンドボックスではありません。
層
判断すること
限界
層 01
01rulesツールとargvに対する、既定で拒否のワイルドカード規則。禁止パターンは何かが動く前に拒否されます。
限界意図ではなくパターンの照合です。危険なコマンドの見慣れない書き方は次の層へ渡ります。
層 02
02execpolicy解析済みargvへの判定:allow、prompt、forbidden。forbiddenは実行にも人間にも届きません。
限界読むのはコマンドであって、それが走るシェルではありません。エイリアスやスクリプトの中身は見通せません。
層 03
03approval修正後の引数について、許可・常に許可・拒否の1枚のカード。回答はセッション単位でキャッシュされ、子エージェントは尋ねられません。
限界人間の判断です。--yolo はこの段を飛ばしますが、その上の拒否規則は決して飛ばしません。
層 04
04runtime実行時のbash拒否リストとcwdロック。Escは実行中の呼び出しを、Windowsではそのプロセスツリー全体を終了させます。
限界隔離ではなく委譲です。信頼できない作業はコンテナかmicroVMに置いてください。
運用とデータ
01
あなたのマシンか CI でソースから動きます。アカウントは任意です。料金ページのプランを開くだけで、CLI を閉ざすことはありません。要件は Bun ≥ 1.3.14 のみです。
02
外向きの通信は、設定したプロバイダ、あなたが列挙したMCPサーバー、そしてモデルが求めたときのweb_fetchだけです。料金カタログはオフラインのスナップショットで、自動更新はありません。
03
ROVECODE_OTEL_ENDPOINT を設定するまでOpenTelemetryの送信は行われません。設定しても運ぶのはid・サイズ・結果だけで、プロンプトや引数や出力は決して含みません。
04
セッションはsha256ハッシュチェーン付きの追記専用JSONLです。すべての実行が1本のトレース(run ⊃ turn ⊃ tool)を出力します。中断したものも含みます。
05
Windowsが第一です。開発とリリースゲートはWindows 11で走ります。POSIXパスはテスト済みですが、LinuxとmacOSはまだCIで検証されていません。
06
AGPL-3.0-only。自由に改変・再配布できます。改変したビルドをネットワークサービスとして動かす場合、その利用者にソースを提供する義務があります。
06ターミナルから
固定クロックのもと sextant のペインタでヘッドレスに描画されています。TUI が描くのと同じコード経路であって、モックアップではありません。フレームに触れると平らになり、行に触れるとその印が灯ります。

承認された編集の前に取得し、承認を経ない編集のあとは編集自身のアンカーから再構成しています。

承認は訂正済みの引数に対して解決され、セッション単位で記憶されます。子エージェントは尋ねられません。

PASS と FAIL のチップは、ツール自身のヘッダ行から終了コードを読みます。

子セッションは唯一のエージェントループを共有します。TUI を終えると生きている子はすべて取り消されます。
07クイックスタート
プロバイダ未設定なら、単発の実行は台本付きのモックプロバイダを使います。パッケージングのスモークテストも同じ仕組みです。
CLI の入口は bun が実行する TypeScript で、node では動きません。bun link が rovecode を PATH に置きます。
$ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun linkrovecode setup が案内します。プロバイダを選び、鍵を伏せて貼り、小さなテスト呼び出しを一度、完了。あるいは rovecode auth set で鍵を直接保存するか、ROVECODE_BASE_URL を OpenAI 互換の任意のエンドポイントに向けます。
$ rovecode setup$ rovecode auth set anthropic素の rovecode は sextant の画面を開きます。引用符付きのプロンプトは単発の実行で、--output json はちょうど一つの結果オブジェクトを返します。
$ rovecode "fix the failing test"
08プロバイダ
保存した資格情報は <NAME>_API_KEY 環境変数に勝ち、明示した ROVECODE_BASE_URL / ROVECODE_API_KEY の組は両方に勝ちます。
ホスト型 api
ローカルランタイム
● ローカルランタイムに鍵は不要 · rovecode auth set <名前> は鍵を ~/.rovecode/credentials.json に保存します。ターミナルで尋ねられ、決して表示されません。
任意のエンドポイント · 実行中
$ rovecode provider add homelab http://10.0.0.7:8000/v1 --no-key{"default": "kaesra/zai-org/glm-5.3-flash","providers": {"kaesra": {"baseUrl": "https://api.kaesra.tech/v1","protocol": "openai","keyEnv": "KAESRA_API_KEY"},"homelab": {"baseUrl": "http://10.0.0.7:8000/v1","protocol": "openai","noKey": true,"models": ["qwen3-coder-30b"]}}}
09彼らの言葉で
レビューがターミナルに移り、承認カードが会話そのものになりました。やり取りは三分の一で、出荷量は変わりません。
Aylin Demirci
Head of Platform · Northwind Robotics
既定拒否のポリシーがあったからセキュリティが承認しました。すべてのツール呼び出しが、私たちがすでに読んでいるログの一行です。
Marcus Oyelaran
Staff Engineer · Harbourline Payments
12 人、ローカルモデル、間にベンダーなし。顧客のコードが動くことを許された場所で動きます。
Inés Ferrer
創業者 · Meridian Studio
ページのために書いた、架空のチームによる例示の引用です。公開前に実際のものと入れ替えます。
10料金
どのプランも同じエージェントを、同じ既定拒否のポリシーの背後で動かします。違うのは、どれだけ動かすか、誰と動かすかです。
自分のリポジトリでエージェントを試すために。
$0/ 月
毎日これで出荷する一人のエンジニアのために。
$20/ 月
一週間をこの中で過ごすエンジニアのために。
$200/ 月
クレジット、知識、ポリシーを共有するチームのために。
$80/ 月
最低 $80 · フルシート 1 つあたり $40 / 月
11よくある質問
シェルをエージェントに預ける前に人が尋ねる七つの問い。どの答えも仕組みと、それがどこで止まるかを述べます。
ここにあるものはすべて README.md の「安全モデル」「既知の制限」「可観測性」「ライセンスと表示」から取っています。README が限界を認めるところでは、このページも認めます。
12rovecode を手に入れる
$ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun link