
lazygitは、オーストラリアの開発者Jesse Duffield氏が2018年8月にGitHubで公開したGit用のターミナルUI(TUI)である。Go言語とgocuiライブラリを基盤にしており、ステージング、コミット、リベース、チェリーピックといった日常操作をマウス無しで完結できる。インストール後にlazygitと打つだけで現在のリポジトリを開き、ファイル単位の差分や行単位のステージングをキー操作だけで進められる。コマンドを覚える負荷を下げつつ、Git本体の機能を直接呼ぶ薄い層に留まっている点が支持されている。
この記事の目次
- 誕生の背景と開発者の他プロジェクト
- 画面構成とキーバインドの設計
- カスタムコマンドとフックの拡張性
- 導入の手順と他ツールとの組み合わせ
- まとめ
誕生の背景と開発者の他プロジェクト

Jesse Duffield氏は本業のRubyやElixir開発の傍ら、ターミナル上の体験を改善するTUIをいくつも公開している。lazygitの初期リリースは2018年8月で、当時はtigという古参のGit閲覧用TUIが存在したものの編集機能が限定的で、ユーザーが結局gitコマンドへ戻る場面が多かった。lazygitは「閲覧と編集を同じ画面で完結させる」ことを最初から目的に据え、ステージ→コミット→プッシュの一連動作を数キーで終えられるUIを実装した。
同氏は2019年に同じ系統のlazydocker、2022年にlazynpmと矢継ぎ早に派生プロジェクトを公開しており、TUIの設計哲学はシリーズを通して一貫している。GitHub Sponsors経由での個人スポンサーシップ収入で開発を維持しており、商業的な後ろ盾を持たないにもかかわらずスター数は2024年末時点で4万を超えた。OSSの個人主導プロジェクトとして規模・継続性の両面で参考になる事例である。
画面構成とキーバインドの設計

起動するとターミナルが5つのパネル(Status / Files / Branches / Commits / Stash)に分割表示される。タブキーまたは数字キーでパネル間を移動でき、各パネル内では矢印キーで項目選択、スペースキーでステージング、cでコミットなど直感的に決まっている。さらにファイルパネルでEnterを押すと行単位のステージング画面に入り、sで個別の行をステージできるため、git add -pの代替として極めて快適である。
リベース操作も画面の中央に予定行が並ぶUIで提供され、上下矢印で順序変更、sでsquash、dでdrop、eでeditを指定できる。ステージング途中で衝突が発生した場合も、コンフリクトしたファイル上でEnterを押すと衝突マーカー単位の選択UIが立ち上がる。これらの動作はGit本体のコマンドを内部で呼ぶラッパーに過ぎず、設定で-cオプションや別のgitバイナリを指定できる点も実用上重要である。
カスタムコマンドとフックの拡張性

lazygitは~/.config/lazygit/config.ymlで詳細にカスタマイズでき、customCommandsセクションに任意のシェルコマンドをキーバインド付きで定義できる。たとえばFキーにgit push --force-with-leaseを割り当てたり、ブランチパネル限定のキーバインドでgit worktreeコマンド群を呼んだりと、個人の運用に合わせて拡張可能だ。プロンプト付きの対話入力もサポートされており、引数を都度尋ねる小さなUIも作れる。
GUI型のGitクライアントであるSourceTreeやGitKraken、エディタ統合のVSCode GitLensと比べると、lazygitはあくまでターミナル完結でリモート接続環境やtmux内のペインで使いやすい。SSH越しにサーバー上のリポジトリを操作する用途で特に強みがあり、開発機を持ち歩けない場面で重宝される。LinuxサーバーやWSL2、macOSのiTerm2いずれでも同一の体験が得られる点も移植性として価値が高い。
導入の手順と他ツールとの組み合わせ

インストールはmacOSならbrew install lazygit、Windowsならscoop install lazygitまたはwinget install JesseDuffield.lazygit、Linuxは各ディストロのパッケージ管理かGitHub Releasesからのバイナリ取得で済む。Go製の単一バイナリで依存もなく、削除も実行ファイルを消すだけで完結する。設定ファイルは初回起動時に自動生成され、ファイルパスはlazygit --print-config-dirで確認できる。
Neovim内から呼び出すtoggleterm.nvimとの組み合わせや、tmux内の浮動ペインで呼ぶtmux-popupとの連携がコミュニティで広く紹介されている。gitコマンドのエイリアスとしてlgを設定し、alias lg='lazygit'の一行で導線を短くする運用も典型的だ。GitHub CLIと組み合わせてgh pr createを最後の段階で呼ぶワークフローまで仕上げれば、TUIだけで完結する開発体験を構築できる。
まとめ
lazygitは2018年に個人開発として始まったGit TUIだが、行単位ステージングや対話的リベースなど痒い所に手が届く設計で、CLI派とGUI派の中間を埋める存在として定着した。Go製の単一バイナリで導入も容易、カスタムコマンドで運用に合わせて伸ばせるため、長く付き合える開発支援ツールである。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント