Changelog Claude Code: что изменилось и как откатить версию

A
12 min readClaude Code

На 23 сентября 2026 года latest — 2.1.280, stable — 2.1.267. Как вывести изменения после своей версии, найти версию с регрессией и откатиться на предыдущую.

Шкала релизов Claude Code: stable 2.1.267 от 9 сентября и latest 2.1.280 от 22 сентября 2026 года, между ними 13 дней и 12 релизов

Полный перечень изменений Claude Code по версиям есть в одном месте — в официальном changelog. Страница собирается из файла CHANGELOG.md в репозитории anthropics/claude-code и существует только на английском. Русская страница «Что нового» — еженедельный дайджест заметных функций: по ней удобно понять главное за неделю, но исправлений и мелких улучшений там нет.

Свою версию показывает claude --version в терминале или /status внутри сессии. По состоянию на 23 сентября 2026 года самая свежая версия — 2.1.280 (вышла 22 сентября), а канал stable, судя по тегу в npm, держится на 2.1.267 от 9 сентября.

Что делать в зависимости от задачи:

  • Нужен список всего, что вышло после вашей версии — скачайте CHANGELOG.md и обрежьте его на своём номере командой awk из раздела ниже.
  • После обновления что-то сломалось — ищите в changelog слова, описывающие симптом, и пометку regression in. Исправление уже вышло — обновитесь; ещё нет — поставьте версию до виновной и отключите автообновление.
  • Не хотите получать свежие релизы в первый же день — переключитесь на канал stable: туда попадают версии примерно недельной давности, без релизов с серьёзными регрессиями.

Какой источник отвечает на ваш вопрос

У Anthropic несколько страниц с заметками о выпусках, и отвечают они на разные вопросы.

ВопросГде смотретьЧто важно знать
Что именно изменилось в версии, включая мелкие исправленияChangelog или CHANGELOG.md на GitHubТолько на английском. Локализованные адреса вроде /docs/ja/changelog по состоянию на 23 сентября 2026 года показывают тот же английский файл
Главное за неделю, по-русски«Что нового»Каждая неделя подписана диапазоном версий. Например, неделя 37 (7–11 сентября 2026 года) — v2.1.263–v2.1.269, главная новинка — claude plugin eval
Заметки к релизу, не выходя из сессии/release-notesМожно выбрать одну версию или показать все. Текст выводится в терминал, но не попадает в разговор, который видит Claude
Какая версия установленаclaude --version, /status, claude doctorclaude doctor заодно показывает результат последней попытки автообновления
Точное время выхода, подписка на релизыGitHub Releases, Atom-лента https://github.com/anthropics/claude-code/releases.atomВремя указано в UTC, а в changelog стоит только дата без часового пояса, поэтому даты иногда расходятся на день
Изменения API и моделей на платформеRelease notes Claude PlatformClaude Code там не расписывают — отсылают к CHANGELOG.md
Изменения в приложениях Claude, например удаление моделей из списка выбораRelease notes в Help CenterКасается и списка моделей в Claude Code
Какие версии сейчас latest и stablenpm view @anthropic-ai/claude-code dist-tagsТеги меняются при каждом продвижении версии

Читать changelog целиком от начала до вашей версии непрактично. На 23 сентября 2026 года в нём 402 записи — от 0.2.21 (2 апреля 2025 года) до 2.1.280, а исходный Markdown весит около 764 КБ. Только за 2026 год до 22 сентября вышло 226 версий, от 20 до 28 в месяц. Объём релизов сильно различается: в 2.1.280 — 114 пунктов, в 2.1.277 — 87, а в 2.1.276, 2.1.272 и 2.1.270 — по одному.

Что изменилось после вашей версии: одна команда

Идея простая: в CHANGELOG.md самые новые версии идут сверху, каждая начинается с заголовка вида ## 2.1.280. Значит, достаточно вывести файл до заголовка с вашим номером.

bash
# 1. Узнать установленную версию
claude --version
# 2.1.275 (Claude Code)

# 2. Сохранить changelog в файл
curl -fsSL -o CHANGELOG.md https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md

# 3. Вывести всё, что вышло после 2.1.275
awk -v mine="2.1.275" '/^## /{ if ($2==mine) exit } {print}' CHANGELOG.md

Для версии 2.1.275 на 23 сентября 2026 года команда выводит заголовки 2.1.280, 2.1.278, 2.1.277 и 2.1.276 и 204 строки с пунктами изменений. Чтобы сначала оценить масштаб, добавьте в конец | grep '^## ' (только номера версий) или | grep -c '^- ' (число пунктов).

Схема: awk выводит CHANGELOG.md сверху вниз до заголовка 2.1.275 — это 4 версии и 204 пункта; сохраните файл, прежде чем запускать awk
Схема: awk выводит CHANGELOG.md сверху вниз до заголовка 2.1.275 — это 4 версии и 204 пункта; сохраните файл, прежде чем запускать awk

На чём команда чаще всего спотыкается:

  • Не передавайте вывод curl прямо в awk. awk останавливается на вашей версии и закрывает ввод, curl не может дописать остаток и печатает curl: (56) Failure writing output. Поэтому файл сначала сохраняется.
  • Номер версии — ровно как в claude --version, без приписки «(Claude Code)». Подставить его автоматически можно так: mine=$(claude --version | awk '{print $1}'), а затем awk -v mine="$mine" ....
  • Если awk вывел весь файл до конца, заголовка с вашим номером в нём нет — чаще всего это опечатка в номере.
  • Шаблон рассчитан на заголовки ## 2.1.x. Если Anthropic изменит формат файла, условие /^## / придётся поправить.
  • На Windows команды работают в WSL или другой среде с curl, awk и grep.

Если нужна одна конкретная версия, проще не выходить из Claude Code: /release-notes откроет список версий с их заметками.

В какой версии изменилось поведение

Когда коллега говорит «в новой версии поменяли X», найти эту версию помогает поиск по тому же файлу. grep -n -i "agents.md" CHANGELOG.md покажет номера строк, но не версии. Следующая команда печатает версию перед каждой найденной строкой (ключевое слово пишите строчными буквами):

bash
awk -v k="agents.md" '/^## /{v=$2} index(tolower($0), k){print v": "$0}' CHANGELOG.md

Результат начнётся со строки 2.1.277: - Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; ... — то есть чтение AGENTS.md при отсутствии CLAUDE.md появилось в 2.1.277.

Регрессии помечены прямо в тексте

Если что-то сломалось после обновления, ищите не только слова симптома, но и слово «regression». В пунктах-исправлениях Anthropic часто указывает версию, которая внесла проблему. На 23 сентября 2026 года в changelog 24 пункта с пометкой вида (regression in 2.1.x), а также встречаются формулировки вроде a regression introduced in 2.1.255. Поэтому ищите по корню слова:

bash
awk '/^## /{v=$2} /[Rr]egression/{print v": "$0}' CHANGELOG.md

Как это выглядит на практике:

  • в 2.1.269 исправили F1/F2/F4 в терминалах с протоколом клавиатуры kitty и Shift с пунктуацией в WezTerm — пометка regression in 2.1.247;
  • в 2.1.270 и 2.1.275 исправили по проблеме с пометкой regression in 2.1.269: read-only git-команды в Bash начинали запрашивать разрешение после долгой сессии, а переименование работающей сессии в VS Code откатывалось к сгенерированному имени.

Дальше решение простое. Версия исправления новее вашей — обновитесь. Исправления ещё нет — поставьте версию, предшествующую той, что указана в пометке (как — ниже). Учтите, что помечена далеко не каждая регрессия: отсутствие пометки не доказывает, что проблема не связана с обновлением.

latest или stable: какой канал держать

Канал задаёт настройка autoUpdatesChannel, и от неё зависят и фоновые обновления, и claude update (документация по каналам):

  • "latest" — значение по умолчанию, новые версии приходят сразу после выхода;
  • "stable" — версия обычно примерно недельной давности, релизы с серьёзными регрессиями пропускаются.

«Примерно неделя» — типичный случай, а не гарантия. По тегам npm на 23 сентября 2026 года stable (2.1.267 от 9 сентября) отставал от latest (2.1.280 от 22 сентября) на 13 дней и 12 опубликованных релизов: 2.1.268–2.1.278 и 2.1.280. Проверить текущий разрыв можно командой npm view @anthropic-ai/claude-code dist-tags.

Для нативного установщика в тот же день номера совпадали: curl -fsSL https://downloads.claude.ai/claude-code-releases/stable возвращал 2.1.267, а тот же адрес с /latest на конце — 2.1.280. Этими адресами пользуется скрипт установки Anthropic, но в документации они не описаны, так что это наблюдение на 23 сентября 2026 года, а не гарантия: формат может измениться без предупреждения.

Отставание бывает и заметно больше недели. В репозитории apt канала stable после 2.1.236 (вышла 19 августа) сразу идёт 2.1.267 (9 сентября) — 21 день спустя. Ни одна сборка из промежутка 2.1.237–2.1.266 туда не попала, в том числе версии, которые не запускались на macOS 12 (регрессия из 2.1.255, исправлена в 2.1.258). Две оговорки: это даты выхода версий, а не даты их перевода в stable, и то, что нативный канал stable шёл по тем же версиям, — предположение.

Что это значит на конкретном примере. На stable 2.1.267 по состоянию на 23 сентября нет claude plugin eval (появился в 2.1.269), чтения AGENTS.md вместо отсутствующего CLAUDE.md (2.1.277) и Opus 5.5 как модели Opus по умолчанию (2.1.280). Зато и проблемы, внесённые в 2.1.269, до этой версии не доходят.

Шкала релизов 9–22 сентября 2026 года: stable 2.1.267, затем 2.1.269 с регрессиями, исправления в 2.1.270 и 2.1.275, AGENTS.md в 2.1.277 и latest 2.1.280 с Opus 5.5
Шкала релизов 9–22 сентября 2026 года: stable 2.1.267, затем 2.1.269 с регрессиями, исправления в 2.1.270 и 2.1.275, AGENTS.md в 2.1.277 и latest 2.1.280 с Opus 5.5
СитуацияЧто делать
Нужны новые модели и функции сразу после выходаОставайтесь на latest
Команда, общая среда или CI, где важнее предсказуемостьstable; в организации канал можно закрепить через managed settings
Вы на latest, хотите перейти на stable, но не хотите откатываться на старую версиюПереключите канал в /config и выберите «остаться на текущей версии» — это выставит minimumVersion
Конкретная версия сломала работу, исправления ещё нетУстановите предыдущую версию и отключите автообновление до выхода исправления
Организации нужен допустимый диапазон версийManaged settings requiredMinimumVersion и requiredMaximumVersion

Как переключить канал и задать минимальную версию

Канал меняется в /configAuto-update channel или в settings.json:

json
{
  "autoUpdatesChannel": "stable"
}

При переходе с latest на stable через /config Claude Code спросит, остаться ли на текущей версии или разрешить откат. Если остаться, текущая версия записывается в minimumVersion. Обратное переключение на latest эту настройку очищает.

minimumVersion — это нижняя граница, а не фиксация версии: ни фоновое обновление, ни claude update не поставят ничего ниже указанного номера, но версии выше продолжат приходить.

json
{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}

Для организаций:

  • в managed settings можно навязать единый канал и минимальную версию, которую не переопределят пользовательские и проектные настройки;
  • requiredMinimumVersion и requiredMaximumVersion заставляют Claude Code отказываться запускаться вне заданного диапазона, а обновления не поднимаются выше максимума (подробнее о минимальной версии).

У Homebrew канал выбирается не настройкой, а cask-пакетом: claude-code следует за stable, claude-code@latest — за latest. Репозитории apt, dnf и apk тоже публикуются в двух вариантах, stable и latest.

Как откатиться на конкретную версию

Нативный установщик принимает номер версии или название канала (раздел документации). Если Claude Code уже установлен нативно, достаточно документированной команды claude install 2.1.267: она ставит или переустанавливает бинарник и принимает номер версии, stable или latest (справочник CLI). Через скрипт установки откат на 2.1.267 выглядит так:

bash
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash -s 2.1.267
powershell
# Windows PowerShell
& ([scriptblock]::Create((irm https://claude.ai/install.ps1 ))) 2.1.267
batch
:: Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.267 && del install.cmd

Для npm-установки работает обычный синтаксис npm: npm install -g @anthropic-ai/claude-code@2.1.267. После установки claude --version должен вывести 2.1.267 (Claude Code).

Сразу после отката отключите автообновление, иначе откат может не продержаться. В документации этот случай не разобран, но в issue #91309 пользователи описывают именно его: фоновое автообновление перевело машины на macOS 12 на 2.1.257, которая не запускалась. Откат через curl -fsSL https://claude.ai/install.sh | bash -s 2.1.252 удержался только вместе с DISABLE_AUTOUPDATER — без переменной следующее фоновое обновление тихо ставило сломанную сборку обратно. Предыдущие версии при этом оставались в ~/.local/share/claude/versions/, а после исправления в 2.1.258 автор issue убрал и привязку к версии, и переменную. Это сообщения двух пользователей на одной ОС, а не заявление Anthropic, но риск они показывают наглядно.

Переменная задаётся в ключе env файла settings.json:

json
{
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}

Для нативной и npm-установки проверка — claude doctor: строка Auto-updates должна показывать disabled (set by env: DISABLE_AUTOUPDATER) вместо enabled.

Три оговорки:

  • DISABLE_AUTOUPDATER отключает только фоновую проверку. claude update и claude install продолжают работать, и ручной claude update вернёт вас на свежую версию. Когда исправление появится в changelog, удалите переменную и обновитесь.
  • DISABLE_UPDATES блокирует все пути обновления, включая ручные. Он нужен тем, кто раздаёт Claude Code через собственные каналы и хочет удержать всех на своей версии.
  • Копия Claude Code внутри приложения Claude Desktop (~/Library/Application Support/Claude/claude-code/<version>/) — отдельная установка со своими обновлениями. По сообщениям в issue #92401, ни DISABLE_AUTOUPDATER, ни установка версии через install.sh её не затрагивают: они действуют только на отдельный CLI.

Если откатываться на конкретный номер не нужно, а хочется просто перестать получать самые свежие сборки, установите канал stable: bash -s stable вместо номера версии. Канал, выбранный при установке, становится каналом автообновления по умолчанию.

Homebrew, WinGet и пакеты Linux

Эти способы по умолчанию не обновляются сами (для Homebrew и WinGet — пока не включена переменная CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE), поэтому установленная версия держится, пока вы не запустите обновление. Выбор старых версий у них разный (данные на 23 сентября 2026 года):

  • Homebrew — только два cask: claude-code (2.1.267) и claude-code@latest (2.1.280). Отдельного cask для произвольного номера нет, так что выбирать можно лишь между stable и latest.
  • WinGet — один пакет Anthropic.ClaudeCode, но в репозитории microsoft/winget-pkgs хранится много прошлых версий, например 2.1.252, 2.1.267 и 2.1.268. Манифесты создаёт автоматический инструмент, и самой новой версией в тот день была 2.1.268 — не stable и не latest. Поэтому версия в WinGet может не совпадать ни с одним каналом.
  • apt, dnf, apk — репозитории хранят старые сборки. В индексе apt stable 54 версии (от 2.1.108 до 2.1.267), в apt latest — 134, вплоть до 2.1.280. Самая новая сборка в rpm-репозитории stable — 2.1.267, в apk stable тоже 54 версии. Номер пакета записывается с суффиксом: 2.1.267-1 в apt, 2.1.267-r1 в apk.

Команды ниже — штатный синтаксис самих менеджеров пакетов, а не инструкции из документации Anthropic; запуском на Windows и Linux они не проверены:

bash
# WinGet (Windows)
winget install Anthropic.ClaudeCode --version 2.1.267

# Debian, Ubuntu: установить и запретить обновление пакета
sudo apt install claude-code=2.1.267-1
sudo apt-mark hold claude-code
# после выхода исправления: sudo apt-mark unhold claude-code

# Fedora, RHEL
sudo dnf install claude-code-2.1.267

# Alpine
apk add claude-code=2.1.267-r1

Как обновиться при разных способах установки

Способ установкиОбновляется самКоманда для ручного обновления
Нативный установщикДа: проверка при запуске и периодически во время работы, загрузка в фоне, новая версия включается при следующем запускеclaude update
npmДа, если глобальный каталог npm доступен для записиnpm install -g @anthropic-ai/claude-code@latest
HomebrewНетbrew upgrade claude-code или brew upgrade claude-code@latest — в зависимости от установленного cask
WinGetНетwinget upgrade Anthropic.ClaudeCode
aptНетsudo apt update && sudo apt upgrade claude-code
dnfНетsudo dnf upgrade claude-code
apkНетapk update && apk upgrade claude-code

Подробности — в разделе об обновлениях. Несколько деталей, на которых легко потерять время:

  • npm: не используйте npm update -g — эта команда соблюдает semver-диапазон исходной установки и может не дотянуть до последней версии. С версии 2.1.198 пакет требует Node.js 22 или новее; на старом Node.js npm выдаёт предупреждение EBADENGINE, но установка завершается и claude запускается, потому что пакет ставит тот же нативный бинарник.
  • Homebrew и WinGet: переменная CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 разрешает Claude Code самому запускать обновление через менеджер пакетов. Для apt, dnf и apk такой опции нет — нужны права администратора.
  • Уведомление раньше пакета: Claude Code может сообщить о новой версии до того, как она появилась в Homebrew, WinGet или репозиториях Linux. Если обновление не находится, подождите и повторите позже.
  • Как понять, что обновление прошло: claude update печатает Successfully updated from <old version> to version <new version>, если обновил, и Claude Code is up to date (<version>), если обновлять нечего. При установке через Homebrew, WinGet или apk вместо этого выводится Claude is up to date!.

Заметные изменения 2026 года по версиям

Таблица помогает быстро понять, до какой версии нужно обновиться ради конкретной функции или начиная с какой версии изменилось поведение по умолчанию. Доступность моделей зависит ещё и от тарифа и провайдера.

Версия и датаЧто изменилось
2.1.197, 30 июняSonnet 5 стала моделью по умолчанию, контекст 1M
2.1.198, 1 июляСубагенты по умолчанию работают в фоне; Claude in Chrome стал общедоступным; npm-пакет требует Node.js 22+
2.1.219, 24 июляOpus 5 (claude-opus-5) — модель Opus по умолчанию
v2.1.220–v2.1.224, 3–7 августаAuto mode становится режимом разрешений по умолчанию для новых сессий на Pro, Max и Team с 14 августа (дайджест недели 32) — см. Auto mode или bypassPermissions в Claude Code
2.1.224, 7 августаSelf-hosted окружения через claude self-hosted-runner для Team и Enterprise
2.1.257, 1 сентябряFable 5.1 (claude-fable-5-1) — модель Fable по умолчанию, контекст 1M, $10 / $50 за 1 млн токенов, чтение из кэша $0,25 — подробнее в материале Claude Fable 5.1: цена API, изменения и миграция
2.1.269, 11 сентябряclaude plugin eval — прогон плагина на наборе тестовых случаев
2.1.277, 18 сентябряЕсли в проекте нет CLAUDE.md, читается AGENTS.md (пока не на Bedrock, Vertex и Foundry)
2.1.280, 22 сентябряOpus 5.5 (claude-opus-5-5) — модель Opus по умолчанию, контекст 1M, $4 / $20 за 1 млн токенов, чтение из кэша $0,20 — см. Claude Opus 5.5: сколько стоит API и что проверить при переходе с Opus 5

У 2.1.280 есть деталь, которую легко пропустить: уровень effort, сохранённый до того, как /effort стал настраиваться отдельно для каждой модели, больше не применяется к новым моделям вроде Opus 5.5. Они стартуют с уровнем по умолчанию, пока вы не выберете другой. Если после обновления ответы Opus стали заметно другими, первым делом загляните в /effort.

Частые вопросы

Какая последняя версия Claude Code?

По состоянию на 23 сентября 2026 года — 2.1.280: в changelog она датирована 22 сентября, на GitHub Releases опубликована в 16:38 UTC. На канале stable в тот же день стояла 2.1.267. Актуальные номера покажет npm view @anthropic-ai/claude-code dist-tags, а /doctor внутри сессии проверяет, есть ли более новая версия на вашем канале.

Есть ли changelog на русском?

Нет. Полный список изменений по версиям публикуется только на английском, даже по локализованным адресам. На русском есть «Что нового» — выжимка главного за неделю с диапазоном версий, но без списка исправлений.

Почему в списке нет версии 2.1.279?

Номера версий идут с пропусками: внутри диапазона 2.1.x у 57 номеров нет записи в changelog. Для 2.1.262, 2.1.264 и 2.1.279 нет ни пакета в npm, ни тега на GitHub — эти номера просто не публиковались. Отозванным релизом пропуск считать не нужно.

Почему дата в changelog и на GitHub различается?

Changelog показывает только дату без часового пояса, а GitHub Releases — время публикации в UTC. Релиз, вышедший поздно вечером по одному часовому поясу, может оказаться следующим днём по другому.

Тратит ли /release-notes контекст модели?

По текущей документации нет: заметки выводятся в терминал, но не попадают в разговор, который видит Claude. В ранних сборках встречалась ошибка, из-за которой при выборе «Show all» changelog всё-таки попадал в контекст; её исправили.