Zed よさそう

ふと試した Windows 版 Zed が私の手に馴染むように感じたので、本腰入れて整備した。

OpenCode フロントエンドは複数の選択肢がある

いろいろ試してみるが、どうもしっくりこない(社会性フィルター)。

そういや Zed が Agent コーディングがどうと宣っていたような。ダメ元で「OpenCode のフロントエンドとして Zed を使う」観点で試したら、これがなかなか良かった。

Zed のインストール

winget でのインストールが公式。が、winget は、インストールは大丈夫でも、アップデートがコケるのを他のアプリで多々体験しており、あまり良い印象がない。

非公式だが scoop で管理できる。scoop でインストール/アップデートやるとしよう。

Zed のフォント、フォントサイズ、カラーテーマ

インストール初日は、いろいろ触ってみたものの勝手がわからず、気持ちが萎えてアンインストールを考えた。日を置いて立て直して、フォント、フォントサイズ、カラーテーマを設定して気持ちを高めた。これはGUIの設定パネル等々でポチポチやったら意図したとおり設定できた。

カラーテーマは拡張機能の一種としてインストールできる。 Nightfox Theme という眩しくないテーマを入れた。

  "ui_font_family": "UDEV Gothic NFLG",
  "buffer_font_family": "UDEV Gothic NFLG",
  "ui_font_size": 16.0,
  "buffer_font_size": 16.0,
  "agent_ui_font_size": 16.0,
  "agent_buffer_font_size": 16.0,
  "theme": {
    "mode": "dark",
    "light": "Dayfox - opaque",
    "dark": "Nordfox - opaque",
  },
  "icon_theme": {
    "mode": "system",
    "light": "Zed (Default)",
    "dark": "Zed (Default)",
  },

zed.dev

Zed の Terminal

Windows デフォは PowerShell のところ、 Git Bash が起動するようにした。これはGUIの設定パネルでポチポチやったら意図したとおり設定できた。

"C:\\Users\\sasas\\scoop\\apps\\git\\current\\bin\\bash.exe" では zed が bash.exe の発見失敗していた。

"C:\\Users\\sasas\\scoop\\apps\\git\\current\\usr\\bin\\bash.exe" なら動いた。よくわからない。

  "terminal": {
    "scrollbar": {
      "show": "always",
    },
    "shell": {
      "with_arguments": {
        "program": "C:\\Users\\sasas\\scoop\\apps\\git\\current\\usr\\bin\\bash.exe",
        "args": ["-l", "-i"],
      },
    },
  },

zed.dev

Zed の External Agent

エージェントコーディング用のパネルが用意されている。デフォは zed.dev に接続する Zed Agent で、ACP 接続で他も利用できる。

zed.dev

他のひとつとして OpenCode に向けるようにして、Zed の Agent Panel で OpenCode とのチャットを開通させた。仕組み的には ACP で OpenCode に接続して云々らしい。これはGUIの設定パネルでポチポチやったら意図したとおり設定できた。

  "agent_servers": {
    "opencode": {
      "default_config_options": {
        "effort": "high",
        "mode": "build",
      },
      "type": "registry",
    },
  },

zed.dev

Zed の LLM Provider

Zed の Git Panel で git commit したときのコミットメッセージ生成、等々(いろいろ使われてるらしい)で LLM Provider を用いる。ローカル起動してる llama-server に向けるようにした。これはGUIの設定パネルでは意味不明だったので、ドキュメントを眺めつつ、チャッピーに素案を作らせて、 settings.json に追記した。

  "language_models": {
    "openai_compatible": {
      "llama-cpp": {
        "api_url": "http://127.0.0.1:8080/v1",
        "available_models": [
          {
            "name": "local-llama",
            "display_name": "llama.cpp local",
            "max_tokens": 262144,
            "max_output_tokens": 8192,
            "max_completion_tokens": 2048,
            "capabilities": {
              "tools": false,
              "images": false,
              "parallel_tool_calls": false,
              "prompt_cache_key": false,
              "chat_completions": true,
              "interleaved_reasoning": false,
            },
          },
        ],
      },
    },
  },
  "agent": {
    "default_model": {
      "provider": "llama-cpp",
      "model": "local-llama",
    },
    "inline_assistant_model": {
      "provider": "llama-cpp",
      "model": "local-llama",
    },
  },

zed.dev

Zed のコード補完

Ctrl+Enter したときコード補完が発動する。デフォ設定では zed が運営してるサービスを利用するよう構成されており、一定回数の無償枠が付いてる。これも llama-server に向けるようにした。いちおう設定はしたものの、正直いまさら使うかというと、うーん、、、。 "prompt_format": "qwen", としているのは Qwen3.6 35B A3B を使っているから。

  "edit_predictions": {
    "provider": "open_ai_compatible_api",
    "open_ai_compatible_api": {
      "api_url": "http://127.0.0.1:8080/v1/completions",
      "model": "local-model",
      "prompt_format": "qwen",
      "max_output_tokens": 1024,
    },
  },

zed.dev

他

設定パネル全部を上から下まで見ていくが、読んでも何がどうなるのかサッパリわからない項目が超多数で、理解するのは諦めた。使っていくうちに「これがソレなのね」と体感していくだろうから。

macOS 版 Zed

homebrew でインストールできる。

brew install zed

これも試してみたものの、 MacSKK のキーバインドとの噛み合わせに問題があるようで、現段階では常用は難しいので、いったん見送ることにした。そもそも OpenCode を使うのは Radeon AI PRO R9700 を挿していてローカルLLMやってる Windows だからで、それ以外の Mac や Linux では Zed を使う必然性に乏しいのだった。

〆

Windows 版 Zed だいたいイイ感じに整ったんじゃないかな。しばらく使ってみる。