От Cha к Ch

Репозиторий проекта на GitHub

Большое объявление

Я закрываю Cha и сосредотачиваюсь на Ch. 23 августа 2025 года я пометил Cha как устаревший и направил все будущие усилия по разработке в сторону Ch. Философия теперь проста: держать один инструмент, который простой, лёгкий и быстрый, поддерживать его и исправлять ошибки. Никакой погони за фичами.

Почему я изначально разработал Cha

Когда LLM и ChatGPT появились, нужных мне CLI-инструментов не было. ChatGPT вышел в ноябре 2022 года и действительно стал популярным в начале 2023 года с выпуском GPT-4. Я ждал появления надёжных инструментов командной строки, но ни один из них не работал так, как мне хотелось. Поэтому я создал Cha и использовал его ежедневно. Фактически, в моём первом посте в блоге я прямо сказал: подобные проекты были распространены, но ни один не соответствовал моим потребностям, поэтому я написал свой.

Cha был моим детищем. Я использовал его каждый день и с удовольствием над ним работал. В течение года он немного вырос, набрав более 60 звёзд на GitHub. За это время он обзавёлся веб-скрейпингом, извлечением расшифровок с YouTube, генерацией изображений, многострочным вводом, как интерактивным, так и неинтерактивным чатом, вводом команд голосом (STT), поддержкой пользовательских инструментов, поддержкой различных платформ помимо OpenAI, собственным поисковым движком ответов, расширенной навигацией по каталогам и редактированием файлов, возможностью копирования содержимого в буфер обмена, TTS для ответов и т.д. Он много умел, работал и был действительно полезным и мощным инструментом командной строки.

Почему переехал на Ch (с Python на Go)

Со временем Cha стал тяжеловат. Отличный набор функций, но слишком большая поверхность для того, что мне нужно ежедневно. Это привело к тому, что Cha разросся и стал громоздким. Также не помогло то, что он был написан на Python, что привнесло две критические проблемы. Первая — это скорость: только начальная загрузка всё ещё занимала 0.8 секунды, и это было после множества оптимизаций и инженерных ухищрений, чтобы обойти медленный начальный импорт пакетов в Python и использование мультипроцессинга. И Python очень сложно установить. Из-за зависимостей Cha от различных сторонних open-source инструментов его было очень трудно установить. Переломным моментом для меня стало путешествие с только планшетом на Android с запущенным iTermux — и он вообще не работал, а попытки заставить его как-то работать были очень болезненными и бессмысленными.

Поэтому я решил начать новый эксперимент под названием Ch. Ch должен был быть похож на Cha, НО написанным на GoLang вместо Python и содержащим ТОЛЬКО основные функции Cha с идеей быть лёгким, быстрым, простым в установке на большинстве систем и не таким насыщенным функциями. Так проект будет проще поддерживать одному разработчику.

После нескольких месяцев работы и использования Ch я увидел, что будущее Cha — через Ch, а не через исходную кодовую базу Cha. Я потратил слишком много времени на Cha; поддерживать обе кодовые базы было затратно для одного разработчика, а Ch выполнял основную работу, будучи намного легче, быстрее и проще в установке. Это прояснило решение…

Переписывание на Go даёт мне быстрый запуск, один бинарник и меньшую ментальную модель. README Ch хорошо это подытоживает: Ch — это преемник с более чем 10x более быстрой загрузкой и значительно лучшей производительностью.

Решение

Я официально пометил Cha как устаревший 23 августа 2025 года и перенаправил людей на Ch через README Cha. Репозиторий Cha остаётся как историческая справка, а Ch я держу в режиме обслуживания с фокусом на стабильности и исправлении ошибок, с минимальным интересом к добавлению новых функций, если только это не стоит того или не критично (что бы это ни значило со временем).

Какие функции включает Ch сегодня

Ch покрывает повседневный рабочий процесс без тяжести:

  • Высокопроизводительный запуск с лёгким CLI, написанным на GoLang
  • Поддержка нескольких провайдеров (OpenAI, Groq, DeepSeek, Anthropic, XAI, Together, Gemini, Mistral, Ollama)
  • Интерактивный и прямой режимы, пайпинг из любых команд, загрузка файлов и директорий, подсчёт токенов, экспорт блоков кода, просмотр истории чатов, переключение моделей/платформ, откат, дампы кода, запись сессий shell, интеграция с буфером обмена
  • Встроенный веб-скрейпинг и поиск, включая обработку ссылок YouTube, интегрированные простым и понятным образом

Чего не хватает в Ch по сравнению с Cha (и почему)

Ch пытается сохранить только основные функции Cha, и в этом процессе я вычеркнул из Ch следующие возможности Cha:

  • Продвинутый интерфейс “Редактор” и “Поиск ответов” не будут перенесены
  • Поглощение аудио, видео и изображений, преобразование голоса в текст и текста в речь, а также некоторые дополнительные удобства экспорта и код-дампа не являются приоритетами
  • Некоторые вспомогательные элементы навигации и поведение “смены корневой директории” из Cha отсутствуют в Ch
  • Локальные “профили с сохранёнными чатами” намеренно не являются путём по умолчанию

Я обозначил многие из этих вещей как либо раздутость, либо «приятно иметь». Что я считал критичным — это веб-браузинг и веб-скрейпинг, чего поначалу не было в Ch, но я впоследствии интегрировал это в Ch, так что основной цикл теперь завершён без остального. Более того, в Ch появилась новая функция под названием !x, которая записывает сессию shell пока вы всё ещё в сессии Ch и добавляет её в историю чата, позволяя вам использовать другие CLI-инструменты и сохранять их вывод для модели, если хотите. Эта функция позволяет получить многие из изначально отсутствовавших возможностей Cha в Ch без необходимости, чтобы Ch тянуло всё и становилось раздутым. Вы можете узнать больше о Ch в этом новом блоге посте.

Ch/Cha против Claude Code

В июле 2025 года я написал сравнение Cha с новейшими CLI-инструментами с поддержкой ИИ, чтобы объяснить, какую ценность Cha предоставляет, чего не давали те инструменты. Учитывая это, я всё ещё хотел включить это в этот блог, потому что Ch по сути предоставляет ту же ценность, и сравнение остаётся актуальным спустя месяцы даже после этого перехода. Та же философия применима к Ch.

Ключевые различия

  • Подход Ch/Cha подчёркивает полный контроль пользователя на каждом шаге без фоновых AI-воркеров, принимающих автономные решения. Вы получаете явное, управляемое пользователем управление контекстом с затратами обычно от $1 до $20 в месяц для ежедневного активного использования. Нет неожиданных изменений — всё управляется пользователем, что делает это идеальным для глубокой вовлечённости и строгого контроля затрат.
  • Агентные CLI, такие как Claude Code и Gemini, идут другим путём с автоматизированными решениями рабочего процесса и умными агентами, принимающими автономные решения. Они управляют контекстом и файлами при помощи ИИ с затратами обычно от $10 до $200+ в месяц для аналогичных уровней использования. Они отлично справляются с автономными модификациями кода, что делает их идеальными для быстрого прототипирования и делегирования.

Когда выбирать стиль Ch/Cha

  • Минимальные затраты при полной прозрачности
  • Полный контроль над каждым взаимодействием
  • Глубокая вовлечённость в ваш процесс разработки
  • Явное управление контекстом для чувствительных проектов

Когда выбирать агентные инструменты

  • Быстрое прототипирование и быстрая итерация
  • Предпочтение автоматизации и делегированию ИИ
  • Приоритет скорости над стоимостью

Рекомендация

Нет универсального решения. Ни один инструмент не покрывает все случаи. Ch отлично подходит для экономичных повседневных задач и точного контроля. Агентные инструменты, такие как Claude Code или Gemini CLI, блестят в сложных проектах с множеством файлов и окружений, где важны скорость и автоматизация. Используйте Ch, когда хотите снизить затраты и сохранить контроль. Используйте агентные инструменты, когда нужны быстрые итерации и вы не против делегировать управление. Многие начинают с Ch, чтобы освоить хорошие паттерны взаимодействия, а затем добавляют агентные инструменты по мере развития потребностей.

Будущее Cha и Ch

Будущее Cha и Ch таково. Cha помечен как устаревший и заархивированный, служащий лишь исторической справкой. Ch теперь — это новый Cha. Он будет продолжать поддерживаться, при необходимости улучшаться и использоваться. Я буду решительно сопротивляться расползанию функционала для Ch. И впредь, когда я говорю/ссылаюсь на Cha, я имею в виду Ch, а старый Cha на Python буду называть «Cha v0» или «старый Cha». С учётом сказанного

Спасибо

Если вы следили за путешествием Cha с самого начала, спасибо. Этот проект многому меня научил и подтолкнул к версии, которая лучше соответствует тому, как я действительно работаю, и при этом полезнее для сообщества в целом. Если вы новичок, начните использовать Ch и не усложняйте!