コンテンツへスキップ

開発環境現状確認2026 - chezmoi + devbox + Ghosttyで構築するモダン環境

開発環境現状確認2026 - chezmoi + devbox + Ghosttyで構築するモダン環境 のアイキャッチ
Contents

    2026年の開発環境記事が流行っているようなので、僕も便乗して公開します。

    昨年末にdotfilesをリニューアルしたので、その延長として現在の環境をまとめました。

    GitHub - paveg/dotsgithub.com

    前提

    項目内容
    マシンMacBook Air 13-inch, M3, 2024
    OSmacOS 26.2 (25C56)
    ディスプレイDell U4025QW(40インチ 5K2K)
    主な用途Web開発(TypeScript / Go)
    サブ環境Linux(SSH接続先のサーバー)

    メインマシンはMacBook Air M3です。メモリ24GBで開発には十分ですし、軽さは正義だと思っています。

    2026年のトレンドと自分の立ち位置

    最近の開発環境記事を読むと、いくつかのトレンドが見えてきます。

    トレンド代表例自分の選択
    AIコーディングClaude Code, Cursor, GitHub CopilotClaude Code + Neovim Copilot
    パッケージ管理mise, Nix, devboxdevbox(Nixベース)
    ターミナルGhostty, WezTerm, WarpGhostty
    dotfiles管理chezmoi, Nix home-managerchezmoi
    エディタCursor, Neovim, VS CodeNeovim

    Nixを直接触るのは敷居が高いので、devboxでNixの恩恵だけ受ける構成にしています。

    全体構成

    Ghostty (Terminal)
    └─ tmux (Multiplexer)
    ├─ Neovim + Copilot + lazy.nvim
    └─ zsh + zinit + p10k
    ↓ managed by
    chezmoi (dotfiles) + devbox (CLI tools)

    テーマはTokyo Nightで統一しています。カッコいいし目に優しいので気に入っています。

    ツール管理: chezmoi + devbox

    なぜこの組み合わせか

    役割ツール理由
    dotfiles管理chezmoiテンプレート機能、マルチOS対応
    CLIツール管理devboxNixベースで再現性◎、Homebrewより高速
    ランタイム管理miseNode.js / Python / Go のバージョン切り替え
    GUIアプリHomebrew CaskRaycast, 1Password等

    devboxはJetifyが開発するNixのラッパーです。devbox.jsonに書いたツールが宣言的にインストールされ、どのマシンでも同じバージョンが再現されます。

    なぜmiseとdevboxを併用するのか

    「devboxだけで完結するのでは?」と思うかもしれませんが、仕事のプロジェクトではmiseを使うようにしています。

    理由は ネイティブ拡張を含むパッケージのビルド問題 です。

    例えばmysql2などのrubygemや一部npmパッケージは、ネイティブコードをビルドする際にシステムのライブラリパスを参照します。devbox(Nix)環境だと、これらのパスが通常と異なり、ビルドに失敗することがありました。

    # よく見たエラー
    gyp ERR! find Python
    gyp ERR! stack Error: Could not find any Python installation to use

    miseは従来のnvmpyenvに近い動作をするため、こうした問題が起きにくいです。

    環境ツール理由
    個人開発devbox再現性重視、Nixの恩恵
    仕事miseネイティブビルドの互換性

    両方入れておいて、プロジェクトに応じて使い分けるのが現状のベストプラクティスです。

    devbox.json
    {
    "packages": [
    "neovim@0.11",
    "tmux@latest",
    "fzf@latest",
    "ripgrep@latest",
    "lazygit@latest",
    "ghq@latest",
    "eza@latest",
    "bat@latest",
    "delta@latest",
    "gitleaks@latest"
    ]
    }

    ワンライナーセットアップ

    新しいマシンでも、これだけで環境が再現されます。

    Terminal window
    curl -fsSL https://raw.githubusercontent.com/paveg/dots/main/install.sh | bash

    仕事用と個人用で設定を分けたい場合は環境変数で制御できます。

    Terminal window
    BUSINESS_USE=1 curl -fsSL ... | bash

    ターミナル: Ghostty

    Alacritty + Zellij → Ghostty への移行

    以前はAlacritty + Zellijの組み合わせを使っていましたが、Ghosttyに一本化しました。

    Zellijをやめた理由

    Zellijは素晴らしいマルチプレクサですが、キーバインドの競合が辛かったのが正直なところです。Neovimとの組み合わせで、どのキーがどこに効くのか混乱することが多かったです。

    Alacrittyをやめた理由

    Alacritty自体に不満はありませんでした。ただ、Ghosttyの以下の点が魅力的だったので乗り換えました。

    • ネイティブのタブ・分割機能
    • 日本語レンダリングの美しさ
    • 新しいけど安定している印象

    Ghosttyの設定

    ghostty/config
    # フォント
    font-family = "UDEV Gothic NF"
    font-size = 16
    # 外観
    background-opacity = 0.95
    window-padding-x = 4
    window-padding-y = 4
    # Tokyo Night テーマ
    background = 1a1b26
    foreground = c0caf5
    cursor-color = c0caf5

    タブ操作はmacOS標準に近いキーバインドにしています。

    ghostty/config
    keybind = super+t=new_tab
    keybind = super+w=close_surface
    keybind = super+d=new_split:right
    keybind = super+shift+d=new_split:down

    シェル: zsh + zinit turbo mode

    powerlevel10kのinstant promptとzinit turbo modeの組み合わせで、高速な起動を実現しています。

    Starship → Powerlevel10k への移行

    以前はStarshipを使っていましたが、powerlevel10kに移行しました。

    • instant prompt が効くため、プロンプトが即座に表示され、裏で初期化が走る
    • 起動速度は Starship より体感で速い
    • カスタマイズは p10k configure で対話的にできる

    Starshipも良いプロンプトですが、zshに特化したpowerlevel10kの方がパフォーマンスで有利でした。

    起動時間ベンチマーク

    Terminal window
    $ for i in {1..5}; do time zsh -i -c exit; done
    zsh -i -c exit 0.05s user 0.03s sys 0.08 total
    zsh -i -c exit 0.05s user 0.02s sys 0.08 total
    zsh -i -c exit 0.05s user 0.02s sys 0.08 total
    zsh -i -c exit 0.05s user 0.03s sys 0.09 total
    zsh -i -c exit 0.05s user 0.02s sys 0.08 total

    約80msで安定しています。体感としては一瞬です。

    主要なプラグイン

    プラグイン用途
    powerlevel10kプロンプト(Nerd Font対応)
    fast-syntax-highlightingシンタックスハイライト
    zsh-autosuggestionsコマンド補完サジェスト
    zsh-history-substring-search履歴検索

    よく使う関数・エイリアス

    コマンド説明
    repos (Ctrl+G)ghq + fzf でリポジトリ移動
    z <dir>zoxide でスマートcd
    lglazygit 起動
    lleza でリスト表示

    ghq + fzf でリポジトリ検索

    Ctrl+G でリポジトリ一覧をfzfで検索し、選択したリポジトリに移動できます。READMEのプレビュー付きです。

    functions.zsh
    _fzf_cd_ghq() {
    local root repo
    root="$(command ghq root)" || return 1
    local preview_cmd='
    repo_path='"$root"'/{}
    if [[ -f $repo_path/README.md ]]; then
    bat --color=always --style=header,grid --line-range :80 $repo_path/README.md
    else
    eza -la $repo_path | head -n 15
    fi
    '
    repo="$(ghq list | fzf --reverse --height=80% \
    --header="Ctrl+R: refresh cache" \
    --preview="$preview_cmd" \
    --preview-window=right:50%)"
    [[ -n "$repo" ]] && cd "$root/$repo"
    }
    zle -N _fzf_cd_ghq
    bindkey '^g' _fzf_cd_ghq

    リポジトリが多くなってくると必須の機能です。ghq listの結果はキャッシュして高速化しています。

    tmux

    tmuxはSSH先でも使うので残しています。テーマはGhosttyと同じくTokyo Nightで統一しています。

    主な設定

    • Prefix: Ctrl+a(Ctrl+bより押しやすい)
    • Vim風のペイン移動(h/j/k/l)
    • OSC 52でSSH先からもクリップボード連携

    ネストtmux対応

    SSH先でtmuxを使う場合、ローカルとリモートのtmuxが衝突します。F12でパススルーモードを切り替えられるようにしています。

    Terminal window
    # F12 で「パススルーモード」に切り替え
    # すべてのキーが内側のtmuxに渡される
    bind -T root F12 \
    set prefix None \; \
    set key-table off \; \
    ...

    ステータスバーが赤くなるので、どちらのtmuxを操作しているか一目でわかります。

    エディタ: Neovim

    kickstart.nvimをベースに、lazy.nvimでプラグイン管理しています。

    主要なプラグイン

    プラグイン用途
    nvim-lspconfig + MasonLSP管理
    nvim-cmp補完
    telescope.nvimファジーファインダー
    treesitterシンタックスハイライト
    copilot.luaGitHub Copilot

    よく使うキーバインド

    キー説明
    <Space>ffファイル検索
    <Space>fgLive grep
    gd定義へジャンプ
    gr参照を検索
    <Space>ccCopilot Chat

    AIツール

    2026年のトレンドとして外せないのがAIコーディングツールです。

    ツール用途
    Claude CodeCLIでのAIコーディング、複数タスク並列実行
    GitHub Copilot (Neovim)インライン補完
    Claude Desktop調べ物、壁打ち

    Claude Codeは最近のお気に入りです。CLIベースなのでtmuxとの相性が良く、複数のセッションで並列作業できるのが便利です。

    CLIツール一覧

    devboxでグローバルにインストールしているツールです。

    ツール用途
    neovimエディタ
    tmuxターミナルマルチプレクサ
    ghqリポジトリ管理
    fzfファジーファインダー
    ripgrep高速grep
    fd高速find
    batcatの代替(シンタックスハイライト付き)
    ezalsの代替(アイコン・Git連携)
    zoxideスマートcd
    lazygitGit TUI
    delta差分表示
    jq / yqJSON/YAML処理
    justタスクランナー
    gitleaksシークレット検出
    atuinシェル履歴同期
    miseランタイムバージョン管理

    GUIアプリ

    開発に使っているGUIアプリです。Homebrew Caskでインストールしています。

    アプリ用途
    Raycastランチャー、スニペット、クリップボード履歴
    TailscaleVPN(iPhone/iPadから自宅Macへアクセス)
    TermiusSSHクライアント(iPad/iPhoneからも接続)
    Claude CodeAIコーディング(npm -gでインストール)
    AntigravityGoogleのAI IDE(Gemini 3統合、トライアル中)
    1Passwordパスワード管理
    Arcブラウザ

    Raycast はSpotlightの代替として使っています。クリップボード履歴、スニペット、ウィンドウ切り替えなど、これなしでは生きていけません。

    Tailscale は外出先からiPhone/iPadで自宅のMacBookにSSH接続し、Claude Codeを叩くために使っています。VPNの設定が簡単で、どこからでも安全に接続できます。

    Antigravity はGoogleが2025年末にリリースしたAI IDE(VS Codeフォーク)です。Gemini 3との統合が強力で、エージェントに並列でタスクを任せられる「Manager View」が特徴的です。Claude Codeと使い分けながらトライアル中です。

    まとめ

    2026年の開発環境のポイントをまとめます。

    項目選択理由
    ターミナルGhosttyネイティブ機能◎、日本語◎
    パッケージ管理devboxNixベースで再現性◎
    dotfileschezmoiテンプレート、マルチOS対応
    エディタNeovim軽量、カスタマイズ自由
    テーマTokyo Night統一感、目に優しい
    AIツールClaude CodeCLI、並列作業向き

    開発環境は定期的に見直すと新しい発見があって楽しいです。dotfilesはGitHubで公開しているので、参考になれば幸いです。

    GitHub - paveg/dotsgithub.com

    それでは、またね。

    X Facebook B! Hatena