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": "prism",
            "display_name": "Prism",
            "max_tokens": 1000000,
            "max_completion_tokens": 16000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "deepseek-v4.1-flash-1017",
            "display_name": "DeepSeek V4.1 Flash 1017",
            "max_tokens": 1000000,
            "max_completion_tokens": 262144,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "deepseek-v4.1-flash",
            "display_name": "DeepSeek V4.1 Flash",
            "max_tokens": 1000000,
            "max_completion_tokens": 262144,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "deepseek-v4-pro-0813",
            "display_name": "DeepSeek V4 Pro 0813",
            "max_tokens": 1000000,
            "max_completion_tokens": 262144,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "deepseek-v4-flash-0731",
            "display_name": "DeepSeek V4 Flash 0731",
            "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": "kimi-k3",
            "display_name": "Kimi K3",
            "max_tokens": 1048576,
            "max_completion_tokens": 16000,
            "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-k2-thinking",
            "display_name": "Kimi K2 Thinking",
            "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": "glm-5.3",
            "display_name": "GLM 5.3",
            "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": "glm-5.3-flash",
            "display_name": "GLM 5.3 Flash",
            "max_tokens": 1048576,
            "max_completion_tokens": 131072,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "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": 32768,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "minimax-m3",
            "display_name": "MiniMax M3",
            "max_tokens": 512000,
            "max_completion_tokens": 512000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "minimax-m2.7",
            "display_name": "MiniMax M2.7",
            "max_tokens": 262100,
            "max_completion_tokens": 6553,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": false,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "inkling",
            "display_name": "Inkling",
            "max_tokens": 1048576,
            "max_completion_tokens": 65536,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.8-max",
            "display_name": "Qwen3.8-Max",
            "max_tokens": 1000000,
            "max_completion_tokens": 65536,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.8-flash",
            "display_name": "Qwen3.8-Flash",
            "max_tokens": 1000000,
            "max_completion_tokens": 128000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.8-27b",
            "display_name": "Qwen3.8-27B",
            "max_tokens": 1000000,
            "max_completion_tokens": 128000,
            "capabilities": {
              "chat_completions": false,
              "images": true,
              "interleaved_reasoning": true,
              "tools": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": false
            }
          },
          {
            "name": "qwen3.8-2.4t-a95b",
            "display_name": "Qwen3.8-2.4T-A95B",
            "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": "qwen3.7-max",
            "display_name": "Qwen3.7-Max",
            "max_tokens": 1000000,
            "max_completion_tokens": 64000,
            "capabilities": {
              "chat_completions": false,
              "images": false,
              "interleaved_reasoning": true,
              "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": true,
              "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": 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": "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
            }
          }
        ]
      }
    }
  }
}
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.