jcode 徹底解説 — 高速・省メモリなRust製エージェントハーネス
最近、jcodeに関する投稿をXで見かけたので、実際にインストールして使ってみました。jcodeは「軽量・高速」というのが売りのAIコーディングエージェントです。この記事では、インストール手順や実際に使ってみた感想などを紹介します。
はじめに
jcode は、Rust で書かれた AI コーディングエージェント・ハーネスです。開発者は「The most RAM efficient harness(最も RAM 効率の良いハーネス)」を謳っており、公開ベンチマークではメモリ使用量・起動速度の両方で既存のエージェント環境(Claude Code, opencode, Cursor Agent, Codex CLI など)を大きく上回る結果が出ています。
ただし、こうした性能数値は実際の作業では体感しにくい面もあります。
本記事では性能だけでなく、内蔵メモリや Swarm などの機能面も含めて、公式ドキュメントと公開ベンチマークをもとに整理しました。実際にインストールして使った結果も合わせて書いています。
リポジトリ: https://github.com/1jehuang/jcode
jcode とは
jcode は、ターミナル上で動作する AI コーディングエージェントです。以下の特徴があります
- Rust 製
ネイティブバイナリで動作し、起動がミリ秒単位です - RAM 効率の高さ
1 セッションあたり約 28 MB(ローカル埋め込みオフ時)と省メモリです - TUI(Terminal UI)
高速な描画エンジンでサイドパネル、Mermaid 図、情報ウィジェットなどを表示します - メモリ(長期記憶)
セマンティックベクトルによる自動記憶・検索・統合を備えています - Swarm
複数エージェントの並列協調動作をネイティブサポートします - 自己改造(Self-Dev)
自分自身のソースコードを編集・ビルド・再読み込みできます - 多プロバイダ対応
Claude, OpenAI, Gemini, GitHub Copilot, Ollama, LM Studio など多数に対応します
なぜ今 jcode なのか
2025-2026 年にかけて、AI コーディングエージェントは多数のツールが登場し、選択肢が増えています。その中で jcode が注目されるきっかけは、公開ベンチマークの性能数値です:
| ツール | 言語 | RAM(1 session) | 起動速度 |
|---|---|---|---|
| jcode | Rust | 27.8 MB ※1 | 14.0 ms |
| opencode | Go | 371.5 MB | 1,035.9 ms |
| Claude Code | TypeScript | 386.6 MB | 3,436.9 ms |
| Codex CLI | TypeScript | 140.0 MB | 882.8 ms |
| Cursor Agent | TypeScript | 214.9 MB | 1,949.7 ms |
| GitHub Copilot CLI | TypeScript | 333.3 MB | 1,518.6 ms |
| pi(by Sentient) | — | 144.4 MB | 590.7 ms |
※1 ローカル埋め込みオフ時の値です(詳細は「メモリ使用量」を参照)。10 セッション並列時は jcode 約 117 MB に対し opencode 約 3.2 GB と 27 倍以上の差がつきます。

これらの数値は公式が公表しているもので、計測方法・バージョ・環境に依存します。あくまで参考値として見てください。実務での体感差がどの程度かは「ベンチマークの限界」で詳しく説明します。
インストール
インストール方法は OS ごとに分かれます
macOS / Linux
公式のインストールスクリプトです。最新リリースをダウンロードし、jcode を PATH に追加します:
curl -fsSL https://jcode.sh/install | bashmacOS(Homebrew)
Homebrew を使う場合は次の 2 コマンドです:
brew tap 1jehuang/jcode
brew install jcodeソースからビルド
ソースからビルドする場合は、リポジトリをクローンして cargo でビルドし、PATH にシンボリックリンクを作成します:
git clone https://github.com/1jehuang/jcode.git
cd jcode
cargo build --release
scripts/install_release.shアンインストール
アンインストールにも公式スクリプトが用意されています。何も指定せずに実行すると、バイナリとランチャーは削除されますが、設定・認証・セッションは残ります。再インストールすれば作業環境をそのまま引き継げるため、まずはこちらでよいと思います。
curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/uninstall.sh | bash -s -- --yes- 完全削除したい場合
--purgeを付けると、設定・認証・セッション・ログ・メモリまで全て削除されます。壊れたインストールからの復旧など、初期状態に戻したいときに使います - 削除対象を事前確認したい場合
--dry-runを付けると、何が削除されるかのプレビューのみ表示されます(実際には削除されません) - 削除される場所
実行中の jcode サーバは自動停止され、~/.local/bin/jcode(ランチャー)と~/.jcode/builds/(インストール済みバイナリ)が削除されます

インストール時に、ログイン項目と拡張機能へ「バックグラウンドでのアクティビティ」として登録されます。アンインストール時はこれも忘れずに削除してください(macOS)
完全削除のコマンドは以下になります
curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/uninstall.sh | bash -s -- --purge --yes
Homebrew で導入した場合は、このスクリプトではなく brew uninstall jcode を使います(tap の削除は brew untap 1jehuang/jcode)。
クイックスタート手順
プロバイダの設定
初回起動時はプロバイダのログインが必要です。サブスクリプションを契約しているサービスを選んでログインします:
# Claude サブスクリプション
jcode login --provider claude
# OpenAI / ChatGPT
jcode login --provider openai
# Google Gemini
jcode login --provider gemini
# GitHub Copilot
jcode login --provider copilot
# ローカルの Ollama
jcode login --provider ollama

プロバイダは Opencode GO を設定し、OPENCODE_GO_API_KEY に API キーを設定、モデルを指定したらそのまま動きました。主要プロバイダなら簡単そうです。
基本コマンド
ログインできたら、以下のコマンドで使い始められます:
# TUI を起動
jcode
# 非対話的にコマンド実行
jcode run "hello, what files are in this project?"
# セッションを名前指定で再開
jcode --resume fox
# バックグラウンドサーバとして起動し、別クライアントから接続
jcode serve
jcode connect
# 音声入力
jcode --voice
スラッシュコマンド
TUI 内で / をタイプすると、ファジーマッチでコマンドが候補表示されます。代表的なものをまとめます:
| コマンド | 機能 |
|---|---|
/model | モデル一覧 / 切り替え |
/effort | 推論努力量(reasoning effort)の表示・変更 |
/login /account | プロバイダログイン / アカウント切り替え |
/resume | セッションピッカーを開く |
/fork | セッションを新しいウィンドウにフォーク |
/transfer | コンテキストを圧縮して新セッションに引き継ぎ |
/compact /clear /rewind | 会話の圧縮・クリア・巻き戻し |
/todos | タスクリストをカード表示 |
/commit /commit-push | 論理コミットを作成 / プッシュ |
/review /test | ワンショットレビュー / テスト実行 |
/memory /swarm | メモリ / Swarm 機能のトグル |
/skills | スキル一覧 |
/usage /info | 使用量 / セッション情報 |
/config | 設定の表示・編集 |
/update /selfdev | 更新 / 自己開発モード |
プロバイダの詳細
jcode はサブスクリプション型の OAuth フローと、直接 API キーを使う方式の両方をサポートしています。
ネイティブプロバイダ
公式のログインフローが用意されているプロバイダは次のとおりです
- Claude(
jcode login --provider claude) - OpenAI / ChatGPT / Codex(
jcode login --provider openai) - Google Gemini(
jcode login --provider gemini) - GitHub Copilot(
jcode login --provider copilot) - Azure OpenAI(
jcode login --provider azure) - Alibaba Cloud Coding Plan(
jcode login --provider alibaba-coding-plan)
OpenAI 互換エンドポイント
OpenRouter, DeepSeek, Moonshot AI, Hugging Face, Nebius などは、プリセットプロファイルが用意されています:
# 名前付きプロファイルでログイン
jcode login --provider openrouter
jcode login --provider deepseek
# カスタムエンドポイント
printf '%s' "$MY_API_KEY" | jcode provider add my-api \
--base-url https://llm.example.com/v1 \
--model my-model-id \
--api-key-stdin \
--set-default
カスタムエンドポイントでは、API キーをシェルの履歴に残さずに設定できるのが便利です。
ローカルサーバ
ローカルで動かしているモデルサーバも利用できます:
# Ollama
jcode login --provider ollama
# LM Studio
jcode login --provider lmstudio
# 認証不要のローカル vLLM
jcode provider add local-vllm \
--base-url http://localhost:8000/v1 \
--model Qwen/Qwen3-Coder-30B-A3B-Instruct \
--no-api-key \
--set-default
ヘッドレス環境(SSH)
ブラウザが開けない SSH などの環境では、--no-browser フラグで認証 URL を表示し、別端末から完了できます:
jcode login --provider claude --no-browser主要機能
メモリ(Agent Memory)
jcode のメモリシステムは、人間のような記憶の仕組みを実装しています。各ターンをセマンティックベクトル(文章の意味を数値の配列で表したもの)に変換し、会話の中で関連する記憶を自動的に呼び戻します
- 自動埋め込み
各ターンの応答をセマンティックベクトルとして埋め込みます - グラフ検索
コサイン類似度(2 つのベクトルの向きの近さを表す指標)で関連メモリを効率的に検索します - 自動抽出
意味的遷移や K ターン経過、セッション終了時に記憶を抽出します - 明示的操作
エージェントが明示的に記憶の検索・保存を行うツールも利用できます - 自動統合
アンビエントモードで記憶の再編成・陳腐化チェック・競合解決を定期実行します
Swarm(マルチエージェント協調)
同一リポジトリ内で複数のエージェントを立ち上げると、サーバが自動的に管理します:
- ファイル変更通知
エージェント A が編集したファイルをエージェント B が読んでいる場合、サーバが通知します - エージェント間メッセージ
DM、ブロードキャスト、リポジトリ単位のグループ送信ができます - 自律スウォーム
エージェント自身がチームメイトを spawn し、Coordinator / Worker 構造で並列タスクを実行できます
UI と描画
- サイドパネル
ファイル内容のリアルタイム表示、Diff ビューア、Mermaid 図のインラインレンダリングに対応します - 高速 Mermaid レンダリング
独自の Rust 製レンダラで従来比 1800 倍 の速度を謳っています - 情報ウィジェット
画面のネガティブスペースのみを使って情報表示し、必要なければ自動退避します - 1000+ fps 描画
モニタのリフレッシュレート以上で描画可能で、ティアリングやフリッカがないとされています - カスタムスクロールバック
専用ターミナル handterm と組み合わせればスムーズな部分行スクロールも実現できます

実際に使ってみた印象: 一方で、UI はシンプルすぎるように感じました。また、思考(reasoning)部分がそのまま表示されてしまうのも気になりました。
ブラウザ自動化
Firefox Agent Bridge をバックエンドとしたブラウザ操作ツールが内蔵されています:
jcode browser status
jcode browser setupサポートするアクション:open, click, type, fill_form, select, screenshot, eval, scroll, upload, press など
自己開発(Self-Dev)
エージェントに「自己開発モードに入れ」と指示すると、自身のソースコードを編集・ビルド・テストし、バイナリを再読み込みして作業を継続します。Rust で書かれているため、リフレクションやスクリプティングではなく、実際のコンパイルを伴う自己改良ができるのが特徴です。
クロスハーネス・セッション再開
他のハーネスで中断したセッションを jcode で再開できます:
/resumeClaude Code, Codex CLI, opencode, pi のセッションからの復帰に対応しています。
設定ファイル
設定は ~/.jcode/config.toml に記載します。例えば以下のように書きます:
[provider]
default_provider = "openai"
[display]
centered = true
[features]
memory = true
swarm = true
[keybindings]
side_panel_toggle = "alt+m"
new_terminal = "alt+enter"スキルシステム
スキルは SKILL.md を含むディレクトリで、~/.jcode/skills/ にインストールします。opencode のカスタムスキルと互換性があり、Claude Code のプラグインディレクトリからも読み込み可能です。
スキルは起動時にはロードされず、会話のセマンティックベクトルとマッチしたときに自動的に注入されます(メモリと同様の仕組みです)。
MCP 対応
jcode は MCP(Model Context Protocol、LLM が外部ツールと連携するための標準プロトコル)サーバをサポートしています:
{
"mcpServers": {
"filesystem": {
"command": "/path/to/mcp-server",
"args": ["--root", "/workspace"],
"env": {}
}
}
}
設定ファイルは ~/.jcode/mcp.json(グローバル)と .jcode/mcp.json(プロジェクトローカル)です。Claude Code の設定ファイル(~/.claude.json, .mcp.json)も自動検出します。
他のエージェント環境との比較
メモリ使用量
| ツール | 1 session | 10 sessions | 1 session 追加ごと |
|---|---|---|---|
| jcode(埋め込みオフ) | 27.8 MB | 117.0 MB | ~9.9 MB |
| jcode | 167.1 MB | 260.8 MB | ~10.4 MB |
| pi | 144.4 MB | 833.0 MB | ~76.5 MB |
| Codex CLI | 140.0 MB | 334.8 MB | ~21.6 MB |
| opencode | 371.5 MB | 3,237.2 MB | ~318.4 MB |
| GitHub Copilot CLI | 333.3 MB | 1,756.5 MB | ~158.1 MB |
| Cursor Agent | 214.9 MB | 1,632.4 MB | ~157.5 MB |
| Claude Code | 386.6 MB | 2,300.6 MB | ~212.7 MB |
| Antigravity CLI | 243.7 MB | 1,021.2 MB | ~86.4 MB |
1 セッションでは 167 MB(埋め込みオフ時 27.8 MB)で、1 セッション追加あたり約 10 MB ずつ増えるのが特徴です。対して opencode は 1 セッション追加で約 318 MB 増えるため、並列セッション数が増えるほど差が開きます。
起動速度(Time to First Frame)
| ツール | 時間 | jcode 比 |
|---|---|---|
| jcode | 14.0 ms | baseline |
| Antigravity CLI | 383.5 ms | 27.4× 遅い |
| pi | 590.7 ms | 42.2× 遅い |
| Codex CLI | 882.8 ms | 63.1× 遅い |
| opencode | 1,035.9 ms | 74.0× 遅い |
| GitHub Copilot CLI | 1,518.6 ms | 108.5× 遅い |
| Cursor Agent | 1,949.7 ms | 139.3× 遅い |
| Claude Code | 3,436.9 ms | 245.5× 遅い |
ベンチマークの限界
上記の数値は印象的ですが、実際に使った体感インパクトは限定的です。ここは正直に述べておきます。
- 起動速度の差は実質無意味に近い
LLM 応答(数秒〜数十秒)が支配的で、起動 14 ms と 1,036 ms の差はその中に埋もれます。意味があるのは短命コマンドを大量に実行する場合や、TUI の描画・スクロールの滑らかさ(フリッカの有無)くらいです。実際に使ってみても、速度は結局モデル(LLM)の応答速度に支配されるため、ハーネスの高速性はあまり意味がないと実感しました - メモリ削減も 1〜3 セッション運用なら誤差
最近の開発機(16-64 GB)では 27 MB と 371 MB の差は体感できません。真価を発揮するのは 10 セッション以上の並列運用や、CI・低スペック機・サーバ・Termux など資源制約のある環境です - ベンダー自身の公表値
計測方法・バージョン・環境に依存するため、あくまで参考値として捉えるべきです
つまり、性能よりも機能面(内蔵メモリ、Swarm、ブラウザ自動化、自己開発、クロスハーネス再開)こそが真の差別化ポイントであり、性能数値は「できるだけ省資源にしたい」という要件がある場合の判断材料と考えるのが適切です。
アーキテクチャの違い
| 観点 | jcode | opencode | Claude Code |
|---|---|---|---|
| 言語 | Rust | Go | TypeScript(Node.js) |
| 配布形式 | 単一バイナリ | 単一バイナリ | npm パッケージ |
| メモリシステム | セマンティックベクトルグラフ | なし(外部連携が必要) | なし |
| Swarm | ネイティブ内蔵 | なし | なし |
| 自己開発 | ○(ソースコード改変) | 一部(設定・スキル) | なし |
| ブラウザ自動化 | 内蔵(Firefox) | MCP 経由 | MCP 経由 |
| Mermaid レンダリング | 独自 Rust レンダラ(1800x 高速) | なし | JavaScript ライブラリ |
| カスタムスキル | ○(opencode 互換) | ○ | Plugin 形式 |
| iOS アプリ | 開発中 | なし | なし |
opencode ユーザー視点での比較(現時点)
私は普段 opencode を利用しているため、opencode ユーザーが jcode を検討する際の観点で、現時点のメリット・デメリットを整理します。
- RAM 効率が高い
1 セッションで opencode の約 1/13(27.8 MB vs 371.5 MB)。10 セッション並列時は 3.2 GB → 117 MB と 27 倍以上の差があり、複数セッションを常時立ち上げる運用だと体感できます(ただし通常の 1〜3 セッション運用では実感しにくい。→ ベンチマークの限界 参照) - 起動が速い
約 14 ms で opencode の約 74 倍です。もっとも、実際の作業では LLM 側の応答速度が支配的なので、高速性のメリットがどの程度体感できるかは正直疑問なところもあります(→ ベンチマークの限界 参照) - メモリ(長期記憶)が内蔵
opencode では外部記憶を別途用意する必要がありますが、jcode はセマンティックベクトルグラフによる自動記憶・検索・統合が組み込まれています - Swarm ネイティブ
複数エージェントの並列協調が内蔵されています。opencode には相当する機能がありません - ブラウザ自動化内蔵
opencode は MCP 経由で別途用意する必要があります - opencode のセッションを再開できる
/resumeで opencode のセッションを引き継げるので、移行を試す際のハードルが低いです - スキル互換
opencode 形式のスキル(SKILL.md)をそのまま読み込めます。既存のスキル資産が流用可能です - 多アカウント切り替え
/accountで同一プロバイダの複数アカウントを簡単にスイッチできます
- 成熟度・安定性
opencode は十分に枯れて安定運用できますが、jcode は v0.9.x-dev 帯で開発が非常に速いです。破壊的変更や挙動変化のリスクを許容できるかが論点です。実際に試した印象もかなり荒削りで、OpenCode / Claude Code と比較すると使いにくく、UI のシンプルさや思考部分の表示など気になる点が多いです - エコシステムの厚み
opencode のプラグイン・サブエージェント・コミュニティ資産の厚みにはまだ及ばないです - 設定の再構築が必要
プロバイダ設定・MCP・スキルなど、現在 opencode で育てている設定を jcode 側に移行し直す手間がかかります - 外部記憶の形式
opencode では、例えば Markdown 形式などのプレーンテキストベースの外部記憶を選択でき、人間も直接参照・編集できます。一方 jcode の内蔵メモリはベクトルデータ中心で、外部から直接参照しにくいです - 知名度・情報量
日本語を含む解説記事やトラブルシュート情報がまだ少ないです
結論(現時点)
機能面(内蔵メモリ、Swarm、ブラウザ自動化など)では jcode に分があります。一方、性能面(RAM・起動速度)は「ベンチマークの限界」で述べたとおり実務での実感が限定的で、「今日から opencode を捨てて乗り換えるべきか」 と聞かれれば、現時点ではまだ opencode の安定運用実績とエコシステムに勝る面があります。
私の方針としては、しばらくは opencode を使いながら、jcode も試してみる というスタンスです。実際に使ってみた限りでは荒削りな面が目立ちましたが、進化が速いツールなので今後もウォッチしていく予定です。
まとめ
実際に使ってみた感想ですが、売りの省メモリ・高速起動については自分の使い方だとそこまでメリットがないなという印象です。セッションも同時に2〜3くらいしか開きませんし(これ以上開くと、人間の方が追いつかないので)、この程度ならメモリの圧迫があまり気になりません。
私の使っている環境(Mac)の搭載メモリが多いこともありますが、積極的に乗り換えるモチベーションは低いというのが現時点での感想です。
