jj を、
ネイティブに操る。

キーボード操作が快適な、高速の Jujutsu クライアント。チェンジグラフ、差分、分割、競合解決をひとつのウィンドウで。

無料 · macOS 26 以降 · Linux x86_64 & aarch64 · Windows ベータ版

JayJay — DAG グラフと差分(ダーク) JayJay — DAG グラフと差分(ライト)

jj の考え方そのまま

チェンジ、ブックマーク、revset、書き換えられる履歴。すべて jj の流儀のままで、git のブランチを無理に持ち込みません。

正真正銘のネイティブ

macOS は SwiftUI、Linux は GPUI。その下で共通の Rust コアが jj-lib を直接リンクしています。CLI の出力を解析することも、Web ビューを使うこともありません。

完全無料

サブスクリプションは不要で、リポジトリのデータも収集しません。匿名のビルド・OS 統計は設定でオフにできます。

差分

コードを読むように、チェンジを読む。

統合表示と左右並べての表示、ファイルツリー、tree-sitter によるハイライトと行内の変更表示、そして Markdown、ノートブック、CSV/TSV、SARIF、バイナリ plist のリッチプレビュー。

ファイルツリー付きの左右並べての差分 ファイルツリー付きの左右並べての差分
レビュー

編集しても、レビューは続きから。

スペース キーでファイルをレビュー済みに。ハンク横のガターをクリックすれば、その部分だけをマークできます。レビュー済みの印は編集やリベースのあとも残り、メモも変更行についたままです。

コーディングエージェントは jayjay CLI でメモを読み、ファイルをマークできます。JayJay スキルは npx skills add hewigovens/jayjay --skill jayjay でインストールするか、macOS では「設定」>「連携」から追加できます。

レビュー済みのハンクとインラインメモがある作業コピーのレビュー レビュー済みのハンクとインラインメモがある作業コピーのレビュー
差分編集

分けたい行だけを、きっちり分割。

チェンジ内のどのファイルからでもハンクや行を選び、きれいな子チェンジや並列のチェンジに切り出せます。

Interdiff

どの 2 つのリビジョンでも比較。

2 つのチェンジやブックマーク、PR ブランチとそのベースを Shift+クリックすると、その間で何が変わったかがひと目でわかります。チェンジが分岐しているときは、分岐したバージョンを比較でどちらを残すか判断できます。

Interdiff Interdiff
スタック PR

1 チェンジ 1 PR で、スタックに積む。

直線状のスタックの先端を右クリックし、スタック PR を作成 / 更新を選びます。JayJay がチェンジごとにブランチ名を付けてプッシュし、依存関係のあるベースを設定した GitHub PR、GitLab MR、または Cursor Origin PR をチェンジごとに作成します。

GitHub と GitLab には「設定」からサインインするか、既存の CLI ログインや環境変数のトークンを利用できます。Cursor Origin では origin auth login の認証情報を使用します。

競合

競合は、アプリの中で解決。

内蔵のマージエディタでハンクごとに左、右、ベースを選んだり、競合マーカーを直接編集したりできます。途中まで解決して保存することも、設定済みの外部ツールに任せることも可能です。

内蔵のマージエディタ 内蔵のマージエディタ
変遷

チェンジの変遷をたどる。

チェンジのスナップショットを時系列で確認し、絞り込みやワンクリックでの復元ができます。リベースの取り消しも失った作業の復旧も、操作ログを手で触らずに行えます。

チェンジの変遷ログ チェンジの変遷ログ
操作ログ

どんな操作も、元に戻せる。

破棄もリベースも分割も、すべて操作として記録されます。ステータスバーの最後の操作をクリックするか ⌘⇧U を押すと操作ログが開き、リポジトリを過去の好きな時点に復元できます。

その他

jj の機能を、ひと通り。

レーン表示の DAG

フォークとマージのレーン表示、最短のチェンジ ID、プリセット付きの revset 絞り込み。

ブックマーク

ブックマークを任意のチェンジにドラッグして移動。リモートごとの先行・遅れ・分岐の状態も表示します。

どんな操作も元に戻せる

ショートカットひとつで、操作ログをさかのぼれます。

リッチプレビュー

画像の変更前後、Markdown、ノートブック、CSV/TSV、SARIF、バイナリ plist。

ファイル注釈

ファイルの各行を最後に変更したのがどのチェンジかを確認できます。

AI による説明

Codex、Claude、Apple Intelligence がチェンジの説明を下書きします。

使い慣れたツール

VS Code、VSCodium、Zed、Xcode、Vim、ターミナル、iTerm2、Ghostty。

Git との連携

Git と同居する jj リポジトリ、Git LFS、サブモジュールにそのまま対応。

キーボード

どの操作も、キーボードからすぐ。

コマンドパレットでどの操作もあいまい検索できます。help split と入力すれば機能を調べられ、先頭に ! を付ければ jj コマンドをそのまま実行して出力を確認できます。

コマンドパレット コマンドパレット
  • コマンドパレット⌘⇧P
  • ブックマーク マネージャー⌘⇧B
  • 取り消し(操作ログ)⌘⇧U
  • 差分内を検索⌘F
  • リポジトリを開く⌘O
  • 更新⌘R
  • レビュー済みにするスペース
  • 次 / 前のファイルJK
  • リビジョンを比較⇧クリック
はじめかた

インストールして、リポジトリを開くだけ。

macOS

macOS 26 以降 · Apple シリコン · 署名・公証済み

# Homebrew は初回にこの cask を信頼します
$ brew install --cask hewigovens/tap/jayjay
$ jayjay ~/my-project

またはアプリをダウンロード。

Linux

x86_64 & aarch64 · AppImage、Debian/Ubuntu、Arch

# Debian パッケージまたは AppImage(チェックサム検証済み)
$ curl -fsSL https://jayjay.hewig.dev/install.sh | bash
# Arch:AUR
$ yay -S jayjay-appimage

パッケージは GitHub Releases にあります。

なぜ JayJay か

git の延長ではなく、jj のために。

Jujutsu のモデルは git より優れています。それなのに多くの GUI は、git のブランチを前提にしていたり、Web アプリをラップしただけだったりします。JayJay の出発点はひとつの疑問でした。jj をそのまま扱える、本物のネイティブクライアントはなぜないのか?

だから、割り切っていて速い。ワークフローごとにネイティブなやり方をひとつだけ、jj の流儀で用意しました。JayJay は完全無料で、開発者が開発者のために作っています。細部までこだわり、イースターエッグも隠してあります。見つけられますか?

FAQ

よくある質問

JayJay とは何ですか?

macOS と Linux で使える Jujutsu (jj) のネイティブ GUI です。Jujutsu は、書き換え可能な履歴、コミットの代わりの「チェンジ」、ブランチの代わりの「ブックマーク」によって git のモデルを再考したバージョン管理システムです。JayJay は Rust(CLI の出力解析ではなく jj-lib を直接利用)と SwiftUI で構築されています。

Jujutsu の GUI はありますか?

はい。JayJay は macOS と Linux 向けのフル機能のネイティブ jj GUI です。DAG の可視化、tree-sitter ハイライト付きの統合・左右並べての差分、interdiff、差分編集モード、ファイル注釈、ワンクリックの競合解決に加え、jj の一般的な操作(squash、split、absorb、revert、merge、duplicate、describe、abandon)をフラグを覚えずに実行できます。

macOS へのインストール方法は?

brew install --cask hewigovens/tap/jayjay が最も簡単です。Homebrew 6.0 は、初回インストール時にこの cask を信頼します。または、署名・公証済みのアプリを GitHub Releases からダウンロードしてください。macOS 26 以降が必要です。

interdiff(2 つのリビジョンの比較)はできますか?

はい。DAG で 2 つのリビジョンを Shift キーを押しながらクリックすると、PR のように比較できます。同じ統合・左右並べての表示と単語単位のハイライトで、2 つのチェンジの内容の違いを表示します。

左右並べての差分表示はできますか?

はい。統合表示と左右並べての表示はワンクリックで切り替えられます。どちらも tree-sitter の構文ハイライトと単語単位のハイライトを使います。画像ファイル(PNG、JPG、SVG、HEIC など)は変更前後の実際の画像として表示され、Markdown、ノートブック、CSV/TSV、SARIF、バイナリのプロパティリストには、ソーステキストだけでは足りないときのためのリッチプレビューがあります。

個々の行やハンクを新しいチェンジに取り出せますか?

はい、それが差分編集モードです。ファイル、ハンク、行範囲を選んで、新しい子または並列のチェンジに分割できます。作業コピーでは、右クリック →「選択した行を破棄」で個々の編集を取り除くこともできます。

コマンドラインの jj との違いは?

CLI を置き換えるのではなく、補完するものです。DAG グラフ、視覚的な差分レビュー、差分編集、変遷ビューア、ブックマーク マネージャーは GUI のほうがはるかに扱いやすくなります。コマンドパレット(⌘ ⇧ P)は操作とローカルヘルプを検索でき、先頭に jj(または !)を付ければウィンドウ内で生の jj を実行できます。

JayJay はオープンソースですか?

無料で、ソースコードも公開しています(source-available)。macOS アプリのライセンスは BSL 1.1 で、使用、フォーク、改変、再配布は自由です。許可が必要なのは有料のアプリストアでの配布のみです。2030-03-23 に Apache-2.0 へ移行します。Rust クレートはすでに Apache-2.0 です。

Linux へのインストール方法は?

curl -fsSL https://jayjay.hewig.dev/install.sh | bash を実行します。このスクリプトは、チェックサムを検証したうえで、apt ベースのシステムには最新の Debian パッケージを、それ以外の x86_64 / aarch64 環境には AppImage をインストールします。アップグレードするにはもう一度実行してください。Arch Linux では AUR の jayjay-appimage をインストールします(例:yay -S jayjay-appimage)。--beta を付けると、安定版より新しいベータ版があるときにそれをインストールします。その後 jayjay /path/to/repo を実行するか、ウィンドウからリポジトリを開いてください。対応内容はガイド(英語)に記載しています。

Arch Linux へのインストール方法は?

x86_64 または aarch64 向けに AUR の jayjay-appimage をインストールします(例:yay -S jayjay-appimage)。独自の pacman リポジトリは廃止されました。AUR 経由でアップグレードする前に、/etc/pacman.conf から [jayjay] セクション全体を削除してください。AppImage のベータ版を試すには、インストール済みのパッケージを先に削除してから、Linux インストーラを --beta 付きで実行します。手順はガイド(英語)に記載しています。

Windows や Linux でも使えますか?

Linux と Windows は GPUI シェルを使い、macOS と Rust コアを共有しています。Linux 版は x86_64 と aarch64 向けに AppImage、Debian/Ubuntu パッケージ、AUR パッケージとして提供しています。詳しくはガイド(英語)をご覧ください。Windows 対応はベータ版です。Windows x64 版は Microsoft Store からインストールするか、ベータ版ビルドは GitHub Releases のポータブル ZIP を利用してください。Windows 10 バージョン 1903 以降または Windows 11 が必要で、jj は別途インストールが必要です。Store 版の更新は Store が管理します。ポータブル ZIP に自動更新機能はありません。

ブログ

開発ノートより

記事は英語です。