Rust製軽量エディタZedでDev Containers + GitHub Copilot + Claude Code生活はじめました

に公開1

@dyoshikawaです。

年始からRust製の軽量エディタZedとClaude Codeの組み合わせを試しているのですが、これがかなりいいです。本記事ではDev Containers環境でGitHub CopilotとClaude Codeを併用する構成の構築手順を紹介します。

Zedとは

ZedはRustで書かれた高速なコードエディタです。Atomエディタの開発者が中心となり開発しているようです。

https://zed.dev/

Homebrewでインストールできます。

brew install --cask zed

VS CodeやCursorと比較すると、起動が高速で動作が軽快です。使い心地自体はVS Codeとほぼ変わりませんし、VS CodeやCursorからの設定インポートにも対応しています。

私の環境では、VS Code + Claude CodeでDev Containersを利用しているとき、やりとりが伸びてくるとクラッシュする事象が頻発していました。Zedに切り替えてからはこの問題が全く起こらなくなりました。vim/emacsに抵抗がない方はGhostty + Claude Codeなど良いと思いますが、自分はまだまだIDEが欲しいのでちょうど良い選択肢でした。VS CodeがEclipseやJetbrainsと比して超軽量と言われていた時代を思うと隔世の感があります。

現状、VS CodeやCursorほど拡張機能のエコシステムは充実していませんが、Extensionsエコシステムもありますし、ビルトイン機能も十分に揃っているように思います。

プライバシーについて

業務利用を検討する際に気になるプライバシー面ですが、Zedは明示的にユーザーが共有しない限り、コンテンツを永続的に保存したりAI機能の改善に使用したりすることはないとのことです。

https://zed.dev/docs/ai/ai-improvement

Dev Containers環境の構築

ZedでDev Containersを使う方法は2つあります。

方法1: DevPodを使う

DevPodはDev Containers環境を管理するためのツールです。CLIで使えます。

https://devpod.sh/

https://github.com/loft-sh/devpod

いろいろ調べた限りではZed + DevPodの記事ばかりヒットしたのでそれに倣いました。

Dev ContainersのCLIといえばDev Container CLIがあります。

https://github.com/devcontainers/cli

なぜDev Container CLIでなくDevPodなのだろう、と思ったのですが、上記のリポジトリを覗いてみると、 README.md

This CLI is in active development. Current status:

を見ると、まだ実装が完了していないことが伺えます。

また、 About セクションに

(機械翻訳)
devcontainer.json から開発用コンテナを作成および設定できる仕様のリファレンス実装

とあるのも気になります。リファレンス実装とは 🤔

ともあれ、こうしたことからDevPodを使います。

Homebrewでインストールします(Mac前提です)。

brew install --cask devpod

Dockerプロバイダーを設定します。

devpod provider add docker
devpod provider use docker

コンテナを起動します。 --ide none オプションを指定することで、IDEを自動で開かずにコンテナだけを起動できます(これを与えないと自動でVS Codeを開こうとします)。

devpod up . --ide none

コンテナを再作成したい場合は --recreate オプションを付けます。

devpod up . --ide none --recreate

--ide none オプションは常に付与したいので、 ~/.zshrc にエイリアスを設定しておくと便利でした。

~/.zshrc
alias devpod="devpod --ide none"

コンテナが起動したら、Zed側で以下の手順をなぞります。


Shift+Cmd+P でコマンドパレットを開き projects open remote 選択


対象のDev Containerを選択し、 Open Folder を選択:


エディタで開きたいディレクトリを入力(私の場合は /workspace


左上にこんな感じでDev Container名が出ればOK

(拙作のOSSプロジェクトRulesyncで試したので、ところどころRulesyncの表示が出ています)

方法2: プレビュー版のビルトイン機能を使う

Zedのプレビュー版では、Dev Containersのビルトイン機能が使えます。安定版にはまだ含まれていない機能なので、プレビュー版のインストールが必要です。

https://zed.dev/releases/preview/0.218.0

https://zed.dev/docs/dev-containers

brew install --cask zed@preview

プレビュー版をインストールすると、Dev Containersの操作がZed内で完結するようになります。

ただし、社内で試した人の感想ではまだ不安定とのことでした。安定性を重視するなら方法1のDevPodを使うのがおすすめです。

Formatterの設定

Zedでは外部フォーマッタを設定できます。私はoxfmtを使いたかったので、 formatter.external で対応しました。

https://zed.dev/docs/configuring-zed#formatter

.zed/settings.json に以下のように設定します。

.zed/settings.json
{
  "format_on_save": "on",
  "formatter": {
    "external": {
      "command": "pnpm",
      "arguments": ["exec", "oxfmt", "--stdin-filepath", "{buffer_path}"]
    }
  }
}

言語ごとにFormatterを設定することもできます。

https://zed.dev/docs/configuring-languages#language-specific-settings

.zed/settings.json
"languages": {
  "Python": {
    "tab_size": 4,
    "formatter": "language_server",
    "format_on_save": "on"
  },
  "JavaScript": {
    "tab_size": 2,
    "formatter": {
      "external": {
        "command": "prettier",
        "arguments": ["--stdin-filepath", "{buffer_path}"]
      }
    }
  }
}

なお、oxc-zedというextensionもあるようですが、今回は未使用です。

https://github.com/oxc-project/oxc-zed

GitHub Copilotによるタブ補完を設定

ZedにはVS CodeやCursor相当のAI Tab補完機能があります。GitHub Copilotを使うには、設定ファイルで有効化します。

https://zed.dev/docs/ai/edit-prediction

Cmd+, Edit in settings.json で設定ファイルを開き、以下を追加します。

~/.config/zed/settings.json
{
  "edit_prediction_provider": "copilot"
}

エディタの右下にCopilotアイコンが出てくるので、クリックしてSign Inします。


Sign Inする

これでEdit Suggestion機能でCopilotの補完が効くようになります。

もしCopilotの補完が効かない場合は、エディタ自体の再起動やコマンドパレット( Cmd+Shift+P )から copilot: reinstall を実行してみてください。私の環境ではこれで解決しました。

https://github.com/zed-industries/zed/discussions/7538#discussioncomment-12933643

Claude Codeとの併用

ZedにはClaude Codeを公式にIntegrateする機能があります。

https://zed.dev/docs/ai/external-agents#claude-code

ただ、私はターミナルで直接操作するのが好みなので、ZedのターミナルでClaude Codeを起動して使っています。

Dev Containersのサンドボックス環境内であれば、Claude Codeのバイパスモード( --dangerously-skip-permissions )も使いやすくなります。

https://github.com/anthropics/claude-code/tree/main/.devcontainer

Anthropic社がClaude Code用のDevcontainer設定サンプルを公開しているので、参考にしてください。

まとめ

VS Code + Claude Codeの組み合わせでクラッシュに悩んでいる方、より軽快な操作感を求めている方には、Zedは良い選択肢になると思います。Dev Containers、GitHub Copilot、Claude Codeといった主要なツールとの連携も問題なく、乗り換えのハードルは低いです。

そのほか参考にさせていただいたリンク

https://qiita.com/P-man_Brown/items/3800a31b1f7be60e76ca

https://zenn.dev/spacemarket/articles/ad938741a3b360

Discussion