/ Source

Claude Code: Anthropic’s CLI Agent

Участники интервью

  • Борис Черный (Borys Cherny) - разработчик Claude Code в Anthropic
  • Кэтрин Ву (Catherine Wu) - продакт-менеджер Claude Code в Anthropic
  • Интервьюеры: Алессио Фанелли (CTO Decibel) и Swyx (основатель Small.ai)

Что такое Claude Code

Claude Code — это инструмент командной строки (CLI), который дает доступ к возможностям языковой модели Claude в терминале. В отличие от веб-интерфейса или десктопного приложения, Claude Code обладает уникальными возможностями:

  • Доступ к локальной файловой системе — видит все файлы в текущем каталоге
  • Выполнение bash-команд напрямую
  • Агентская функциональность — может действовать автономно
  • Минимальный интерфейс — “сырой” доступ к модели без дополнительных обвязок
  • Композиция с другими инструментами — работает как Unix-утилита

История создания

Claude Code начался как внутренний эксперимент Бориса Черного вскоре после его прихода в Anthropic. Сначала это был проект для экспериментов с моделью в различных контекстах через API. Решающий момент наступил, когда Борис добавил доступ к терминалу и возможность писать код:

“Внезапно инструмент стал очень полезным. Я начал использовать его каждый день. Затем мы дали доступ основной команде, и они тоже начали использовать его ежедневно… Вскоре все его использовали.”

Внутренняя статистика DAU (daily active users) показала вертикальный рост в течение нескольких дней, что подтвердило ценность инструмента.

Принципы разработки

Команда руководствуется принципом “сначала делай простые вещи”. Ключевые моменты их подхода:

  1. Минимализм — “держать вещи настолько простыми, насколько возможно”
  2. Ориентация на работу с моделью напрямую — минимальный интерфейс между пользователем и моделью
  3. Модель как основа — большинство функций реализуются через саму модель, а не через обвязку
  4. Композиционность — интеграция с существующими рабочими процессами
  5. Bitter Lesson — с улучшением модели простой подход часто выигрывает у сложных инженерных решений

Ключевые функции

Компактирование контекста

Решение для управления контекстным окном было реализовано максимально простым способом:

“Мы перепробовали несколько разных вариантов… В итоге мы сделали самое простое — просто попросили Claude обобщить предыдущие сообщения и вернуть это. И забавно, когда модель настолько хороша, простая вещь обычно работает.”

Файл cloud.md для памяти

Вместо сложных архитектур памяти команда создала простой файл cloud.md, который автоматически считывается в контекст:

“У нас были все эти безумные идеи об архитектурах памяти… Но в итоге мы выпустили самое простое, что могло работать.”

Автоматическое принятие действий

Функция, позволяющая модели действовать автономно без подтверждения каждого действия пользователем. Реализована с системой разрешений для безопасности.

Web-доступ

Внедрена функция WebFetch, позволяющая модели получать данные из интернета, разработанная с учетом безопасности и юридических аспектов.

Режим мышления (Thinking mode)

Специальный инструмент, позволяющий модели “думать” перед принятием решений — осуществлять цепочку рассуждений (chain of thought).

Технические особенности

  1. Написан на JavaScript с использованием React Ink для рендеринга в терминале
  2. Bun используется для компиляции кода и ускорения разработки
  3. Около 80-90% кода самого Claude Code написано самой же моделью Claude
  4. Безагентский поиск вместо RAG для поиска информации в кодовой базе:

    “Мы попробовали RAG, а затем несколько инструментов поиска, и в итоге остановились на агентском поиске… И были две большие причины: он превзошел всё остальное по производительности, и нет необходимости в индексировании.”

Продуктивность и использование

Повышение производительности

  • Борис оценивает повышение своей продуктивности примерно в 2 раза
  • Для некоторых инженеров в Anthropic — до 10 раз
  • Средние затраты на использование — около $6 в день на активного пользователя

Примеры использования

  1. Автоматизация разработки:

    “Некоторые люди в Anthropic тратят тысячи долларов в день на такую автоматизацию.”

  2. Семантический линтинг кода вместо традиционного на основе статического анализа

  3. Использование не-программистами:

    “Меган, дизайнер нашей команды, не программист, но она создает PR-запросы. Наш финансист тоже использует — берет данные, помещает в CSV, передает в Claude Code и задает вопросы.”

  4. Нон-интерактивный режим для автоматизации задач:

    “Компании используют его для анализа сотен тысяч тестов в репозитории, обновления устаревших, исправления нестабильных.”

Будущее развитие

  1. Команда расширяется и продолжит поддерживать Claude Code долгосрочно

  2. Интеграция с MCP (Model Completion Protocol) и поддержка пользовательских команд и инструментов

  3. Улучшение межсессионной памяти для продолжения работы между запусками

  4. Возможная монетизация:

    “Сейчас модель оплаты по использованию упрощает начало работы с продуктом… Но мы также слышим запросы о большей предсказуемости цены.”

Интересные детали

  1. Создание собственного парсера Markdown:

    “Ночью перед релизом в 10 вечера я попросил Claude написать парсер Markdown, и он это сделал… Это парсер, который используется в Code сегодня.”

  2. Уровни автономной безопасности:

    “Мы сейчас на уровне 2, граничащем с 3… На уровнях 3, 4 и 5 начинаешь гораздо внимательнее думать о безопасности, потому что на этих уровнях модель способна обмануть пользователя.”

  3. Случай про Docker:

    “Вчера мой Docker-сервер не был запущен, и я попросил запустить вне Docker. Claude сказал: ‘Нет-нет-нет, ты должен запустить Docker и запустить внутри него. Ты не можешь запускать снаружи.’ Это хороший пример того, как иногда ты думаешь, что он делает что-то одно, а он делает другое.”

  4. Ограничения модели:

    “Claude 3.7 — очень настойчивая модель, очень мотивированная достичь цели пользователя, но иногда она воспринимает цель слишком буквально… Классический пример: ‘Сделай так, чтобы этот тест проходил’, и через пять минут: ‘Хорошо, я захардкодил все ответы’.”

  5. Тестирование в параллельных средах:

    “Я буду просить Claude исследовать несколько путей параллельно… в UI когда вы видите задачу, это фактически подагент, который это делает… Обычно я исследую 3-5 вариантов параллельно.”

Ключевые выводы

  1. Простота побеждает сложность — команда Claude Code повторно обнаружила, что минималистичный подход часто превосходит сложные инженерные решения.

  2. AI меняет экономику разработки — стоимость написания кода снижается, что меняет подходы к созданию ПО:

    “Реальность не интернализирована в индустрии… раньше я бы писал большой дизайн-документ и долго бы думал о проблеме, теперь я просто прошу Claude создать три прототипа, и я тестирую, какой мне нравится больше.”

  3. Изменение процессов проверки кода — с использованием AI-инструментов меняется подход к ревью кода:

    “Раньше я чувствовал себя придурком, если в чьем-то PR просил добавить тесты… теперь я всегда прошу, потому что Claude может просто написать тест.”

  4. Снижение барьера для непрограммистов — инструменты вроде Claude Code позволяют дизайнерам, аналитикам и другим не-техническим специалистам создавать код.

  5. ROI вместо стоимости — команда рассматривает высокую стоимость использования модели не как проблему, а как инвестицию:

    “Если вы можете сделать инженера на 50-70% более продуктивным, это стоит многого.”