Skip to content

Zed

Zed is minimal code editor built for speed and collaboration with humans and AI. Crush works great in Zed's Terminal Threads and supports Hyper out of the box!

Zed also has a built-in LLM harness you can use with Hyper through our OpenAI Responses endpoints.

Prerequisites

  • A Hyper account with an API key
  • Zed installed

Using Crush in Terminal Threads

Set Crush up, start Zed normally, open the agent panel, click the + icon in the top right of the agent panel, and select Terminal. This creates a new thread in the thread sidebar. In that terminal, run crush.

Using Hyper in the Zed Agent

This requires both adding some configuration to your settings file and pasting your API key into the Zed UI so Zed can store it encrypted in your system keychain.

Configuration

Open the command palette, search for and run zed: open settings file, add the following configuration, then save:

json
{
  "language_models": {
    "openai_compatible": {
      "hyper": {
        "api_url": "https://hyper.charm.land/v1",
        "available_models": [
          {
            "name": "deepseek-v4-flash",
            "display_name": "DeepSeek V4 Flash",
            "max_tokens": 1000000,
            "max_completion_tokens": 384000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "deepseek-v4-pro",
            "display_name": "DeepSeek V4 Pro",
            "max_tokens": 1000000,
            "max_completion_tokens": 384000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "gemma-4-26b-a4b-it",
            "display_name": "Gemma 4 26B A4B",
            "max_tokens": 256000,
            "max_completion_tokens": 25600,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "glm-5",
            "display_name": "GLM-5",
            "max_tokens": 202752,
            "max_completion_tokens": 20275,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "glm-5.1",
            "display_name": "GLM-5.1",
            "max_tokens": 202800,
            "max_completion_tokens": 131072,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "glm-5.2",
            "display_name": "GLM-5.2",
            "max_tokens": 1000000,
            "max_completion_tokens": 128000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "gpt-oss-120b",
            "display_name": "gpt-oss-120b",
            "max_tokens": 131072,
            "max_completion_tokens": 13107,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "kimi-k2.5",
            "display_name": "Kimi K2.5",
            "max_tokens": 262144,
            "max_completion_tokens": 26214,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "kimi-k2.6",
            "display_name": "Kimi K2.6",
            "max_tokens": 262000,
            "max_completion_tokens": 262000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "kimi-k2.7-code",
            "display_name": "Kimi K2.7 Code",
            "max_tokens": 256000,
            "max_completion_tokens": 16000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "kimi-k3",
            "display_name": "Kimi K3",
            "max_tokens": 1048576,
            "max_completion_tokens": 131072,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "llama-3.3-70b-instruct",
            "display_name": "Llama 3.3 70B Instruct",
            "max_tokens": 128000,
            "max_completion_tokens": 12800,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "llama-4-maverick-17b-128e-instruct-fp8",
            "display_name": "Llama 4 Maverick 17B 128E Instruct FP8",
            "max_tokens": 430000,
            "max_completion_tokens": 43000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "minimax-m2.7",
            "display_name": "MiniMax M2.7",
            "max_tokens": 204800,
            "max_completion_tokens": 20480,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.6-flash",
            "display_name": "Qwen3.6-Flash",
            "max_tokens": 1000000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.6-max",
            "display_name": "Qwen3.6-Max",
            "max_tokens": 256000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.6-plus",
            "display_name": "Qwen3.6-Plus",
            "max_tokens": 1000000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.7-flash",
            "display_name": "Qwen3.7-Flash",
            "max_tokens": 1000000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.7-max",
            "display_name": "Qwen3.7-Max",
            "max_tokens": 1000000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.7-plus",
            "display_name": "Qwen3.7-Plus",
            "max_tokens": 1000000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3-coder-480b-a35b-instruct-int4-mixed-ar",
            "display_name": "Qwen3 Coder 480B A35B Instruct INT4 Mixed AR",
            "max_tokens": 106000,
            "max_completion_tokens": 10600,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3-next-80b-a3b-instruct",
            "display_name": "Qwen3 Next 80B A3B Instruct",
            "max_tokens": 262144,
            "max_completion_tokens": 26214,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          }
        ]
      }
    }
  }
}
You can also configure which model is used for which particular feature to better optimise costs for your situation. Here's an example with sensible defaults:
jsonc
{
  "agent": {
    "default_model": {
      "provider": "hyper",
      "model": "qwen3.7-max",
    },
    "inline_assistant_model": {
      "provider": "hyper",
      "model": "deepseek-v4-flash",
    },
    "commit_message_model": {
      "provider": "hyper",
      "model": "deepseek-v4-flash",
    },
    "thread_summary_model": {
      "provider": "hyper",
      "model": "deepseek-v4-flash",
    },
    "subagent_model": {
      "provider": "hyper",
      "model": "qwen3.7-plus",
    },
    // This is *in addition to* inline_assistant_model, and your inline
    // request would be sent to both models at once.
    // "inline_alternatives": [
    //   {
    //     "provider": "hyper",
    //     "model": "qwen3.7-plus"
    //   }
    // ]
  },
}

Authentication

Open the command palette, search for and run agent: open settings, scroll down to the LLM Providers section, find Hyper, and paste your API key in the field. Zed stores this key encrypted in your system keychain.

Selecting a Hyper model and creating a new thread

Start Zed normally, open the agent panel, click the + icon in the top right of the agent panel, and select Zed Agent. In the model picker in the bottom right, look for the Hyper provider section and select a model from that section.