AIコーディング環境はエディタ側から出発したものが多い。VS Codeのフォークにチャットパネルを足す、という形が主流だ。Teraxcrynta/terax-ai・★9,153・Apache-2.0・2026-09-04時点)はそこを逆にして、ターミナルを中心に据え、その周りにエディタ・ファイルツリー・Git・Webプレビュー・AIサイドパネルを配置する。

そして「Lightweight (7MB)」を看板に掲げている。Electron製のAIエディタが数百MBある中で、Tauri 2 + Rust + React 19 という構成で2桁小さいと主張しているわけだ。

この記事では、その看板を含めた確かめられる主張だけを実機とGitHub APIで測った。公式dmgを落として展開し、署名と公証を確認し、実際に起動してプロセスとソケットを観測した。逆に「エディタの使い勝手」や「AIエージェントの賢さ」は主観になるので扱わない。

Teraxの配布サイズ実測。macOSのTerax.appは9.0MiBで本体バイナリは8.1MiB、dmgは6.7MB、Windowsインストーラは4.3MB、debは6.0MB。LinuxのAppImageだけ94.5MBで約14倍
GitHub Releases の v0.8.6 に添付されたアセットの実サイズと、dmgをマウントして du で測った Terax.app の実サイズ。
30秒でわかるTerax
・Tauri 2 + Rust + React 19。macOS版のアプリ実体は9.0MiBで公称に近い
・ただしLinux版AppImageだけ94.5MB(他形式の約14倍)
Developer ID署名+Apple公証済みspctl が accepted を返す)
・最新リリースは2026-07-27。mainはそこから97コミット先を走っている

AIコーディング環境の選び方全体はVibe Codingとは?AIコーディングの始め方・ツール比較・実践ワークフロー2026にまとめている。

日本語で「Terax」を検索すると別のブランドが出てくる
日本語圏の「TERAX(テラックス)」は、鉱石粉末をプリントした体温ケア素材のアパレルブランドとしての知名度が先にある(QVCや楽天で「TERAX HOT」「ここちケア遠赤スパッツ」等が販売されている)。DataForSEO で terax の月間検索ボリュームを引くと日本で320件あるが、12か月の推移は 170〜320 でリポジトリが作られた2026年4月より前から非ゼロであり、この数字をそのままOSSの需要と読むことはできない。直近3か月が 480 / 880 / 480 と持ち上がっているのはOSS側の伸びを反映している可能性が高いものの、両者は混在している。この記事が扱うのは crynta/terax-ai のほうである。

Teraxとは:ターミナルを中心に据えたAI開発環境(ADE)

READMEはTeraxを「terminal-first AI-native development environment (ADE)」と呼ぶ。構成要素は5つで、どれもターミナルタブと同じウィンドウに収まる。

領域 実装 主な機能
ターミナル xterm.js + WebGLレンダラ、portable-pty によるネイティブPTY ブロック単位表示、水平・垂直分割、複数タブのバックグラウンドストリーミング、zsh/bash/pwsh/fish/cmd
エディタ CodeMirror 6 TS/JS・Rust・Python・Go・C/C++・Java など、AI補完とhunk単位の差分適用、Vimモード、opt-inのLSP
ソース管理 独自パネル hunk単位のstage/unstage、レーン描画のコミットグラフ、コミット検索
ファイル 独自エクスプローラ ファジー検索、インラインリネーム、ディスク変更のライブ反映、AIパネルへの添付
Webプレビュー ネイティブ子webview ローカル開発サーバーの自動検出、外部URLのプレビュー

言語構成はGitHub API上で TypeScript 78.8% / Rust 19.2% だった。「Tauri 2 + Rust」を前面に出しているが、実装の重心はフロントエンド側にある——これは批判ではなく、Tauriアプリの一般的な姿である。Rust側の依存は src-tauri/Cargo.toml で28個と、Tauriアプリとしては素直な規模だ。

AI側はBYOK(自分のキーを持ち込む)方式で、OpenAI・Anthropic・Google・Groq・xAI・Cerebras・OpenRouter・DeepSeek・Mistral に加え、任意のOpenAI互換エンドポイントに向けられる。ローカル推論はLM Studio・MLX・Ollamaに対応する。エージェント側はプラン生成・サブエージェント・TERAX.md によるプロジェクトメモリ・承認ゲート付きのbash実行を持ち、さらにターミナル内にClaude Codeを起動して出力を読み、承認ゲート越しに追加指示を送るという「コーディングエージェントのオーケストレーション」まで載っている。

flowchart TB A["ターミナル(xterm.js+WebGL)
portable-pty でネイティブPTY"] --- B["コードエディタ
CodeMirror 6"] A --- C["ソース管理
コミットグラフ"] A --- D["Webプレビュー
子webview"] E["AIサイドパネル
BYOK + ローカル"] --> A E --> B F["TERAX.md
プロジェクトメモリ"] --> E E --> G["承認ゲート付き bash /
Claude Code の起動と監視"]

AI側はBYOK。ローカル推論にも向けられる

AI機能はすべて「自分のキーを持ち込む」前提で、ツール自体には課金が無い。READMEが挙げる接続先を整理すると次のようになる。

種別 接続先
クラウド(BYOK) OpenAI / Anthropic / Google(Gemini)/ Groq / xAI(Grok)/ Cerebras / OpenRouter / DeepSeek / Mistral
任意のエンドポイント OpenAI互換のAPIならすべて
ローカル・オフライン LM Studio / MLX / Ollama

エージェント側の機能は、プラン生成・サブエージェント・TERAX.md によるプロジェクトメモリ・ファイルの read / write / edit / multi-edit / grep / glob・承認ゲート付きのbash実行・バックグラウンドプロセス、と一通り揃っている。さらに「coding-agent orchestration」として、ターミナル内に Claude Code を起動して出力を読み、承認ゲート越しに追加の作業を投げるという機能が挙がっている。エディタ側にAIを埋め込むのではなく、ターミナルで動く既存のエージェントを外から操るという発想で、terminal-first を名乗るだけの一貫性はある。

Composer(プロンプト入力欄)は #handle でプロンプトスニペット、@path でファイルを差し込め、音声入力とエクスプローラからの添付にも対応する。テーマ関連では Kanagawa・Catppuccin・Rosé Pine・Everforest・Dracula・Solarized・Nord・Tokyo Night・GitHub・Xcode がエディタテーマとして同梱され、アプリのテーマとエディタのテーマは独立して設定できる。背景画像に不透明度とぼかしを掛ける設定まである。

ここから先は本記事の検証範囲外
上のAI機能・テーマ機能はREADMEの記載であって、動作を確認したものではない。加えて前述のとおり、ダウンロードできるのは v0.8.6(2026-07-27)のビルドで、READMEが説明しているのは97コミット先の main である。この一覧のどこまでが v0.8.6 に入っているかは、リリースノートからは判別できなかった。

「7〜8MB」はどこまで本当か

看板の数字を配布形式ごとに実測した。

配布形式 実測サイズ 公称「7-8 MB」との関係
Terax_0.8.6_x64-setup.exe(Windows) 4,335,936 B(4.3 MB) 下回る
Terax_0.8.6_x64_en-US.msi(Windows) 5,419,008 B(5.4 MB) 下回る
Terax_0.8.6_amd64.deb(Linux) 5,979,782 B(6.0 MB) 下回る
Terax_0.8.6_aarch64.dmg(macOS) 6,739,016 B(6.7 MB) 範囲内
Terax_0.8.6_x64.dmg(macOS) 7,091,052 B(7.1 MB) 範囲内
展開後の Terax.app 9.0 MiB(本体バイナリ 8,488,912 B) やや上回る
Terax_0.8.6_amd64.AppImage(Linux) 94,472,696 B(94.5 MB) 約14倍

ダウンロードサイズで見れば公称はおおむね正しく、AppImageだけが例外だ。AppImageはGTK/WebKitのランタイムを同梱するため必然的にこうなる。READMEのLinux注記も「.deb / .rpm はシステムのGTKスタックにリンクするので滑らかな傾向」と書いており、AppImageを第一候補にしていない。とはいえ「Lightweight (7MB)」だけ見てAppImageを取ると14倍の物を掴むので、Linuxユーザーは.deb.rpm、Arch なら yay -S terax-bin、NixOSなら公式flakeを選ぶのが素直だ。

なお Terax.appLSMinimumSystemVersion13.0 で、macOS 13 Ventura 以降が対象だった。

なぜ9MiBで収まるのか——アプリの中身を開けて確かめる

「Tauriだから小さい」で済ませずに、Terax.app の中身を見た。

ls Terax.app/Contents/
# CodeResources  Info.plist  MacOS  Resources  _CodeSignature

du -sh Terax.app/Contents/Resources    # → 876K(中身は icon.icns のみ)
ls Terax.app/Contents/Frameworks       # → 存在しない

otool -L Terax.app/Contents/MacOS/terax | grep WebKit
# → /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit

Frameworks/ ディレクトリが存在せず、OS標準の WebKit にリンクしている。Electron製アプリが数百MBになるのは Chromium と Node.js のランタイムを丸ごと同梱するからで、TeraxはそれをOSのWKWebViewで代替している。バンドルの実体は「バイナリ1本(8,488,912 B)+アイコン876KB+メタデータ」だけで、React 19 のフロントエンドはバイナリに埋め込まれている。

この構造は、サイズと引き換えに描画がOS側のWebKitバージョンに依存するという性質を持つ。READMEのLinux注記が「AppImageはFUSEが要る」「WaylandでレンダリングがおかしければWEBKIT_DISABLE_DMABUF_RENDERER=1を試す」「.deb/.rpmはシステムのGTKスタックにリンクするので滑らかな傾向」と細かく書いているのは、まさにこの依存の裏返しだ。macOSとWindowsでは環境差が出にくく、Linuxではディストリ差が出やすいというのが、この設計から素直に予想される姿になる。

署名と公証は通っている

配布物の素性も確認した。

codesign -dv /Volumes/Terax/Terax.app
# Identifier=app.crynta.terax
# TeamIdentifier=4FLB46KK27

spctl -a -vv /Volumes/Terax/Terax.app
# /Volumes/Terax/Terax.app: accepted
# source=Notarized Developer ID
# origin=Developer ID Application: Edgar Injighulyan (4FLB46KK27)

Apple の公証(Notarization)を通っており、Gatekeeper が accepted を返す。個人メンテナのOSSデスクトップアプリでここまでやっているものは多くない。右クリック→開くのような回避操作なしにインストールできる。Linux版のアセットには .sig(Tauri updater 用の署名)も付いている。

起動して測る:1プロセス・RSS 51MiB・ソケット0本

実際に起動して観測した。--version--help を付けてもGUIが起動する(Tauriアプリなのでフラグは解釈されない)ので、そのまま観測に使った。

# 起動して常駐プロセスを見る
./Terax.app/Contents/MacOS/terax &
ps -o rss=,etime= -p $(pgrep -f "Terax.app/Contents/MacOS/terax" | head -1)
#    52576   00:02:37     ← RSS 52,576 KB ≒ 51.3 MiB

# ソケットを数える(LISTEN も確立済みも)
for p in $(pgrep -f "Terax.app/Contents/MacOS/terax"); do
  lsof -nP -p $p -a -i 2>/dev/null | tail -n +2
done | wc -l
# → 0
観測項目 結果
常駐プロセス数 1(別プロセスのヘルパーは観測されず)
RSS 52,576 KB(約51.3 MiB)
LISTENソケット 0本
外向きの確立済み接続 0本(起動から約4分間)
「ソケット0本」は無通信の証明ではない
これは lsof による断続的な観測であり、2秒で閉じるような短命な接続は取りこぼす。「No telemetry」の主張と矛盾しない結果が出た、という以上のことは言えない。厳密に確かめるなら socket.connect 相当を包んで呼び出し自体を数えるか、パケットキャプチャが要る。またAIプロバイダのキーを設定して実際に使えば当然外部へ通信する——ここで観測したのはキー未設定・起動直後の状態である。

APIキーの保存先については、READMEが「keyring 経由でOSキーチェーンに書き、ディスクやlocalStorageには触れない」と説明している。src-tauri/Cargo.toml を確認すると keyring = { version = "3.6", ... } がプラットフォーム別に2箇所で宣言されており、機構としては実在する。ただし本記事は実際にキーを入れて保存先を追跡してはいないので、「その依存がある」ところまでが確認済みである。

配布物とリポジトリの間にある97コミットの差

導入判断でいちばん効くのがここだ。GitHub APIで測った現況は次のとおり。

Teraxの配布物とリポジトリの差。v0.8.6タグからmainまで97コミット、最終リリース7月27日から最終push9月2日まで39日、オープンなIssue 247とPull Request 189、起動直後のRSSは51MiB
2026-09-04 に gh api で取得。open_issues_count は 436 だが、これはPRを含む合計であり、Issue と PR に分けると 247 / 189 になる。
gh api "repos/crynta/terax-ai/compare/v0.8.6...main" --jq '{ahead:.ahead_by}'
# → {"ahead":97}
指標
最新リリース v0.8.6(2026-07-27)
最終push(main) 2026-09-02
タグ→mainのコミット差 97
main の package.json の version 0.8.6 のまま
オープンIssue 247
オープンPull Request 189

READMEが説明しているのは main の姿で、ダウンロードできるのは7月27日のビルドである。この39日の間に97コミットが入っており、main の package.json もバージョンを上げていないため、リリースノートから「何が入って何が入っていないか」を判別する手掛かりが薄い。README の機能一覧に惹かれて入れた機能が、v0.8.6 のバイナリには無い可能性がある。

オープンPRが189本というのも目を引く。open_issues_count の 436 をそのまま「Issue 436件」と書いてしまいがちだが、GitHubのこのフィールドはPRを含むので、内訳を分けないと実態を誤る。★9,153に対してPR 189本というのは、コントリビュートが集まっている一方でレビューが追いついていない状態を示している。

ダウンロード実績では Windows が半分を超える

導入層の実態も測れる。v0.8.6のインストーラ(updater用の .tar.gz.sig を除く)のダウンロード数は次のとおりだった。

プラットフォーム 内訳 合計 構成比
Windows x64-setup.exe 4,258 + msi 819 5,077 52.5%
macOS aarch64.dmg 2,063 + x64.dmg 266 2,329 24.1%
Linux deb 1,299 + AppImage 723 + rpm 236 2,258 23.4%

「ターミナル起点」という性格から想像するよりも、Windowsの比率が高い。READMEがWSLを「ラップされたサブプロセスではなく第一級のワークスペース環境」と位置づけ、Windowsのシェル検出順(pwsh.exepowershell.execmd.exe)まで書いているのは、この層に応えたものだろう。16リリース累計のインストーラ系ダウンロードは86,799件で、★9,153に対して十分な実利用がある。

ソースからビルドする場合の前提

配布バイナリが7月27日のものである以上、mainの機能を試したいならソースからビルドすることになる。READMEが挙げる前提は3つだ。

# 前提: Rust (stable) / Node 20+ / pnpm / 各プラットフォームの Tauri 前提条件
pnpm install
pnpm tauri dev     # 開発
pnpm tauri build   # 本番バンドル
前提 内容
Rust stable(rustup 経由)
Node.js 20以上、パッケージマネージャは pnpm
Tauri 前提条件 プラットフォームごと(macOSならXcode Command Line Tools、LinuxならWebKitGTK等)
ビルドの所要時間と容量は事前に見積もる
Rust側の依存は28個と少ないが、Tauri 2 のビルドは初回に依存クレートのコンパイルが走る。この記事ではリリースバイナリで検証を完結させたためソースビルドは行っていないので、所要時間とディスク使用量は未計測である。実行環境の空きが少ないマシンで pnpm tauri build を試すなら、node_modulestarget/ の両方が伸びる点を見込んでおきたい。

READMEの多言語対応は11言語(簡体字中国語・スペイン語・ドイツ語・フランス語・日本語・韓国語・ポルトガル語・ポーランド語・ロシア語・インドネシア語・ヒンディー語)で、日本語版 docs/readme/README.ja.md の最終更新コミットは英語版と同一(2026-08-05)だった。多言語READMEは翻訳だけ古くなるのが定番だが、ここは同じコミットで揃えて更新されている。日本語で読みたい場合、内容が古い心配は今のところない。

何を確かめられて、何を確かめていないか

主張 判定 根拠
「Lightweight (7MB)」 ○(AppImageを除く) dmg 6.7MB / app 9.0MiB / exe 4.3MB。AppImageのみ94.5MB
Developer ID署名・公証済み spctl -a -vv が accepted、source=Notarized Developer ID
「No telemetry」 起動後4分でソケット0本。無通信の証明ではない
「No account」 起動にサインインは不要(キー未設定でGUIが開く)
APIキーはOSキーチェーンへ keyring 3.6 の依存は実在。保存先の追跡は未実施
Tauri 2 + Rust + React 19 Cargo.tomltauri = "2"、言語構成 TS 78.8% / Rust 19.2%
README記載の全機能が使える ✕(要注意) 配布は7/27のv0.8.6、mainは97コミット先
エディタ・AIの使い勝手 未評価(主観になるため扱わない)

商用のAIエディタと比べたいならWindsurf IDE|CascadeエージェントでCursor・Copilotを超えたAI開発環境や、料金面での比較はcursor 料金(Cursor pricing)2026|Hobby・Pro・Pro+・Ultraの違いと選び方が近い。TeraxはBYOKなのでツール自体の課金が無く、払うのは自分が選んだモデルのAPI料金だけという点が構造的な違いになる。

入れる前に確認する3つ
Linuxなら `.deb` / `.rpm` / AUR / Nix を選ぶ(AppImageは14倍・FUSEも要る)
READMEの機能一覧を鵜呑みにしない。v0.8.6 は7/27のビルドで、mainは97コミット先
③macOS は 13.0 以降(LSMinimumSystemVersion)。署名・公証済みなので回避操作は不要

まとめ:Teraxの看板は概ね正しく、注意点は「配布物の鮮度」

Teraxの主張のうち、外形的に検証できるものはほぼ通った。7〜8MBという配布サイズは(AppImageを除いて)事実で、署名と公証も本物、起動時のメモリも51MiBと軽い。個人が中心のOSSデスクトップアプリとしては、配布のきちんとしている側にある。

引っかかるのは性能でも設計でもなく、配布物とリポジトリの距離だ。最後のリリースから39日で97コミット、バージョン番号は据え置き、オープンPRは189本。★9,153・累計86,799ダウンロードという勢いに対して、リリースの刻みが追いついていない。READMEを読んで期待した機能が、いま落とせるビルドに入っているとは限らない——これは記事を書く側にとっても、読者が導入を決めるときにも、いちばん見落としやすい差である。

なお本記事はアプリを起動して外形を測っただけで、エディタの書き味やAIエージェントの実力は評価していない。そこは実際に自分のワークフローで数日使ってみるほかない領域だと考えている。

参照ソース