Сентябрь 2026. Пользователи Cursor из России начали массово получать отказ в доступе: аккаунты блокируются, подписки не продлеваются, вход по ключам режется. История не новая — так же закрывались и другие сервисы. Хорошая новость: в 2026 году привязка к конкретному редактору уже не нужна. Мы собрали за вечер замену, которая повторяет всё, за что любят Cursor — AI-чат справа, инлайн-правку прямо в коде, подсветку гита и ошибок в дереве файлов, MCP-серверы — и при этом работает на ваших ключах, которые никто не отберёт.
Почему Zed
- Открытый редактор на Rust — быстрый, с нативной поддержкой AI-агентов по протоколу ACP. Он не «обвешан» ИИ сверху, как VS Code, а спроектирован вокруг него.
- Интерфейс рисуется видеокартой, а не процессором. Zed полностью аппаратно ускорен: рендеринг идёт на GPU. Отсюда фирменное ощущение мгновенности — интерфейс не блокируется, когда языковой сервер переваривает большой проект. Огромный TypeScript-монолит открывается и работает без долгих зависаний «индексации», к которым привыкли пользователи VS Code-подобных редакторов.
- Модель — любая. Китайские Coding-планы (GLM от Z.AI, Qwen от Alibaba, Kimi от Moonshot) официально доступны из РФ и стоят фиксированную абонплату вместо почасового сжигания токенов.
- Всё лежит у вас: свои ключи, свои настройки в JSON, свои MCP-серверы. Никто не выключит рубильник.
Шаг 1. Редактор
Качаем Zed с zed.dev — есть готовый билд под macOS (на Apple Silicon летает) и Linux. Ставится в один клик.
Второй приятный сюрприз — языковая поддержка уже встроена. TypeScript, JavaScript, CSS, Tailwind CSS, JSON, Python, Go, Rust, Bash, C/C++, YAML, Markdown работают сразу, плюс нативная интеграция ESLint для JS/TS. Языковые серверы Zed подтягивает автоматически при первом открытии проекта — ничего не нужно искать и ставить.
Сравните с Cursor: это тот же форк VS Code, и весь фронтенд-стек там собирается руками из расширений — TypeScript, ESLint, Tailwind Intellisense, Prettier и так далее. Каждое расширение — отдельная точка отказа и лишний шаг в сетапе. В Zed этот этап просто отсутствует: распаковал архив, открыл проект, работаешь. Быстрый сетап IDE — недооценённая штука, когда настраиваешь не один компьютер, а рабочий процесс.
Шаг 2. Инлайн-ассист: модель для правок прямо в коде
Это аналог Cursor-овского Cmd+K: выделяешь код, жмёшь Cmd+I (работает из коробки), пишешь задачу — модель правит кусок кода. Для него в ~/.config/zed/settings.json подключается нативный провайдер:
{
"language_models": {
"openai_compatible": {
"Z.AI": {
"api_url": "https://api.z.ai/api/coding/paas/v4",
"available_models": [
{
"name": "glm-5.3-flash",
"max_tokens": 200000,
"max_output_tokens": 32000,
"reasoning_effort": "medium",
"capabilities": {
"tools": true,
"parallel_tool_calls": true,
"chat_completions": true,
"interleaved_reasoning": true
}
}
]
}
}
}
}
Ключ сюда не пишется — settings.json его не хранит. Вставляется через UI: панель агента → Settings → Language Models → Z.AI → ключ уходит в системный Keychain.
Затем явно назначаем модель инлайн-ассисту — это частая ошибка настройки: без неё вы ловите «LLM provider is not configured», потому что инлайн-правка берёт именно модель по умолчанию, а не ту, что выбрана в чате:
{
"agent": {
"inline_assistant_model": { "provider": "Z.AI", "model": "glm-5.3-flash" },
"inline_assistant_use_streaming_tools": true,
"auto_compact": { "threshold": "80%" }
}
}
Здесь же auto_compact — порог автосжатия контекста в длинных тредах: 80% означает, что при заполнении 80% окна модели старые сообщения свернутся в саммари, и переписка продолжится без обрыва.
Шаг 3. Агент в панели: GLM, Qwen Code, Kimi Code — кто угодно
Вторая, главная часть — агент с инструментами (файлы, терминал, MCP), который живёт в панели справа. Zed ставит внешних агентов из встроенного реестра в один клик: Agent Settings → External Agents → Install from Registry.
Агентов можно ставить несколько и переключаться между ними. Мы используем три:
- glm-acp-agent (Z.AI / GLM);
- Qwen Code (Alibaba / Qwen);
- Kimi (Moonshot / Kimi).
Каждый настраивается своим блоком в agent_servers:
{
"agent_servers": {
"glm-acp-agent": {
"type": "registry",
"default_config_options": {
"model": "glm-5.3-flash",
"mode": "bypass_permissions",
"thought_level": "high"
},
"env": {
"Z_AI_API_KEY": "ВАШ_КЛЮЧ_ИЗ_КОНСОЛИ_Z.AI"
}
},
"qwen-code": {
"type": "registry",
"default_config_options": {
"model": "ваш-маршрут-из-настроек-qwen"
}
},
"kimi": {
"type": "registry",
"default_mode": "default"
}
}
}
Различия минимальны: GLM-агенту ключ передаётся через env (берётся в консоли z.ai), а Qwen Code и Kimi при первом запуске сами предложат авторизоваться — ключи они хранят у себя. default_config_options фиксирует модель, режим разрешений и «глубину размышлений», чтобы каждый новый тред стартовал с нужными параметрами, а не с дефолтами.
Режим bypass_permissions у GLM — это «не спрашивать разрешение на каждую операцию», как YOLO-режим в других редакторах. Удобно, но включайте осознанно: агент сможет менять файлы и запускать команды без подтверждений.
Честности ради: у Cursor выбор агентов тоже есть — это фирменные режимы в составе подписки, и автокомплит с инлайн-правками там сделаны отлично. Но есть две оговорки. Во-первых, в бесплатном тарифе автокомплит и инлайн-правки жёстко лимитированы, а полноценные агенты — по сути фича платной подписки. Во-вторых — и сентябрь это наглядно показал — подписка принадлежит сервису, и её могут отключить в любой момент и по любому поводу: от географии до смены условий. Работа встанет вся, разом. В нашей схеме редактор, агенты и ключи ваши: сгореть может только ключ конкретного провайдера — и меняется он за пять минут, не вся рабочая среда.
Шаг 4. Раскладка «как в Cursor»
Файлы слева, код в центре, агент справа — настраивается двумя строчками:
{
"project_panel": { "dock": "left" },
"agent": { "sidebar_side": "right" }
}
Редактор по центру — поведение по умолчанию. Панели показываются Cmd+B и Cmd+;, Zed запоминает их состояние между сессиями.
Шаг 5. Хоткеи «как в Cursor»
Cursor — форк VS Code, поэтому база уже есть: в настройках ставим "base_keymap": "VSCode", и обычные шорткаты (Cmd+P, Cmd+Shift+P, Cmd+B) совпадают сами.
Инлайн-ассист — Cmd+I из коробки, панель агента — Cmd+?. А фирменную курсоровскую привычку «кинуть выделенный код агенту» возвращаем одним блоком в ~/.config/zed/keymap.json:
[
{
"context": "Editor && mode == full",
"bindings": {
"cmd-l": "agent::AddSelectionToThread"
}
},
{
"context": "Editor && mode == full",
"unbind": {
"cmd->": "agent::AddSelectionToThread"
}
}
]
Теперь выделяешь функцию, жмёшь Cmd+L — и она улетает в тред агента как контекст. (Блок для контекста AcpThread повторяет тот же биндинг, чтобы хоткей работал и когда фокус уже в панели агента.)
Шаг 6. Подсветка изменений и ошибок в дереве файлов
Тот самый вид из Cursor: изменённые файлы цветом, файлы с ошибками — красным с количеством:
{
"project_panel": {
"git_status": true,
"git_status_indicator": true,
"show_diagnostics": "all",
"diagnostic_badges": true
}
}
Нюанс: ошибки (в том числе ESLint) показывает LSP, поэтому подсвечиваются открытые файлы. Прогон линтера по всему проекту до открытия — не фича Zed.
Шаг 7. MCP-серверы
MCP-серверы из Cursor переезжают в тот же settings.json, в секцию context_servers. Совет из практики: не тащите ключи и PATH прямо в settings.json — заверните каждый сервер в shell-обёртку, а в конфиге оставьте одну строчку:
{
"context_servers": {
"my-mcp-server": {
"enabled": true,
"command": "~/mcp/bin/my-mcp-server.sh",
"args": []
}
}
}
Обёртка — обычный bash-скрипт: достаёт токен из Keychain, выставляет переменные, запускает сервер. Профиты:
- В settings.json не лежат секреты — его не жалко показать, сдать в репозиторий или скинуть коллеге;
- пути к nvm-node спрятаны внутри скрипта — обновление ноды ломает один скрипт, а не шесть записей конфига;
- включение/выключение сервера — флажок
enabled, без удаления настройки.
Грабли, на которые мы наступили (сэкономьте вечер)
- «LLM provider is not configured» при инлайн-правке — лечится не ключом, а назначением
agent.inline_assistant_model(см. шаг 2) или выбором модели по умолчанию в селекторе панели. - Обновление nvm сломало все node-серверы разом — пути вида
~/.nvm/versions/node/v26.3.0/...умерли после апгрейда. Обёртки-скрипты решают это раз и навсегда. - Недоступный MCP-сервер может не дать создать тред агента. Автоматического «пропустить упавший сервер» в Zed нет (известная проблема). Профилактика: держать неиспользуемые серверы выключенными (
"enabled": false), включая по необходимости. Если сервер упал уже во время сессии — некритично, чат продолжит работать. - «Incomplete model stream: no supported terminal reason» — стрим ответа оборвался (сеть/прокси до API). Не поломка: перегенерируйте ответ.
Что в итоге
| Возможность | Cursor | Наша сборка |
|---|---|---|
| Чат-агент справа | ✅ | ✅ |
| Инлайн-правка прямо в коде | ✅ | ✅ |
| «Кинуть выделение агенту» | ✅ | ✅ |
| Гит-статус и ошибки в дереве | ✅ | ✅ |
| MCP-серверы | ✅ | ✅ |
| Несколько агентов на выбор | ✅ по подписке | ✅ свои: GLM / Qwen / Kimi |
| Автокомплит и инлайн-правки бесплатно | ⚠️ лимиты free-тарифа | ✅ нужен только ключ модели |
| Риск, что работа встанет | подписку могут отключить | только свой ключ, меняется за минуты |
| Доступ из РФ | ❌ | ✅ |
| Кто контролирует ключи | сервис | вы |
Наша сборка не идеальна: у Cursor по-прежнему лучшая полировка автокомплита и «из коробки»-опыт без единой строчки конфигов. Но цена этого удобства — полная зависимость от чужой подписки. Если хотите независимости — Zed даёт те же ключевые сценарии за один вечер настройки.
Коротко
Cursor для РФ закрыли, но это не приговор: Zed + Coding-планы GLM/Qwen/Kimi дают те же сценарии — чат-агент, инлайн-правки по Cmd+I, гит и ошибки в дереве, MCP-серверы — на ваших ключах, без риска, что подписку отключат. Настройка занимает один вечер, все конфиги — в статье.
