Перейти к содержимому
Letronna®

Список изменений

Что нового

Планы на будущее — в дорожной карте, где можно проголосовать.

Приложение и терминал Letronna для Windows, macOS и Linux. Один номер версии для всех платформ.

v0.1.0-alpha.420 октября 2026 г.
Добавлено 26
  • ТерминалCtrl+V прикрепляет к следующему сообщению изображение из буфера обмена; буфер читается средствами, которые уже есть в системе (AppleScript на macOS, PowerShell на Windows, wl-paste или xclip на Linux). Изображение, перетащенное в терминал, тоже прикрепляется, а не вставляется как путь — в кавычках, с экранированием или в виде адреса file://; оба способа работают через /image.
  • ТерминалВсё, что вы отправляете из строки ввода, сохраняется между сессиями отдельно для каждой папки проекта (prompt-history.jsonl в папке данных), поэтому ↑ в новой сессии достаёт и вчерашние запросы, а Ctrl+R открывает их списком, который сужается по мере ввода, — сначала новые. Вставленный текст возвращается из истории целиком, а не заглушкой, команда /command, вызванная из истории, больше не запирает ↑ в меню, а правки в строке из истории не теряются, если пролистать её дальше; ответ на вопрос, например API-ключ, по ↑ не возвращается никогда.
  • ТерминалCtrl+G открывает содержимое поля ввода в вашем редакторе ($VISUAL, затем $EDITOR), а когда вы закрываете редактор, возвращает написанное в поле. Ctrl+_ отменяет последнее изменение строки — по одному слову или по одной серии удалений за раз, а Ctrl+Y возвращает то, что последним вырезали Ctrl+U, Ctrl+K или Ctrl+W.
  • ТерминалСессия получает название от модели, как только приходит её первый ответ: название составляется по первому сообщению и началу ответа. Для чата через шлюз Letronna это автоматически делает быстрая модель Letronna, которую выбирает сервер Letronna, с проверкой Jev; в остальных случаях — вспомогательная модель, а если её нет, то модель самого чата. /model names выбирает другую модель или отключает автоматические названия, а /rename позволяет назвать сессию самостоятельно или, без аргумента, сразу просит модель придумать название. Чат на вашем собственном ключе, через шлюз компании или с моделью на этом компьютере получает название через свой же шлюз, и его содержимое никуда больше не отправляется.
  • ТерминалСтрока, начинающаяся с !, выполняется как команда в папке сессии, как в оболочке, и без подтверждения: её ведь ввели вы сами. Её вывод показывается так же, как вывод инструмента, Esc останавливает команду, а модель вместе со следующим запросом узнаёт, что было запущено и чем это закончилось. Если ввести такую строку, пока агент работает, она, как и команды, ждёт конца хода. Пока вы её набираете, нижняя панель показывает, где она будет выполнена.
  • Терминал? в пустой строке показывает над полем ввода сочетания клавиш — до следующего нажатия. /help перечисляет команды по разделам (сессии, модель, режимы, инструменты, память, фоновая работа, аккаунт), обрезая каждую строку по ширине окна, и все сочетания клавиш, а /help <command> объясняет, что делает команда и по каким словам её находит меню. Пока вы набираете слова команды, нижняя панель показывает, что она делает.
  • ТерминалКак только появляется ответ, нижний край поля ввода показывает, насколько заполнен контекст сессии, по объёму последнего запроса — так же, как строка состояния в окне приложения: пока место есть, индикатор неприметен, с 70% он янтарный, с 85% указывает на /compact, а с 90% становится красным. /context показывает по частям, чем заполнен контекст: системный промпт, инструменты, MCP, память, навыки и переписка.
  • ТерминалВерхний край поля ввода показывает название сессии и состояние её папки в git (ветка, что изменено, насколько она расходится с отслеживаемой веткой), а заголовок окна начинается с названия сессии, показывает вращающийся индикатор, пока агент работает, и «waiting for you», пока ждёт карточка или вопрос; при выходе возвращается прежний заголовок, если терминал его хранит. Названия, взятые из первых строк запроса, показываются в одну строку и там, и в /resume.
  • Терминал/rewind, /undo или двойное нажатие Esc в пустом поле ввода показывают все отправленные вами сообщения — сначала новые, с отбором по мере ввода; при возврате к одному из них вы выбираете, восстановить код и переписку, только переписку или только код, либо сделать сводку до этого сообщения или создать от него ответвление; /undo больше не ограничивается отменой последнего обмена. Если восстановлен только код, модель узнаёт, какие файлы вернулись к прежнему состоянию, а откат к более раннему сообщению всё равно возвращает их к исходному виду.
  • ВездеПодписка Claude теперь — провайдер, в который вы входите через аккаунт, наряду с API-ключом Anthropic: доступны модели из вашего тарифа, и вставлять ключ не нужно.
  • ВездеЭндпоинт Custom, в адресе которого указан маршрут Messages, например https://proxy.example/v1/messages у прокси, теперь работает: с ним общаются через Messages API Anthropic, как с собственным API Anthropic, — с кэшированием промпта, уровнем усилий и размышлениями. Раньше на этот маршрут отправлялись запросы Chat Completions, на которые такие прокси не отвечают. Список его моделей запрашивается в корне API, а ключ передаётся так, как его принимает Messages, поэтому ход узнаёт окно контекста модели и её уровни усилий, а проверка при настройке и список моделей их находят; то же относится и к собственному адресу Anthropic, вставленному вместе с маршрутом. Такой прокси не принимается за саму Anthropic: метка кэша, которую он отклоняет, для него отбрасывается, как и для любого другого шлюза, а токен подписки передаётся ему как Bearer-токен — без признаков собственного клиента Anthropic и без идентификаторов вошедшего аккаунта, которые эти признаки содержат.
  • ВездеВстроенный кошелёк, из которого платит агент: создайте новый или перенесите существующий из MetaMask, Phantom или любого другого приложения-кошелька; поддерживаются Base, Ethereum, Solana и любая EVM-сеть. Сайтам, которые просят оплату (x402), агент платит в USDC в пределах заданных вами лимитов — каждый раз спрашивая или сам, если сумма ниже выбранной вами цены; на отправку средств разрешение спрашивается всегда. letronna wallet, /wallet, страница Wallet и Settings › Wallet.
  • СайтТерминал в браузере: страница Cloud открывает сам Letronna, запущенный в Letronna Cloud в новом треде или в одном из ваших, — печатать в нём можно так же, как на своём компьютере.
  • ТерминалНа одноразовой машине (LETRONNA_DISPOSABLE=1, как в Letronna Cloud) терминал берёт сервер, API-ключ и модель из AGENT_BASE_URL, AGENT_API_KEY и AGENT_MODEL, как это делает -p, и ничего из этого не сохраняет.
  • СайтLetronna Cloud работает на большем числе серверов: администраторы подключают VPS со страницы администрирования одной командой установки, а задачи и боты 24/7 распределяются по всем серверам.
  • СайтНа главной странице letronna.ai появился Letronna Cloud, а в документации — страница Cloud; приложения для iPhone и Android отмечены как «скоро».
  • ВездеREADME стал короче, а в docs/ появилось полное руководство: установка, приложение и терминал, шлюзы, инструменты, расширение возможностей, облако, настройка, данные, архитектура, сборка и бенчмарки.
  • Вездеletronna -p --output json сообщает, по какому окну контекста рассчитывался размер запросов запуска и откуда взято это окно ("window": {"tokens", "source"}), и называет модель, которую использовал запуск, — в том числе когда её выбрали переменные окружения или --model.
  • ВездеЕсли поисковый сервис не выбран, search_web ищет через шлюз сессии, когда тот продаёт поиск (поиск Letronna оплачивается с баланса аккаунта, у другого шлюза используется его самая дешёвая поисковая модель), а если шлюз не может ответить, в том же поиске переключается на DuckDuckGo. Шлюз, который не смог ответить, исключается на десять минут, и всё это время первым опрашивается DuckDuckGo; карточка подтверждения называет все места, куда может уйти запрос, и кто платит; автоматический режим оставляет платный поиск на решение пользователя, а выбранный сервис по-прежнему остаётся единственным — в том числе если выбран только DuckDuckGo.
  • Вездеwrite_file может создать новый файл во временной папке системы — например, скрипт, воспроизводящий ошибку, — а write_file и edit_file могут изменять файлы, которые там создала сессия, так что черновая работа не попадает в проект. Файл другой программы в этой папке или файл в папке, которую сессия не создавала, по-прежнему изменять нельзя, а команда, записывающая там новый файл, в сессии, прочитавшей веб-страницу, больше не считается записью за пределами проекта.
  • ВездеЕсли запуск, за которым никто не следит, проходит двенадцать раундов, не меняя проект, в конце последнего результата этого раунда его просят одной строкой сказать, что уже установлено, какова гипотеза и каков следующий шаг; продолжить чтение — вполне допустимый ответ. Просьба повторяется после двадцать четвёртого и тридцать шестого раунда (в последний раз — с указанием закончить, если назвать шаг не удаётся), но не больше трёх раз за ход. Счёт начинается заново только после успешно применённой правки, но не после команды. LETRONNA_PROGRESS_NOTE_ROUNDS задаёт число раундов (0 — не просить никогда), а letronna -p --output json сообщает progress_notes, first_edit_round и rounds_after_last_edit.
  • Вездеletronna -p --output json сообщает, как работал кэш за время запуска: cache_misses считает ответы, для которых провайдер отдал из кэша меньше токенов, чем для предыдущего, хотя ничего из отправленного не менялось, вместе с потерянными токенами, включая потери слишком мелкие, чтобы /usage о них сообщал, а history_rewrites считает промахи, вызванные изменением более раннего сообщения, так что показатели кэша за запуск можно оценивать за вычетом потерь на стороне самого провайдера.
  • ВездеНастройка reasoning_replay (или LETRONNA_REASONING_REPLAY для одного запуска) со значением chunked отправляет DeepSeek и Kimi пустой reasoning_content для более старых вызовов инструментов в ходе, как только их рассуждения набирают 8 000 токенов, а дальше — по такой порции за раз, так что запросы между этими моментами продолжают пользоваться кэшем промпта у провайдера. Два последних вызова всегда передают свои рассуждения, вызовы перед уже очищенными результатами при той же перезаписи лишаются их, /usage и letronna -p --output json считают сдвиг этой границы изменением более раннего сообщения, а маршруту, который отклоняет пустое поле, вместо этого отправляются рассуждения каждого вызова во всех ходах, прежде чем от поля откажутся совсем. Значение по умолчанию, full, как и раньше, отправляет с каждым вызовом хода его собственные рассуждения.
  • ПриложениеПункт Rewind to here у любого сообщения спрашивает, что восстановить: код и переписку, только переписку или только код, — и показывает, сколько строк изменено в каждом файле; двойное нажатие Escape в пустом поле ввода или команда палитры Go back to an earlier message переходят к вашему последнему сообщению для отката, а стрелки вверх и вниз — к остальным.
  • LinuxЕсли командам доступно меньше процессоров, чем есть на машине, — например, в контейнере с квотой на процессорное время, — команды и фоновые задания запускаются с OMP_THREAD_LIMIT, OMP_NUM_THREADS, OPENBLAS_NUM_THREADS и MKL_NUM_THREADS, равными числу доступных им процессоров, если пользователь ещё не задал одну из этих переменных или другой размер пула потоков; системный промпт сообщает, сколько процессоров им доступно, и, если переменные были заданы, называет все четыре, поскольку OMP_THREAD_LIMIT ограничивает даже число потоков, которое команда задаёт сама. Если числа совпадают, промпт и команды остаются прежними; событие machine в журнале содержит оба числа.
  • ПриложениеСессия получает название от модели, как только приходит её первый ответ: название составляется по первому сообщению и началу ответа. Для чата через шлюз Letronna это автоматически делает быстрая модель Letronna, которую выбирает сервер Letronna, с проверкой Jev; в остальных случаях — вспомогательная модель, а если её нет, то модель самого чата; чат на вашем собственном ключе, через шлюз компании или с моделью на этом компьютере получает название через свой же шлюз. В Settings › Model › Session names автоматические названия можно отключить или выбрать для них модель самого чата либо одну из своих моделей, а пункт Name it again в меню сессии запрашивает новое название; название, которое вы дали сами, никогда не заменяется.
Изменено 31
  • ТерминалЭкран отправляет только строки, изменившиеся с прошлого кадра, внутри синхронизированного обновления, если терминал его поддерживает, поэтому потоковый ответ передаёт примерно треть прежнего объёма и меньше мерцает по ssh и в консоли; движения указателя над окном больше не считываются и не вызывают перерисовку, а кадр больше не копирует всю переписку.
  • ТерминалВывод инструмента показывает первые двенадцать строк, считая по экрану, чтобы одна длинная строка не заняла всё место, а остальное сворачивается под ними: щелчок или Ctrl+O разворачивает весь вывод и сворачивает его обратно. Правка, выполненная без подтверждения, показывает свой дифф после выполнения, как правка с подтверждением показывает его до, а изменённая строка длиннее окна в диффе переносится, а не обрезается у края.
  • ТерминалБлоки кода в ответе показываются как код: ограничители блока убираются, над кодом приглушённо указан язык, код подсвечивается так же, как диффы, а ** и обратные кавычки внутри него остаются как написаны. Заголовки показываются жирным без символов #, жирный или цветной фрагмент, перенесённый на несколько строк, сохраняет оформление на каждой из них, ответ, начинающийся с жирного текста, его не теряет, а ответы возобновлённой сессии отрисовываются так же.
  • Терминал/clear начинает всё заново в новой сессии на чистом экране, как в Claude Code, а прежняя сессия остаётся доступна в /resume; Ctrl+L очищает экран — то, что раньше делал /clear. /status показывает на одном экране версию, сессию и её файл, папку и её состояние в git, модель, режим, аккаунт, заполненность контекста и серверы MCP, а /export [file] сохраняет переписку в формате Markdown — по умолчанию в файл в проекте, названный по сессии, и никогда не перезаписывает существующий файл.
  • ТерминалВремя хода отсчитывается от его начала: строка ожидания считает весь ход, а не начинает отсчёт заново на каждом шаге, нижняя панель продолжает его, когда ответ уже начал выводиться, а подпись под последним ответом заканчивается длительностью хода. Слово в строке ожидания меняется от одного ожидания к другому, длинная команда обрезается, чтобы время оставалось на виду, а каждая подсказка нижней панели обрезается по ширине окна, а не переносится в узкой области терминала.
  • ТерминалShift+Tab переключает режимы по кругу: «сначала спрашивать», «править без вопросов», «только план» и «автоматический режим» (а также режим обхода проверок, если его однажды выбрали), но никогда не попадает на «только разрешённые вызовы» — этот режим отклоняет всё, что потребовало бы вопроса, и остаётся доступным через /mode dont-ask; Alt+M тоже переключает режимы, и каждый режим на мгновение показывает в нижней панели, что он разрешает выполнять. Если режим не задан флагом, терминал запускается в режиме по умолчанию, заданном для окна приложения; режим, переключённый во время работы, действует со следующего вызова инструмента, а /plan включает или выключает режим плана и возвращает тот режим, из которого он был включён.
  • ТерминалCtrl+C останавливает ответ и оставляет вас в сессии, тогда как раньше он останавливал ответ и выходил из переписки; как и Esc, он отклоняет карточку или список и пропускает вопрос, очищает набранный текст и выходит, только если нажать его дважды в пустом поле ввода. Строка, очищенная через Esc, возвращается по ↑ — но не ответ на вопрос и не секрет, — а после копирования выделением мышью Esc останавливает ответ с одного нажатия.
  • ВездеПапка, которую write_file или apply_patch создали для файла, считается собственной папкой сессии, поэтому сессия, прочитавшая веб-страницу, может удалить её без вопроса, как и созданные ею файлы, — если в папке нет ничего, что было там раньше неё, и нет символических ссылок.
  • ВездеЕсли размер окна модели нигде не указан, а её сервер принимает ключ, как шлюз или прокси LiteLLM, окно считается равным 64 000 токенов, а не минимальному, поэтому старые результаты инструментов очищаются гораздо позже; для сервера без ключа, например Ollama, сохраняется маленькое окно, а LETRONNA_CONTEXT_WINDOW задаёт его для прокси с ключом перед маленькой локальной моделью.
  • ВездеСтарые результаты инструментов очищаются, только когда запрос приближается к своему бюджету, и тогда порциями по половине окна, а не каждые восемь результатов, так что кэш промпта у провайдера продолжает обслуживать запросы в промежутке; результаты короче 600 символов не очищаются никогда, а очищенный результат помечается как убранный из истории — с вызовом, который нужно повторить, — а не как убранный ради экономии места.
  • ВездеПока кэш промпта у провайдера обслуживает сессию, окно может быть до четырёх раз больше лимита по умолчанию: как только данные об использовании трёх последних ответов показывают, что не меньше половины их входных данных пришло из кэша, модель, окно которой вдвое больше лимита, хранит историю и старые результаты инструментов до 256 000 токенов или до трёх четвертей своего окна, если это меньше, — ведь промах по всему, что идёт после очищенного результата, обходится дороже, чем стоят сэкономленные токены. Точки, с которых может начинаться окно, порции, которыми очищаются результаты, и отправляемая доля результата инструмента остаются такими же, как при лимите, так что ничего не сдвигается на новое место; серия промахов, переполнение, маршрут, данные об использовании которого никогда не учитывают кэш, и заданный пользователем context_cap сохраняют лимит, а когда кэш снова начинает обслуживать сессию, окно и очищенные результаты остаются там, где их оставил лимит, и не сдвигаются обратно. Резерв в 4 000 токенов под файлы инструкций подпапок теперь выделяется, только когда результат затронул папку с таким файлом.
  • Везде/usage называет промах кэша, вызванный очищенными результатами или рассуждениями, которые больше не отправляются обратно, «an earlier message changed», а о промахе, при котором ничего из отправляемого Letronna не изменилось, сообщает, что провайдер обслужил запрос без кэша.
  • Вездеweb_fetch и search_web сообщают, почему запрос остался без ответа, — например, имя хоста не удалось разрешить или в соединении отказали, — а если запрос в интернет не смог подключиться (кроме запроса, на который перенаправила страница), оба инструмента сразу отвечают, что временно недоступны, называя хост и причину, вместо того чтобы каждый раз пробовать и дожидаться ошибки: в течение двух минут в сессии, за которой кто-то следит, и до конца запуска, за которым никто не следит, если только какой-нибудь запрос в интернет не пройдёт; страницы на этом компьютере или в локальной сети по-прежнему загружаются.
  • Вездеletronna -p отправляет с каждым запросом примерно на 600 токенов меньше описаний инструментов и промпта: списки помощников и фоновых заданий находятся через find_tools, как и другие редко используемые инструменты, а в том, что ему отправляется, больше не упоминается то, чего у такого запуска нет: фоновые помощники, wake_me, list_sessions и /resume, а также собственный навык Letronna об использовании Letronna — если других навыков не включено, вместе с ним уходят индекс навыков и инструмент навыков.
  • ВездеЗапуск, за которым никто не следит, например letronna -p, узнаёт о командах в PATH и о содержимом папки проекта в начале первого сообщения, а не из системного промпта, поэтому запуски в папках с разным содержимым отправляют одинаковые системный промпт и инструменты, и кэш промпта у провайдера обслуживает их от запуска к запуску; сессии, за которыми кто-то следит, не изменились.
  • ВездеМодели Claude, к которым обращаются через Chat Completions по любому шлюзу — через прокси LiteLLM или Portkey, через шлюз компании, а не только через OpenRouter и шлюз Letronna, — отмечают, где заканчивается кэш промпта Anthropic, так что каждое новое сообщение записывается в кэш один раз и при следующем запросе читается из него, а не оплачивается сначала полностью. Если маршрут отклоняет запрос как некорректный (400 или 422), какими бы словами он это ни объяснял, запрос отправляется ещё раз без меток, а соседние запросы свои метки сохраняют; если на повтор пришёл ответ, этот шлюз и эта модель обходятся без меток до конца запуска, если повтор тоже отклонён — дело не в метках, и они остаются, а если повтор остановлен или ответа нет, ничего не решается.
  • ВездеПравило системного промпта о проверке изменения теперь велит сначала один раз запустить ближайшую к нему проверку — воспроизведение и тот единственный тестовый файл, который покрывает изменённый код, — а затем не перезапускать, не перечитывать и не смотреть дифф того, что уже прошло, и называть сбой, который вызвало не это изменение, а не доказывать, что он был и раньше; новое правило говорит, что ошибку, о которой сообщили на одном примере, исправляют в причине, общей для других входных данных и точек входа, и что делать, если сообщение об ошибке не воспроизводится, как описано; а правило о вызовах в одном ответе наряду с чтением и поиском называет команды и проверки. Запуску, за которым никто не следит, также говорится, что спросить некого и у него есть только текст задачи и папка проекта, поэтому решать нужно по ним, а не искать на компьютере или в сети, что имелось в виду. Новые пункты для LETRONNA_PROMPT_RULES — shared-cause и scope-of-task.
  • ВездеВызов, который вернул то же, что и более ранний вызов в этом ходе, получает об этом пометку в конце результата («Same result as round 3»), даже если вызов записан иначе, но так, что это ничего не меняет: команда, в которой изменились пробелы, cd в папку проекта, 2>&1, | cat, | head -N или | tail -N, чтение того же файла с началом в пределах тех же пятидесяти строк, поиск в другом регистре и результат, который отличается только идентификаторами коммитов, адресами, датами, замерами времени или начальными значениями генераторов случайных чисел. Третий такой результат получает пометку, которая и раньше советовала сменить подход, а теперь учитывает и эти случаи; запуск, за которым никто не следит, по-прежнему останавливается только вызовом, пять раз написанным одинаково. Счёт начинается заново только после успешно применённой правки, а отклонённый вызов или вызов, сделанный дважды в одном ответе, не учитывается.
  • ВездеЕсли вызов, который выполняется отдельно, например правка или команда, завершается сбоем, вызовы, поставленные тем же ответом в очередь после него, не выполняются, а получают ответ «Not run: an earlier call in this reply failed; resend it if still wanted», так что проверка, отправленная вместе с правкой, никогда не выглядит так, будто проверила неприменённую правку. Команда, которая выполнилась и завершилась с каким-либо кодом, здесь сбоем не считается, поэтому два набора тестов, отправленные вместе, сообщают каждый свой результат; чтение и поиск выполняются сразу, и промах среди них ничего не останавливает, как не останавливает и неудачное сохранение в память (например, на заполненную страницу), и вызов, которому не дали выполниться пользователь, механизм разрешений или остановка, — например, сохранение, о котором пользователь не просил, или вызов несуществующего инструмента.
  • ВездеОписание read_file сообщает, сколько вмещает одна страница (около 7 тыс. символов, если limit не указан), и что чтения нескольких файлов или фрагментов нужно отправлять в одном ответе; описание search говорит то же о нескольких шаблонах или папках, а описание run_command — о независимых командах, у каждой из которых свой код выхода. Там, где вызовы выполняются по одному, эти пункты убираются, как и правило о пакетных вызовах. read_file называет поддерживаемые типы файлов в нескольких словах, search больше не тратит целое предложение на то, когда поиск идёт по документам, а примечание search_web о фрагментах результатов стало короче.
  • ВездеЗапуску, за которым никто не следит, например letronna -p, теперь говорится: перед завершением удалить из папок с выходными файлами всё, что он создал только для тестирования, если задача не требует это оставить и собственная сборка проекта не держит это там, и записывать в файл, предназначенный для ответа, только ответ в запрошенной форме; что правила не трогать входные данные и не удалять данные относятся к его собственным действиям, а не к тому, что должна делать программа, которую его попросили написать, — она может работать не только на имеющемся образце; получать результат через библиотеку или инструмент, названные в задаче, а если вызов не удался, вызывать их правильно, а не обходить; и проверять вспомогательную функцию, преобразующую данные, на крошечном входе с заранее известным ответом, а итоговый результат — отдельным кодом.
  • ВездеКоманда, переведённая в фон по истечении лимита времени, теперь называет рядом с wait и read_job ещё и stop_job — для задания, которое больше не нужно.
  • ВездеЗапуск, за которым никто не следит, например letronna -p, который не менял исходный код, но любым инструментом или командой создал или изменил названный в запросе файл, например out.csv, теперь один раз отправляется назад, чтобы проверить этот файл по требованиям из запроса, — так же, как запуск, изменивший исходный код, но с формулировкой для файла: проверить его текущее содержимое коротким новым скриптом, который читает только этот файл и входные данные задачи и не использует код, создавший файл, ведь ошибка в этом коде согласуется сама с собой. Помощника-рецензента, которого запуск создаёт для такой проверки — здесь или после изменения исходного кода, — тоже просят выяснять проверяемое собственным кодом. Проверяются только пути и имена файлов, указанные в запросе, но никогда не вся папка.
  • ВездеПри 80% от LETRONNA_DEADLINE запуску говорится, прежде чем улучшать свои результаты, удалить из папок с выходными файлами черновые файлы, логи и бинарные файлы, созданные только для тестирования, если сборка проекта не держит их там; то же говорится запуску, ответ которого после этой отметки остановлен за слишком долгие размышления, и запуску, который начинается уже после неё, как это бывает с более поздним ходом через stdin.
  • ВездеОписание run_command больше не создаёт впечатления, что каждая команда выполняется в песочнице: описание параметра unsandboxed говорит, что команда выполнялась в песочнице, только если в её результате есть строка, начинающаяся с (ran sandboxed, и что параметр нужен, если такое выполнение не удалось из-за сети или записи за пределами проекта или если ошибка сообщает, что команду нельзя выполнить в песочнице. Поэтому запуск, команды которого не ограничены, например letronna -p --yes, больше не считает, что установка или запись за пределами проекта будут запрещены, даже не попробовав. Что разрешают песочница и подтверждения, не изменилось.
  • ВездеВ запуске, за которым никто не следит, — например, letronna -p, запуске по расписанию или в чат-приложении — автоматического проверяющего (judge) в автоматическом режиме ждут до минуты, а не 20 секунд, и он может написать вместе с размышлениями до 8 192 токенов, а не 2 112 (меньше — на моделях, которые, как известно, принимают меньше), так что долго размышляющая модель успевает вынести вердикт, а вызов не отклоняется и не передаётся в чат из-за отсутствия ответа; в сессиях, за которыми кто-то следит, остаются 20 секунд, проверяющий по-прежнему отклоняет вызов или спрашивает, если не может ответить, и его никогда не ждут дольше LETRONNA_DEADLINE запуска.
  • ВездеЗапуску, за которым никто не следит, например letronna -p, говорится, что даже открытие файла программой может его изменить — так, sqlite3 может влить в базу данных её журнал упреждающей записи или удалить этот журнал при закрытии, — и что перед запуском такой программы на входных данных, из которых нужно восстановить данные или которые нужно починить, следует скопировать их вместе с сопутствующими файлами и сначала опробовать программу на копии. На Terminal-Bench 2.0 три запуска таким образом потеряли журнал базы данных, прежде чем успели его скопировать.
  • ВездеЗапуск, за которым, возможно, никто не следит, — например, letronna -p, запуск по расписанию или запуск из чат-приложения — отбрасывает ответ без вызова инструментов, если тот на протяжении 2 000 символов или больше ходит по кругу на одних и тех же нескольких словах, почти не добавляя во второй половине строк или предложений, которых ещё не было, или если ответ остаётся пустым даже после одной просьбы что-нибудь сказать; тогда запуск отправляет тот же запрос снова после паузы в 2, 4 и затем 8 секунд, не больше трёх раз за раунд, вместо того чтобы принять пустословие за ответ, тащить его во все последующие запросы или закончить на пустом ответе. Данные, в которых каждые несколько строк появляется новая строка, — например, лог, таблица или большинство JSON-списков записей — сохраняются; длинная серия одинаковых строк, например сетка из нулей, может быть запрошена заново до трёх раз, прежде чем сохранится четвёртый вариант. Ответ, исчерпавший бюджет запуска, сохраняется. Токены отброшенного ответа по-прежнему учитываются в общем числе токенов запуска и в его бюджете, но не в стоимости, которую он сообщает, — как никогда не учитывались токены пустого ответа. Если запуск из чат-приложения отбрасывает уже показанный ответ, приложение сообщает об этом; ходы, набранные в приложении или терминале, и ходы редактора через ACP не изменились.
  • ВездеЕсли запуск, за которым никто не следит, например letronna -p, завершается, а названного в запросе пути — например, src/run.js или /srv/app/report.pdf — всё ещё нет, запуск один раз отправляется назад, чтобы сверить это с запросом, в той же проверке, которая сообщает об отсутствующем выходном файле в out/, при условии, что он может записывать файлы или выполнять команды. Путь любого вида учитывается, если его не было в начале запуска и к концу запуска он находится в проекте или существует его папка. Учитывается только путь, записанный вместе с папкой, а не одно имя; не учитываются путь в примере, в коде или диффе, заполнитель вроде <name> или YYYY-MM-DD, URL и путь с номером строки или порта после него, например src/app.js:42; не учитывается то, что записывает показанная в запросе команда, например файл после -o или >; не учитывается и путь в предложении о чтении, удалении или перемещении файлов или в предложении, где сказано не создавать его, создать позже или что он необязателен либо не нужен.
  • ВездеВ запуске с LETRONNA_DEADLINE ответ, который заменяет ответ, остановленный за размышления без единого написанного слова, продолжает эти размышления: они передаются вместе с уведомлением о том, что пора писать ответ, и, если они длинные, обрезаются до начала и конца. Для такого ответа запрашивается низкий уровень усилий или ближайший из доступных модели, но никогда не выше заданного для запуска, а со следующим ответом возвращается собственный уровень усилий запуска. Запуск с автоматическим уровнем усилий, модель которого не размышляла, — например, через API Anthropic, где модель размышляет, только если её попросить, — уровень усилий не запрашивает, потому что там такой запрос заставил бы модель размышлять до конца запуска. Уведомление сообщает, достиг ли ответ лимита вывода или размышлял дольше своей доли оставшегося времени; раньше в обоих случаях говорилось, что ответ остановлен за размышления, и следующий ответ планировал всё заново с нуля.
  • ВездеВ запуске с крайним сроком, например letronna -p с LETRONNA_DEADLINE, команда, которой дали больше стандартных двух минут, продолжает выполняться в фоне вместе с уже полученным выводом, как только израсходует половину оставшегося времени (но не меньше двух минут), или — если две минуты уже прошли — как только появляется уведомление, ожидающее доставки, например о завершении фонового задания, так что модель узнаёт о нём сразу, а не после истечения собственного лимита команды. Ничего не останавливается; запуски без крайнего срока, помощники и команды в песочнице ждут, как и раньше.
Исправлено 36
  • ТерминалТекст на китайском, японском и корейском и эмодзи занимают положенные им две колонки, поэтому ответы переносятся целиком, а не теряют конец каждой строки; поле ввода, строки в очереди, списки и выделение тоже выравниваются с учётом этого. Ответ, файл или вывод команды больше не могут управлять терминалом: проходят только цвет и стиль, поэтому текст с управляющими последовательностями, которые меняют заголовок окна, пишут в буфер обмена, перемещают курсор или уводят с экрана разговора, показывается как текст без них — даже если последовательность в ответе разбита между частями, в которых он приходит в потоке. Табуляция отображается как четыре пробела.
  • ВездеКошелёк продолжает работать, когда публичный RPC ему отказывает: у каждой встроенной сети есть другие бесплатные RPC, на которые кошелёк переходит, если собственный RPC сети ограничивает запросы, отказывает или недоступен, а в следующий раз начинает с того, который ответил; если вы задали адрес сами, используется только он, как и раньше. Баланс токена Solana теперь читается со счёта, на котором его хранят кошельки и который отдаёт любой RPC; раньше он искался среди всех счетов владельца, но такие запросы публичный RPC Solana ограничивает, а другие бесплатные RPC отклоняют, поэтому баланс USDC в Solana читался как нулевой и платежи x402 в нём не проходили. Токен, баланс которого прочитать не удалось, показывается в списке с причиной, а о цене сообщается, что её нельзя оплатить, потому что баланс не удалось прочитать, а не потому, что в кошельке слишком мало средств.
  • Терминал/thinking, /search, /search keyless, /notify, /voice, /verify и /memory-review принимают on или off, а раньше их переключало любое слово, так что /notify off мог включить уведомления; без аргумента они по-прежнему переключают режим. Enter после начала имени, общего для нескольких команд, например /u, подставляет первую из них, а не выполняет её; /effort со словом, которое не является уровнем, перечисляет доступные уровни, а не переключается на auto; /mcp с незнакомым ему словом сообщает об этом, а не спрашивает, какой сервер нужен; неизвестная команда подсказывает, как отправить её как текст; а /jobs помечает завершённые задания как завершённые.
  • ТерминалСессия, которая изначально получила имя по сообщению из нескольких строк, больше не содержит перевода строки в своём имени — в заголовке окна его не было и раньше.
  • ВездеЗначение после Authorization: или Proxy-Authorization: снова скрывается в выводе инструментов и в логах, как было до того, как имена стали разбираться по словам.
  • ВездеЗапуск, прочитавший недоверенный текст, может удалить только настоящий дамп после сбоя, оставленный им самим (core-файл ELF или файлы JVM с PID в имени), но не файл проекта с похожим именем, например app.core.
  • ВездеЗаданию, которому объясняют, как оставить сервер работать после окончания запуска -p, теперь говорят запускать сервер обычной командой, а не отдельным заданием: такое задание запуск остановил бы вместе с собой.
  • Linux**, **macOSКоманды, задания, хуки и проверки, в том числе в песочнице, запускаются с обработкой Ctrl-C и Ctrl-\\ по умолчанию, поэтому их можно намеренно прервать, например через kill -INT или ^C, отправленный заданию в терминале, даже если сама Letronna была запущена с игнорированием обоих сигналов (так её запускает cmd & в скрипте). Раньше Python, запущенный таким образом, не получал KeyboardInterrupt. Ctrl-C в собственном терминале Letronna до них по-прежнему не доходит, а сама Letronna сохраняет игнорирование сигналов, с которым была запущена.
  • ВездеЗапуск без наблюдения, например letronna -p, который уже возвращали к работе из-за незакрытых пунктов чек-листа и который затем изменил их — отметил, добавил или начал пункт, — при попытке завершиться снова возвращается к работе со списком того, что ещё открыто, если только его уже не возвращали из-за точно такого же списка; поэтому запуск, который оставил пункты как были или вернул их обратно, всё равно завершается. Раньше запуск возвращали только один раз, поэтому если это случалось рано, на одном из промежуточных ответов, позже он мог завершиться с открытыми пунктами, и никто ему об этом не говорил.
  • ВездеЗапрос, который шлюз отклоняет как слишком большой (HTTP 413) — так бывает с запросом, где несколько крупных изображений, — сразу отправляется снова без самых старых изображений, пока не уложится в предел, названный в отказе, или, если предел не назван, пока не станет на четверть меньше; на месте каждого убранного изображения остаётся строка о том, что его можно увидеть, снова прочитав файл, а для самого нового — что может поместиться уменьшенная копия. Ошибка 413 из-за слишком большого числа токенов в минуту, которую присылает Groq, в том числе через OpenRouter, за такой отказ не принимается. Предел шлюза действует и для его последующих запросов в этом запуске, а сокращается так же, как при переполнении окна контекста, только запрос, из которого больше нечего убрать; раньше единственная повторная отправка по-прежнему несла все изображения, получала такой же отказ и завершала ход.
  • ВездеРезультат инструмента с сохранённым изображением, которое запрос больше не передаёт, теперь сообщает об этом, а раньше по-прежнему говорил, что изображение прилагается: запрос отправляет только 4 самых новых, и теперь результат советует извлечь нужное из изображения, пока оно ещё передаётся; если модель отказывается принимать изображения, каждый такой результат сообщает, что это за изображение и как ещё его изучить, — так же, как для вложенного изображения. Старые снимки экрана Browse, которые намеренно не передаются, ничего не сообщают, а сессия хранит каждый результат в исходном виде.
  • Вездеread_file уменьшает изображение до 1 568 пикселей по длинной стороне всякий раз, когда она длиннее, как и при вложении, а не только когда файл слишком велик для отправки.
  • ВездеОшибка, которую шлюз присылает внутри ответа, уже начатого в потоке, — например, «every lender we tried refused this request (HTTP 502)» после двух минут сигналов поддержания соединения, — считается сбоем на стороне провайдера: запрос повторяется, а затем передаётся резервной модели, если она задана и из ответа ещё ничего не показано, и запуск больше не завершается необъяснимым сбоем. Статус, названный в тексте ошибки, читается так же, как собственный статус ответа: 429 пережидается, 408 повторяется, 413 считается запросом, слишком длинным для окна контекста, а другой код 4xx завершает ход как неверный запрос, если только это не код, который указывал бы на ключ, баланс или базовый URL, — ведь шлюз их только что принял. Ошибка, код или тип которой — собственная оценка запроса провайдером, например отклонённый промпт или invalid_request_error, по-прежнему завершает ход, как и ошибка, которая передаёт статус в отдельном поле, как это делает TGI.
  • Вездеletronna -p --input-format stream-json соблюдает LETRONNA_DEADLINE так же, как вопрос через -p, с отсчётом от начала запуска: на 80% текущему ходу предлагается записать результаты, по истечении срока запуск останавливается со строкой результата со статусом deadline, а сообщение, отправленное после этого, не выполняется. Раньше запуск, управляемый через stdin (так им управляет Harbor), продолжался, пока его не убивала обвязка (harness), и строки результата не было.
  • ВездеЗапуску без наблюдения теперь прямо запрещено искать в сети копию своей задачи, её тестов или ответа. С тех пор как 11 октября было переформулировано правило о границах задачи, об этом ничего не говорилось, и на Terminal-Bench 2.0 шесть из 89 запусков искали собственную задачу, а три из них скачали её опубликованное решение или тесты и запустили их.
  • ТерминалСессия, возобновлённая через -c или -r, сразу показывает разговор (раньше он появлялся на экране только после нажатия клавиши) и показывает его целиком, до последней тысячи сообщений, — раньше были видны только последние двенадцать, без возможности вернуться к остальным; воспроизведённый вызов инструмента называет, к чему он применялся, как и вызов в реальном времени. /undo и /retry перерисовывают разговор так же.
  • ТерминалКоманды работают в папке открытой сессии, а не в той, где запустилась Letronna, поэтому после --worktree или при возобновлённой сессии из другого проекта /where, /memory, /skills, /help, /undo, /retry, /image, /preview, меню / и ваши собственные команды читают и изменяют файлы этой сессии. /new из сессии в собственном рабочем дереве (worktree) тоже даёт новой сессии рабочее дерево, созданное из той же рабочей копии, а раньше новая сессия начиналась в самой рабочей копии, которую рабочее дерево и должно было оставить нетронутой.
  • Везде/goal stop, /goal off и /goal cancel завершают цель так же, как /goal clear, а раньше ставили целью работы это одно слово.
  • ТерминалПри выходе Letronna сообщает, какая это была сессия и как к ней вернуться (Saved "…" · letronna -r 16), уже на обычном экране терминала. SIGTERM или закрытие терминала завершают сессию так же, как выход: терминал возвращается в обычное состояние, а задания и рабочие деревья приводятся в порядок; раньше терминал оставался в сыром режиме (raw mode) на экране разговора. При сбое Letronna покидает экран разговора и отключает захват мыши до вывода сообщения, поэтому оно остаётся читаемым, а перехваченная паника в потоке инструмента больше не отключает сырой режим под полем ввода. NO_COLOR убирает цвета, но оставляет поле ввода, а раньше отключал его.
  • ТерминалКарточка подтверждения или вопрос модели, появившиеся, пока вы печатаете, больше не перехватывают нажатия клавиш: буквы продолжают попадать в поле ввода за карточкой, Enter, нажатый, пока вы ещё печатаете, отправляет вашу строку, а не «да», и цифра больше не выбирает «always allow». Строка, отправленная, пока агент работал, никогда не становится ответом на вопрос, заданный после неё, в том числе на секретный; Esc на вопросе самой модели останавливает работу на нём, а у высокой карточки варианты ответа остаются на экране.
  • ТерминалСообщение, набранное с //, чтобы начать его с косой черты, /retry снова отправляет как текст и в таком же виде возвращает в поле ввода, а не выполняет как команду.
  • Вездеletronna -p --input-format stream-json с заданным LETRONNA_DEADLINE уже в первом запросе узнаёт, сколько у него времени, а ответ, который только размышляет дольше своей доли оставшегося времени, останавливается с указанием сразу записать результаты — так же, как вопрос через -p.
  • ВездеВ letronna -p, включая --input-format stream-json, когда команда начинает работу в фоне или переводится туда по истечении лимита времени, модели сообщается, что запуск при завершении останавливает свои фоновые задания, а процесс, который должен работать и после этого, нужно запускать отсоединённым, например через setsid nohup (nohup на macOS, Start-Process на Windows), и проверять, что он отвечает. Раньше о сервере, запущенном как задание, сообщалось, что он работает, а затем он останавливался вместе с запуском. Задания по-прежнему останавливаются; в терминале и в приложении, где задания продолжают работать после хода, ничего не изменилось.
  • ВездеЗапуск с заданным LETRONNA_DEADLINE получает предупреждение на 80%, даже пока его удерживает команда или ожидание: вызов в этот момент возвращается, ещё работающая команда продолжает выполняться как задание с уже накопленным выводом, а предупреждение считает оставшиеся секунды на момент, когда запуск его читает, а не на момент, когда оно должно было сработать. После предупреждения вызов перестаёт ждать незадолго до крайнего срока, чтобы запуск увидел вывод команды до своей остановки; в обоих случаях результат сообщает, что команда ещё работает, и предлагает wait или stop_job. Раньше запуск, занятый долгой командой, получал предупреждение только после её завершения, а по истечении срока команда завершалась так, что запуск не видел её вывода.
  • ВездеЕсли аргументы вызова инструмента обрываются раньше конца вызова, хотя предел вывода не достигнут, модель узнаёт, что её вывод может оборваться там, где она пишет целиком специальный токен вроде <|endoftext|>, и что такой токен в содержимом нужно собирать из частей во время выполнения; этот совет идёт перед советом отправлять меньше за один вызов. Раньше модели советовали только отправлять меньше, а это не помогает с файлом, в котором есть такой токен.
  • ТерминалСтрока, набранная и введённая, пока Letronna загружалась, отправляется, а раньше нажатие Enter терялось и следующие слова приклеивались к ней. \, а затем Enter, и Ctrl+J начинают новую строку везде, а Shift+Enter — в терминалах, которые умеют отличать его от Enter (Letronna их об этом просит); начальный экран и /help называют клавиши, которые работают в вашем терминале. Option+стрелки и Alt+B/F перемещают курсор на слово, а не вводят букву, Alt+D и Alt+Backspace удаляют слово, Ctrl+P/N работают как стрелки, а AltGr на Windows вводит свой символ.
  • ТерминалСкопированное выделение попадает в буфер обмена и в терминалах, которые игнорируют управляющую последовательность для копирования, например в Terminal.app и tmux, — через системную команду буфера обмена (pbcopy, clip, wl-copy, xclip или xsel), а нижняя строка пишет «copied», только если команда сработала; по ssh копирование остаётся за терминалом, потому что команда заполнила бы буфер обмена удалённой машины. Копируется текст в исходном виде: строка, перенесённая на несколько рядов, снова становится одной строкой, без отступа и маркера перед ней. /copy копирует последний ответ в исходном виде, вместе с разметкой Markdown, а /copy 2 — предыдущий.
  • ТерминалЕсли прокрутить разговор назад, вид остаётся на том, что вы читаете, пока ниже приходит ответ, — раньше каждое новое слово утягивало его вниз, а сворачивающийся ниже блок сдвигал его, — и нижняя строка показывает, насколько далеко вы прокрутили; отправка сообщения или клавиша End возвращает вниз. В длинном сообщении курсор стоит там, где вы печатаете, на перенесённом ряду, поле ввода показывает ряды вокруг него при любой длине сообщения, а ↑ и ↓ перемещают по перенесённым рядам, прежде чем листать ранее отправленное. Китайский, японский, корейский текст и эмодзи занимают там свои две колонки, поэтому их ряды не выходят за поле ввода.
  • ВездеДля модели, которую шлюз перечисляет только под путём другого поставщика, например deepseek/deepseek-v4.1-flash под именем opencode-go/deepseek-v4.1-flash, размер окна контекста берётся из этого списка, а не принимается минимальным, поэтому старые результаты инструментов больше не стираются уже через несколько тысяч токенов.
  • ВездеЗагрузка страницы или поиск, которые так и не дошли до сервера, например когда компьютер не в сети, больше не считаются прочтением страницы, поэтому сессии, которая продолжает работу только со своими файлами, не задают вопросов и не отказывают при последующих удалениях и отправках; ошибка с цитатой ответа сервера по-прежнему считается прочтением, а слова сервера в неудавшемся защищённом соединении, адрес перенаправления и тип файла теперь помечаются как текст от сервера.
  • ВездеНа DeepSeek и Kimi рассуждения, которые отправляются обратно вместе с вызовами инструментов текущего хода, учитываются в окне контекста, поэтому длинный ход стирает старые результаты до того, как его запросы перестанут помещаться в модель.
  • ВездеТеперь читается отчёт шлюза о записи в кэш промпта в поле prompt_tokens_details.cache_creation_tokens, как его присылают некоторые шлюзы, отдающие Claude через API chat completions: если промпт ответа был записан в кэш, он учитывается как входные токены, записанные в кэш, а не только как несколько токенов, отправленных заново, — в строке расхода, в заполненности окна контекста, в /usage и в letronna -p --output json.
  • ПриложениеОткат к вашему сообщению возвращает его текст в поле ввода перед тем, что вы успели набрать, а не вместо него, вместе с изображениями сообщения, и поле ввода снова принимает нажатия клавиш; Rewind и Retry недоступны, пока сессию занимает запуск (раньше они просто ничего не делали), а если во время отката что-то запустилось, откат сообщает об этом.
  • ПриложениеКнопки Undo these и Revert на вкладке Changes сообщают модели, какие файлы были возвращены, чтобы она перечитала их, прежде чем менять, а откат на более раннюю точку по-прежнему возвращает их.
  • ВездеВывод команд, страницы и результаты MCP больше не скрывают значение в строке как секрет только потому, что в имени есть слово вроде key или token: у KeyError: '...' в Python и у любой другой ошибки или предупреждения сообщение сохраняется, а строки вроде keyboard.drv=keyboard.drv, ssh-keygen: generating new host keys и smtpd_tls_key_file=/etc/ssl/private/x.key показываются целиком. Значение по-прежнему скрывается, если одно из слов имени оканчивается на key, token, secret, password, passwd, credential или auth, с s на конце или без, как в PGPASSWORD, API_KEYS и passWord, — кроме случаев, когда последнее слово имени — file, filename, path, dir, url, name или type, с s или без.
  • Вездеweb_fetch доверяет не только своим сертификатам, но и системным, которые читаются из SSL_CERT_FILE или SSL_CERT_DIR, если задана одна из этих переменных, поэтому в сети, которая переподписывает HTTPS своим центром сертификации, он открывает те же страницы, что curl и git, а не отклоняет каждую как выданную неизвестным издателем; сертификат, который он не может использовать, пропускается. Соединения со шлюзом по-прежнему используют только встроенные корневые сертификаты.
v0.1.0-alpha.36 октября 2026 г.

Главное

  • ВездеПомощники, которые работают параллельно, ответвляются от разговора, ждут новой работы и ведут общий список задач, а также рабочие процессы, которые запускают много агентов по одобренному вами скрипту.
  • ВездеАвтоматический режим: автоматический проверяющий (judge) на вашей же модели решает то, что иначе потребовало бы вашего подтверждения, а на macOS и Linux команды вместо этого могут выполняться в изоляции средствами ОС.
  • ВездеMCP-серверы по HTTP и с OAuth, плагины из git-репозитория, а также запуск Letronna из Zed или JetBrains через ACP.
  • ПриложениеБраузер открывается рядом с чатом и занимает половину места; длинный вывод сворачивается в короткие превью; текущая работа собрана в одну строку над полем ввода; вкладки Files, Changes и Jobs, палитра команд по Ctrl+K, а всё окно доступно с клавиатуры.
  • МессенджерыSlack, привязка по коду, файлы и голосовые сообщения в обе стороны, а также letronna serve для ответов без открытого окна.
  • ВездеЗапуски без присмотра доводят до конца то, что им поручили: продолжают работу после оборванного или пустого ответа, закрывают свой чек-лист, читают входные данные, проверяют файлы, которые от них требовались, и получают сообщение, что ответить на их вопросы некому. letronna -p принимает крайний срок и JSON Schema для ответа, а адрес сервера берёт из переменных окружения.
  • ВездеРасписания, у каждого из которых свой режим, память агента, которую можно просматривать и редактировать, и окно, которое расходует гораздо меньше RAM и ресурсов процессора — и в работе, и в простое.
Добавлено 128
  • ВездеLetronna Cloud управляется прямо из чата: попросите запустить там что-нибудь или держать бота онлайн 24/7, спросите о его состоянии или попросите остановить либо перезапустить его. Команды /cloud больше нет.
  • СайтСтраница Cloud на letronna.ai показывает всё, что вы размещаете (боты и веб-приложения), их вывод, кнопки остановки, запуска и перезапуска и сколько стоил каждый из них, а также отправленные вами запуски.
  • СайтСтраница использования показывает, сколько стоили текст, медиа и облако, по дням за тридцать дней, опубликованную цену каждой модели рядом с тем, что заплатили вы, и сколько вы сэкономили.
  • ВездеLetronna Cloud держит ботов и другие постоянно работающие программы онлайн 24/7, когда вы просите оставить их в сети: они перезапускаются, если остановились, останавливаются после цикла падений или когда заканчиваются средства на балансе; оплата почасовая. Ими управляют letronna cloud apps, logs, down и up. Облачные вычисления теперь стоят около $6 за ГБ RAM в месяц, так что небольшой бот, работающий весь месяц, обходится примерно в $0,75 с баланса.
  • ВездеLetronna Cloud поддерживает работу веб-приложений: облачный запуск может оставить работать любой сервер (Next.js, API на Rust, что угодно на порту) по собственному адресу; сервер просыпается при посещении, засыпает через 10 минут без посещений и оплачивается, только пока не спит. Треды, которыми не пользовались 14 дней, удаляются.
  • ВездеОблачный запуск, создавший страницу, даёт на неё приватную живую ссылку, и страница открывается, даже когда ничего не запущено; с letronna cloud relay on облако отвечает в вашем чате Telegram, пока этот компьютер выключен; letronna cloud support <run> on разрешает службе поддержки посмотреть запуск, и каждый просмотр записывается в журнал.
  • СайтАдминистрирование Cloud на letronna.ai/dashboard/admin со входом через ваш аккаунт: пул ресурсов, текущая работа, использование и журнал аудита.
  • ВездеАгент сам выбирает, где делать то, что вы просите: в первую очередь — одну самодостаточную страницу, график или небольшое приложение в виде файла, который вы сначала просматриваете, затем — проект на этом компьютере, а Letronna Cloud — только если этот компьютер не справится (с вашего согласия, поскольку это расходует баланс).
  • ПриложениеПосле отправки Enter и Escape отвечают на карточку прямо из поля ввода; Tab проходит каждый переключатель один раз, а пробел переключает его; на macOS Cmd+Q закрывает Letronna из любого места окна.
  • ВездеLetronna Cloud (Pro): letronna cloud "task" в терминале и /cloud <task> в окне запускают задачу на серверах Letronna — в указанном вами репозитории или без него — и возвращают ответ; тред продолжает работу и спит на сервере между сообщениями. Стоимость списывается с вашего баланса.
  • Вездеletronna doctor проверяет настройку, а локальный журнал и файлы аварийных отчётов помогают выяснить, что пошло не так.
  • ПриложениеОкно оформлено в цветах letronna.ai; в настройках можно выбрать его цвета и включить или выключить зернистость плёнки.
  • ВездеLetronna знает размер контекстного окна и лимит вывода каждой модели.
  • ВездеПомощники могут отвечать в проверяемом формате.
  • ВездеМодель знает сегодняшнюю дату.
  • ВездеПока Letronna работает, можно отправлять новые сообщения: они доходят до модели на следующем шаге ответа — в окне и в терминале.
  • ВездеТипы помощников, встроенные и заданные в ваших собственных файлах, делят один бюджет токенов на всё дерево помощников.
  • ВездеРазговоры помощников хранятся рядом с их сессией и не попадают в список сессий.
  • ВездеСледите за работающими помощниками, направляйте и останавливайте их, отвечайте на их запросы подтверждения — в окне и в терминале.
  • ВездеОтветвляйте помощника от разговора и задавайте попутные вопросы через /btw.
  • ВездеСохранённые помощники простаивают в ожидании новой работы и просыпаются от сообщения.
  • ВездеАгенты одной сессии ведут общий список задач с ответственными и блокерами.
  • ВездеПомощники могут отвечать по проверяемой схеме, даже когда достигли лимита раундов.
  • ВездеЗапуски рабочих процессов ведут журнал и при повторе воспроизводят из него то, что уже завершилось.
  • ВездеLetronna ведёт заметки по каждому проекту в собственной памяти, которая не принимает ключи доступа и подброшенные инструкции.
  • Везде/init поручает модели написать AGENTS.md проекта, а AGENTS.md или CLAUDE.md могут подключать другие файлы через @path.
  • Везде/usage суммирует токены и стоимость по сессиям, дням и моделям; строка использования показывает, насколько было заполнено контекстное окно модели.
  • ВездеКаждая сессия хранит свою модель и уровень усилий.
  • ВездеВаши собственные команды-хуки могут заблокировать вызов или не дать ходу завершиться.
  • ВездеМодель видит изображения, которые прикрепляете вы и которые открывают её инструменты.
  • ВездеMCP по HTTP; серверы принимают переменные, фильтры инструментов и собственное время на запуск, перезапускаются после остановки и перезагружаются при изменении mcp.json. Добавляет их letronna mcp.
  • ВездеМногие инструменты MCP подгружаются по мере необходимости, а не передаются в каждом запросе.
  • ВездеЛюбой инструмент можно отключить, а инструменты, которые не могут работать, не предлагаются.
  • МессенджерыОбщайтесь с Letronna из Slack. Чат Telegram привязывается по коду, и отвечать может только его владелец.
  • МессенджерыЦельные отформатированные ответы с кнопками Allow/Deny; файлы, фото и голосовые сообщения передаются в обе стороны.
  • ТерминалУведомления показываются и передаются модели посреди хода и между запросами; строки, набранные, пока Letronna работает, отображаются как поставленные в очередь, и их можно отозвать.
  • ВездеОтправка сразу: сообщение из очереди уходит, не дожидаясь конца шага.
  • ПриложениеРежим указания в панели браузера: щёлкните по месту на странице, прокомментируйте его, и ссылка на него попадёт в поле ввода.
  • ВездеРабочие процессы: скрипты выполняются в движке JavaScript в песочнице, Letronna может запустить собственный скрипт после вашего одобрения, а Crew (@crew или переключатель) включает оркестрацию для отдельного сообщения.
  • ВездеПомощники могут работать в собственном рабочем дереве git (worktree).
  • Везде/loop и /heartbeat поддерживают работу одной сессии; сессия может работать над целью, пока проверка не скажет остановиться.
  • ВездеЗапускайте свои промпты и навыки как слеш-команды и разрешайте модели сохранять, исправлять и откатывать навыки, которым она научилась.
  • ВездеПрикрепляйте файлы, диапазоны строк и папки, набирая @path; поле ввода предлагает команды после / и ссылки после @.
  • ВездеВыберите стиль ответов или напишите свой.
  • ВездеОтветы можно озвучивать по мере их поступления; голосовой ввод превращается в текст в позиции курсора.
  • ВездеПрикреплённые изображения можно редактировать через шлюз изображений чата, а долгий рендеринг видео выполняется как фоновое задание.
  • ВездеУправление компьютером запрашивает разрешение один раз для каждого приложения — на macOS и на Linux под X11.
  • ВездеБраузер загружает на страницы файлы проекта, хранит скачанные файлы, сохраняет страницу в PDF, делает снимок всей страницы, наводит курсор, перетаскивает, ждёт появления нужного текста, действует во фреймах с других сайтов и выполняет шаги пакетом.
  • ВездеЗагруженные страницы сохраняют свои ссылки, а PDF сохраняется как файл; веб-поиск можно ограничить определёнными сайтами, исключить другие или искать только свежее.
  • ВездеMCP: чтение ресурсов, запуск промптов как команд, вход на серверы с OAuth; инструменты получают уникальные имена и чистые схемы.
  • ВездеПлагины добавляют навыки и MCP-серверы из git-репозитория.
  • ВездеДругие агенты могут использовать браузер и медиаинструменты Letronna через MCP, а редакторы Zed и JetBrains — запускать Letronna через ACP.
  • ВездеМодели OpenAI меняют несколько файлов одним патчем и с одним подтверждением.
  • ВездеПосле правок новые ошибки от языкового сервера доходят до модели, а ход, изменивший файлы, один раз получает просьбу собрать или протестировать их.
  • ВездеЕсли модель задачи даёт сбой, задача продолжается на резервной модели.
  • ВездеAGENTS.md из подпапки попадает к модели, когда она работает в этой подпапке.
  • Везде/insights показывает последние недели в разрезе дней, часов, инструментов и моделей; /diff показывает, что изменилось в проекте и в этой сессии.
  • ВездеУведомления сообщают вам, когда запуск завершился или ему нужно ваше участие.
  • ВездеПродолжайте сессию Claude Code или Codex — в терминале или в окне.
  • ВездеПамять агента вносит несколько изменений за один вызов по принципу «всё или ничего».
  • ВездеКлючи доступа и токены переносятся в Keychain или Credential Manager.
  • ТерминалДругие программы могут управлять letronna -p через stdin строками JSON, а --mode accept-edits разрешает правки внутри проекта.
  • ПриложениеCtrl+K открывает палитру действий, страниц, сессий и моделей, а глобальное сочетание клавиш открывает строку быстрого ввода откуда угодно.
  • ПриложениеВкладки Files и Changes рядом с чатом: обзор и предпросмотр файлов проекта, просмотр и откат правок этой сессии, а также добавление в индекс, коммит и пуш.
  • ПриложениеВ разделе Capabilities появились вкладки Tools и MCP с переключателями для каждого инструмента, а также страница Plugins.
  • ПриложениеСтраница первоначальной настройки, профили папок данных, а в боковой панели — фильтры по состоянию сессий и группировка по проектам.
  • ПриложениеАртефакты HTML и SVG можно открыть в предпросмотре, а неудавшийся ход объясняет в чате причину и предлагает исправление.
  • ПриложениеНастройте Slack на странице Messaging и привяжите участника по коду.
  • ВездеАвтоматический режим: автоматический проверяющий (judge) на вашей же модели решает то, что иначе потребовало бы вашего подтверждения; каждый вызов получает метку, а решения собираются в список (/decisions в терминале, список Decisions в окне).
  • ВездеНа macOS и Linux в режиме принятия правок (Accept edits) и в автоматическом режиме команда может вместо запроса подтверждения выполняться в изоляции средствами ОС (без сети, запись только в проекте).
  • ВездеСохранённые рабочие процессы становятся слеш-командами, а /review встроен по умолчанию; следите за запусками рабочих процессов и их агентами, приостанавливайте, останавливайте, возобновляйте, пропускайте и повторяйте их — в терминале и в окне, — а также читайте переписку отдельного агента или журнал запуска.
  • ВездеРасписания выполняет ядро того экземпляра Letronna, который открыт; ни одно не выполняется дважды, и у каждого свой режим; модель может добавлять, просматривать и удалять их, а расписания, мессенджеры и /bg работают параллельно с чатом.
  • Вездеletronna serve отвечает в мессенджерах без открытого окна, а открытое окно перенимает у него эту работу.
  • ВездеКаждые 10 сообщений Letronna может просматривать разговор и решать, что запомнить; смотрите и редактируйте память агента через /memory или страницу Memory в настройках.
  • ВездеДелайте сводку более ранних ходов по запросу — сразу или до выбранного хода.
  • ВездеСтарые сессии можно удалять через заданное число дней, а после отката в файле не остаётся ничего из отменённого.
  • ВездеКоманда, которая всё ещё выполняется по истечении лимита времени, продолжает работать как фоновое задание.
  • ПриложениеДо любой части окна можно добраться с клавиатуры; серия вызовов инструментов сворачивается в одну строку; завершённый ход перечисляет изменённые файлы; вкладка Jobs показывает фоновые задания в реальном времени; всплывающая панель в строке состояния показывает, чем заполнен контекст.
  • ПриложениеБраузер открывается рядом с чатом и занимает половину места, а может занять и всё; пока агент работает в браузере, страница видна в уменьшенном виде в углу чата.
  • ПриложениеДлинный вывод сворачивается в короткие превью: последние строки команды (у неудачной — красным, и она остаётся раскрытой), первые строки файла, правка как +a −b с диффом, размышления как «Thought for 12s»; изображения открываются во встроенном просмотрщике окна.
  • ПриложениеРаботающие помощники, запуски рабочих процессов и задания, а также шаги плана собраны в одну строку над полем ввода; пока модель пишет длинный вызов, в ответе видно «Writing app.rs…».
  • ПриложениеКарточки подтверждения: Enter разрешает, Escape запрещает, а когда ответ спрашивает о нескольких вызовах, показывается «2 of 3».
  • ПриложениеБоковая панель отдаёт место сессиям, а остальные страницы убраны в More; Ctrl+Tab переключает между недавними сессиями; в пустом чате показан список недавних сессий.
  • ПриложениеЕсли выбрана модель изображений, речи или видео, она создаёт результат из того, что вы отправляете.
  • ВездеКогда проверка на сайте останавливает агента, он ждёт, пока вы её пройдёте, и продолжает сам.
  • ВездеБраузер работает с собственными выпадающими списками сайтов, прокручивает панель по её идентификатору (ref), вводит значения в поля даты, времени, цвета и диапазона, сообщает, куда попал щелчок, и перед чтением страницы ждёт, пока завершится то, что запустил щелчок.
  • ТерминалНавыки и промпты MCP больше не загромождают меню /: они появляются по мере ввода, а также в /skills и /mcp.
  • ВездеЗапуск без присмотра (-p, расписания, /bg, редакторы, мессенджеры) продолжает работу после оборванного или пустого ответа, один раз возвращается к работе, если в чек-листе остались открытые пункты, и перед завершением проверяет файлы, которых требовал запрос; -p --output json перечисляет, что ещё не так.
  • Вездеrun_command принимает тайм-аут до получаса для медленных сборок и тестов.
  • ПриложениеПревью открываются сами, если это не отключено.
  • ТерминалПо спискам можно перемещаться стрелками, а Escape отклоняет выбор.
  • ВездеСкрипты Harness-Bench для оценки letronna -p и сравнения двух сборок по каждой задаче.
  • Терминалletronna -p --json-schema требует ответ в виде JSON, который проверяется по схеме; --output json называет сессию, модель и стоимость и считает отклонённые вызовы.
  • ТерминалLETRONNA_DEADLINE на 80% отведённого времени предупреждает запуск -p, что пора записать результаты, а затем останавливает его; AGENT_BASE_URL, AGENT_API_KEY и AGENT_MODEL направляют запуск на сервер без какой-либо настройки.
  • Терминалletronna --dump-config выводит настройки и лимиты, которые получил бы запуск -p.
  • Вездеcontext_window и max_output в настройках или LETRONNA_CONTEXT_WINDOW и LETRONNA_MAX_OUTPUT задают неизвестной модели её реальные лимиты; списки моделей vLLM и Groq тоже их задают.
  • Вездеrun_command принимает workdir и выполняется в bash, если bash есть в PATH; долгая команда в запуске без интерфейса продолжает работу в фоне.
  • ВездеРасписание может сработать один раз в заданные дату и время, а модель знает часовой пояс компьютера.
  • ВездеБраузер может нажимать клавишу для каждого символа, а заполненное поле считывается обратно, чтобы пакет шагов остановился, если текст не сохранился.
  • ВездеЗагруженная страница показывает свои формы вместе со скрытыми полями и не включает текст, скрытый её разметкой.
  • ВездеПри значении false в parallel_tool_calls вызовы инструментов выполняются по одному; заданные для типа помощника уровень усилий, фоновый режим и изоляция теперь действуют.
  • ВездеLETRONNA_ALLOW_HTTP=1 разрешает обычный HTTP к хостам в локальной сети; LETRONNA_DISPOSABLE=1 разрешает запуску --yes без присмотра в одноразовом контейнере удалять папку.
  • ВездеLetronna работает как агент Harbor для Terminal-Bench и SWE-bench, а ClawBench и матрицу инъекций A.I.G можно прогонять на Letronna.
  • ВездеВ релизах есть статически собранная терминальная версия для Linux на x86_64 и aarch64.
  • ВездеСессия может работать в собственном рабочем дереве git и по завершении перенести результат обратно.
  • ВездеЗапуски по расписанию могут отправлять отчёты по электронной почте; пароль приложения лежит в хранилище секретов.
  • ВездеВ настройках можно выбрать вспомогательную модель подешевле для сводок, предложений коммитов и проверок целей.
  • ВездеИзменения памяти агента можно просмотреть списком и откатить.
  • ВездеФайл инструкций .local в папке читается после общего файла этой папки.
  • ВездеZed и JetBrains могут через ACP заново открывать сессии Letronna и выбирать модель.
  • ВездеAPI-ключ Anthropic подключается напрямую к API Anthropic, с кешированием промптов и размышлениями; модели рассуждений OpenAI сохраняют ход рассуждений между раундами инструментов через Responses API.
  • ВездеПамять агента: выбирайте, когда чат сохраняет в неё сведения (только по просьбе, после вашего согласия или самостоятельно) и где хранит запомненное (в проекте, в чате или везде), — через --memory, --memory-scope, --private, /remember, окно и мессенджеры.
  • Вездеread_file читает файлы Word, Excel, PowerPoint и PDF как текст, а поиск может заглядывать внутрь документов.
  • ВездеСразу после установки можно искать в интернете через DuckDuckGo без API-ключа.
  • ВездеНа запросы фонового задания можно отвечать с помощью send_job.
  • ВездеОткат также отменяет изменения, которые команда внесла в проект.
  • ВездеОтложенное пробуждение переживает перезапуск и может наступить через сутки; расписание может молчать, если ничего не изменилось.
  • ВездеЧат без проекта работает в собственной папке Letronna.
  • ВездеЭкспериментальный инструмент для скриптов может выполнять много вызовов только для чтения за один шаг.
  • ВездеВ Letronna есть встроенный навык, который объясняет команды и настройки Letronna.
  • ВездеЯдро может отправить карточку, ожидающую в окне, в личные сообщения владельца в мессенджере.
  • ВездеРедакторы, подключённые через ACP, могут выбирать режим агента.
  • ВездеПередавайте работу Claude Code или выбирайте его как модель.
  • Вездеread_file читает текстовые документы, таблицы и презентации OpenDocument, а книги EPUB — по главам; для старых файлов .doc, .xls, .ppt и .rtf выводится подсказка, как сделать их читаемыми.
  • ПриложениеОкно показывает карточку для ввода текста в фоновое задание, тоже запускает пробуждения и может отключить поиск через DuckDuckGo, когда ключ не задан.
  • ПриложениеСтраница Skills может скопировать встроенный навык справки для редактирования, а строка памяти показывает, куда попала запись.
  • ВездеВ вопросах указан рекомендуемый ответ, а терминал принимает ответы в свободной форме.
  • ВездеДля повторяющихся задач и уведомлений в первую очередь используются собственные расписания и мессенджеры Letronna — с вашего согласия.
Изменено 76
  • ВездеОблачные запуски показывают, что делают, в реальном времени: letronna cloud выводит каждый шаг, а /cloud в окне показывает текущий шаг, передаваемый потоком через SSE (с опросом, если поток обрывается). Веб-приложения в облаке могут передавать посетителям поток (SSE) сколько угодно долго.
  • ВездеОблачный запуск использует собственный короткоживущий токен с доступом только к моделям, а не ваши данные для входа.
  • ВездеНеудачный запрос к модели сообщает, что пошло не так: API-ключ, баланс, лимит запросов в минуту, загруженность провайдера, слишком длинный разговор и так далее.
  • ВездеМодели рассуждений OpenAI работают, а если сервер отклоняет какое-либо поле, запрос отправляется ему повторно без этого поля.
  • ВездеПодсчёт заполнения контекстного окна учитывает вызовы инструментов, изображения и текст на китайском, японском и корейском, поэтому длинные разговоры обрезаются там, где нужно.
  • ВездеЕсли дописать сообщение, пока Letronna работает, исходный запрос хода остаётся в поле зрения модели.
  • ВездеЧек-лист остаётся на виду — в окне и в терминале — даже в долгой задаче.
  • ВездеРазрешения, выданные в одной сессии, действуют только в этой сессии.
  • ВездеИнструменты принимают имена аргументов других агентов и значения в кавычках, а edit_file находит текст несмотря на разные окончания строк и пробелы.
  • ВездеКоманды выполняются без пейджера и редактора, которых пришлось бы ждать, а коды цветов не попадают в то, что читает модель.
  • ПриложениеКарточка подтверждения и поиск инструментов больше не перечитывают файлы на каждом кадре.
  • ПриложениеПример плагина теперь по умолчанию выключен.
  • ВездеПакеты вызовов выполняются одновременно.
  • ВездеПоиск по сессиям находит слова в любом порядке — в боковой панели и в /resume; терминал показывает список сессий, не читая каждый файл.
  • ВездеРанние ходы сохраняются при неудачной сводке, сводка переживает перезапуск, а сжатие контекста теперь видно.
  • ВездеПапка проекта внутри репозитория сохраняет правила этого репозитория.
  • ВездеКоманды и MCP-серверы запускаются с переменными окружения оболочки входа.
  • ВездеПри остановке вызова MCP об этом сообщается его серверу, а остановка сервера завершает всё, что он запустил.
  • ВездеРежим планирования отклоняет инструменты, которые что-то меняют, как бы их ни вызывали.
  • ВездеСекретные файлы, такие как .env, и закрытые ключи недоступны модели; на .env.example это не распространяется.
  • ВездеОстановка доходит до ожиданий и выполняющихся команд и завершает их.
  • ВездеДлинные ответы больше не обрываются через две минуты; ответ завершается только после пяти минут тишины.
  • ВездеЗапуски без присмотра никогда не зависают в ожидании ответа на вопрос.
  • ВездеСводки используют то же соединение, что и чат, а активное фоновое задание больше не копирует весь свой журнал при каждом чтении.
  • ВездеЗапуски без окна (-p, помощники, рабочие процессы) соблюдают запрещающие правила и базовый уровень безопасности, а согласие на запуск больше не распространяется на последующий, более опасный вызов.
  • ВездеЗапуски без присмотра, которые повторяют один и тот же вызов с тем же результатом, останавливаются.
  • ВездеПомощники и агенты рабочих процессов проходят полную проверку разрешений — в режиме своей сессии, с её правилами, выданными разрешениями и автоматическим проверяющим (judge).
  • ВездеЗадания выводятся списком, ожидание реагирует только на новый вывод, а сессия видит только свои задания.
  • ВездеЕсли команда выводит больше 4 МиБ, вывод сохраняется целиком для read_file.
  • ВездеДля вызовов к мессенджерам, вебу и медиасервисам повторно используется по одному прогретому соединению на каждый вид; при промахе кеша указывается часть, которая изменилась.
  • ВездеВстроенные в текст блоки размышлений (think) передаются потоком как рассуждения; read_file показывает блокноты по ячейкам.
  • ПриложениеОкно загружает сессию только при её открытии, отслеживает, что терминал записывает в сессии, и подсвечивает синтаксис восьми языков вместо двадцати семи.
  • ПриложениеПоиск по сессиям пропускает сессии, в которых не может быть искомых слов, а ответ, который сдвигает окно, больше не ждёт своей сводки.
  • ПриложениеОкно расходует гораздо меньше RAM: изображения загружаются не крупнее отображаемого размера и затем освобождаются, сессии, загруженные запусками, мессенджерами или терминалом, тоже освобождаются, а при смене профиля загружается только открываемая сессия.
  • ТерминалУстановленный терминальный клиент называется letronnacli.exe и имеет логотип; команда letronna по-прежнему его запускает.
  • ПриложениеОкно гораздо меньше нагружает процессор: идущий ответ перерисовывается с частотой 25 кадров в секунду, а не 120; скрытое или свёрнутое окно и значок в трее не тратят ресурсы; панель браузера декодирует только видимые изображения; карточка подтверждения и список моделей вычисляются один раз.
  • ПриложениеПосле выделения текста окно больше не удерживает лишние 40–80 МБ RAM, а кадры видео и переписка помощника освобождаются, как только перестают отображаться.
  • ПриложениеТема Night стала спокойнее: полуночная рамка вокруг страницы цвета тёмных чернил.
  • ВездеКоманда, завершившаяся с ненулевым кодом, считается неудачным шагом, а строка веб-поиска показывает, что искали.
  • ВездеСчётчик токенов рабочего процесса растёт по мере поступления ответов его агентов.
  • ВездеЗапуск -p получает 100 раундов вызова инструментов, повторяет попытки так же, как запуск по расписанию, и знает, что за ним никто не следит, а недоступные ему инструменты не предлагаются.
  • ВездеНапоминание проверить правки распространяется и на патчи, а снять его может только успешно завершившаяся команда, которая не только читает; одни лишь правки файлов .md или .txt его не вызывают. Запуску без присмотра сообщается, какие файлы он изменил после последней успешной сборки или теста.
  • ВездеТекст из файлов и вывода команд, обращённый к ИИ, получает пометку Letronna, а сводка отброшенных ходов помечается как производный текст.
  • ВездеОшибки инструментов подсказывают следующий шаг, а команда, которая ничего не вывела, сообщает об этом.
  • ВездеLETRONNA_READ_TIMEOUT задаёт, как долго ответ может молчать.
  • ВездеПеред завершением запуску сообщается, какие входные файлы он так и не прочитал, а запуску без присмотра — что есть в PATH и в его папке.
  • ВездеЗапись и правка называют изменённый файл; CSV, оставленный с неровными строками, получает пометку; отклонённые опасные команды предлагают более узкую альтернативу.
  • ВездеИз файлов, вывода команд, страниц и результатов MCP удаляются невидимые символы, с пометкой о том, сколько их было; edit_file находит текст, который отличается только ими.
  • ВездеПосле недоверенного содержимого рискованные вызовы проверяются даже при --yes; навыки, написанные моделью, остаются выключенными, пока вы их не включите, а установленные навыки доходят до модели очищенными и помеченными.
  • ВездеОтчёт помощника приходит в виде цитаты под заголовком; навык, которому следует модель, остаётся в контексте, когда старые результаты очищаются, а очищенный результат, который был сохранён, по-прежнему указывает свой файл.
  • ВездеМодели рассуждений получают бюджет ответа в виде max_completion_tokens; полная страница результатов поиска доходит до модели целиком; поиск называет папки, скрытые файлом .gitignore уровнем выше проекта.
  • ВездеЧтение всех страниц неизменённого файла засчитывается как чтение целиком; слишком большое для отправки изображение уменьшается; PDF, сохранённый web_fetch, можно читать постранично через read_file.
  • ВездеЕсли команда проверки цели завершается с ошибкой, цель не считается достигнутой, а /review охватывает новые файлы и изменения с момента ответвления ветки.
  • ТерминалНеизвестный флаг вызывает ошибку, при продолжении используется сессия этой папки, --resume с -p требует идентификатор, а -p в режиме по умолчанию (Default) предупреждает, что запись будет отклонена.
  • ВездеАгенту сообщается, когда меняется режим сессии, когда вы остановили его ответ, какие MCP-серверы не готовы, а в длинных ходах — какие правила всё ещё действуют (по умолчанию выключено).
  • ВездеПосле инструмента, который раз за разом даёт сбой, добавляется подсказка сменить подход; проверка цели требует доказательств выполнения каждой части.
  • ВездеПредлагаемые сообщения коммитов следуют стилю самого репозитория.
  • ВездеХуки Claude Code, которые Letronna не выполняет, пропускаются с уведомлением; ходу в окне во время запуска по расписанию предлагается только то, что разрешено вызывать этому запуску.
  • МессенджерыВ Slack жирный шрифт, заголовки и ссылки отображаются в его собственном формате.
  • ВездеАгент сохраняет что-либо в память только по вашей просьбе, если вы не выбрали иначе.
  • ВездеПравка, не нашедшая нужный текст, показывает ближайший фрагмент и различия; запись, нарушившая синтаксис файла, сообщает об этом.
  • ВездеДлинную страницу можно читать дальше первого экрана, а ответы из интернета берутся со страницы, которая решает вопрос, вместе с её адресом.
  • ВездеФайлы, записанные патчем, отображаются в Outputs и доходят до редакторов как правки; файлы, которые запрос велел не трогать, называются, если запуск их изменил.
  • ВездеЗаблокированная цель получает ещё одну попытку, а затем ставится на паузу, а не отбрасывается.
  • ВездеРежим планирования может сохранять все инструменты, поэтому переключение режима не сбрасывает кеш (по умолчанию выключено).
  • ВездеПроверка разрешений читает аргументы вызова под теми именами, которые принимает инструмент; run_command объясняет, как читать его результат, и сообщает, что у него нет клавиатуры.
  • ВездеИнструмент чек-листа объясняет, когда им пользоваться и что значит «готово»; сводка сохраняет ваши правила дословно и отмечает сделанное. /init записывает подводные камни короткими правилами, без обзора папок.
  • ВездеБолее короткие и понятные инструкции для модели: ответы начинаются с сути, говорят, что считается сделанным, объединяют вызовы в пакеты, при сомнениях сначала спрашивают, а слово пользователя важнее файла проекта; пятнадцать инструментов теперь сообщают каждый факт один раз, что экономит 490 токенов в каждом запросе.
  • ВездеРежим планирования воспринимает запрос как задание составить план; помощникам сообщают, чего они не могут делать, и они отчитываются о том, что проверили; модели, отличные от Claude, берут меняющиеся факты из инструмента.
  • ВездеАгент указывает на внешний текст, который пытается давать ему указания, но никогда не копирует его; правило о недоверенном тексте сформулировано один раз.
  • ВездеАвтоматический режим разрешает установки в проекте и локальные операции git, но не пуш, о котором никто не просил; запуск --yes без присмотра удаляет папку только внутри своего проекта; перенаправление оценивается по месту назначения.
  • ВездеРезультаты должны точно соответствовать значениям, ключам и столбцам, перечисленным в запросе, а на проверку запуск возвращается только из-за кода, который в этой папке можно собрать или протестировать.
  • ВездеОтветы в мессенджерах используют списки, а не таблицы; ответы в терминале — строки жирным шрифтом и списки.
  • ВездеУказания по работе с памятью агента стали короче и велят сохранять факты, а не распоряжения или неудачи; сохранённые навыки хранят сработавшие шаги; изменение памяти или навыка больше не переписывает кешированные правила.
  • ПриложениеОкно построено на GPUI Kit 0.7.1; панели и новые сообщения появляются плавно (без анимации, если включено уменьшение движения); настройки открываются поверх размытого окна на X11 и macOS; Tab доходит до каждого переключателя в настройках.
  • ПриложениеВ заголовке окна слева показывается название Letronna вместо названия сессии, а раздел About стал короче.
Исправлено 30
  • ВездеКоманда, которая выгружает файл ключа (curl, wget, scp, rsync), отклоняется в любом режиме, а .gnupg, .pgpass, .vault-token, .azure и настройки gcloud считаются секретными.
  • ВездеПравка, чей старый текст не найден, так и сообщает, а не пишет «already applied»; обычный текст больше не сохраняется как .docx, .xlsx, .pptx, .zip или .pdf, а команда с ненулевым кодом выхода считается неудавшейся.
  • ПриложениеУдаление последней сессии больше не роняет окно, новая сессия больше не наследует изображения удалённой, а завершённый пустой ответ больше не показывает Thinking бесконечно.
  • ПриложениеНовая сессия появляется вверху списка, даже если для неё переиспользуется пустая.
  • ПриложениеЗакрытие настроек или панели браузера освобождает память GPU, занятую их изображениями.
  • ПриложениеСоздание новой сессии открывает уже имеющуюся пустую, а не плодит новые; последняя сессия на боковой панели полностью прокручивается в зону видимости, а щелчок правой кнопкой по сессии больше не рисует чёрный ореол.
  • ВездеКатастрофические команды, например удаление вашей домашней папки, отклоняются при любой настройке подтверждений.
  • ВездеДва экземпляра Letronna никогда не смешивают свои записи в одну сессию, а сбой посреди сохранения стоит одной строки, а не всей сессии.
  • ВездеКлючи, настройки и файлы памяти никогда не сбрасываются и не стираются молча из-за неудавшегося чтения, а повреждённый skills.json никогда не заменяется значениями по умолчанию.
  • ВездеСессия, удалённая в одном экземпляре Letronna, остаётся удалённой, а оставшийся файл блокировки больше не дублирует сессию в списке.
  • ВездеКоманды никогда не зависают из-за дочернего процесса, который они оставили работать, а вывод, который не является корректным UTF-8, сохраняется.
  • Вездеweb_fetch проверяет каждый адрес и каждое перенаправление, по которым переходит.
  • ВездеВызовы инструментов, приходящие в потоке, собираются отдельно для каждого вызова.
  • ВездеAGENTS.md проекта больше не может подвесить приложение ссылкой на устройство.
  • Терминалletronna -p больше не загружает ядро процессора, пока ответ приходит в потоке.
  • ВездеДва экземпляра Letronna, запущенные одновременно, никогда не пишут в одну сессию.
  • ТерминалФоновые задания останавливаются при выходе из терминала.
  • ВездеУточнения и уведомления, отправленные посреди хода, оставляют запрос этого хода в поле зрения модели.
  • Везде/btw использует общий кэш сессии и не оставляет устаревших блокировок.
  • ПриложениеОкно снова открывается на сессии, в которой есть сообщения.
  • ТерминалНеудачное обновление откатывается, а удачное сохраняется.
  • ТерминалНажатие Ctrl-C в letronna -p завершает и команду, которую он выполнял.
  • ТерминалЗапуск -p никогда не устанавливает подготовленное обновление и не возвращает старую версию, а SIGTERM или закрытый терминал останавливают его так же, как Ctrl-C.
  • ВездеКоманда, остановившаяся на запросе ввода в терминале, завершается с объяснением причины, а ответ страницы с ошибкой возвращается вместе с тем, что написала страница.
  • ВездеРедактирование изображения на шлюзе, где нет нужного маршрута, предлагает скрипт, а не завершается ошибкой.
  • Терминалletronna -p через stream-json больше не зависает при запуске на Windows.
  • ПриложениеЩелчок по полю поиска в заголовке окна снова открывает палитру команд, а не начинает перетаскивание окна.
  • ВездеОтвет, который провайдер оборвал на полпути, запрашивается заново, а вызов, аргументы которого не являются JSON, больше не завершает запуск.
  • ВездеКоманды в песочнице запускаются на Linux, а не падают при создании процесса.
  • ПриложениеВопрос перед откатом прямо говорит, что будет удалено, а что не отменится, а подсказки на карточках нормально читаются в теме Paper и в узких окнах.
v0.1.0-alpha.227 сентября 2026 г.
Добавлено 27
  • ПриложениеЩёлкните по ходу правой кнопкой или наведите на него курсор, чтобы скопировать, отредактировать или повторить его, откатиться к нему или создать от него ответвление.
  • ТерминалПоследний обмен репликами можно отменить или повторить, а сессию — разветвить.
  • ВездеНастоящий браузер: Letronna читает страницы, нажимает, печатает и делает снимки экрана. В приложении браузер расположен рядом с чатом, где можно следить за ним и пользоваться им самостоятельно.
  • ПриложениеУ каждой сессии свой браузер или один общий для всех, и это может быть облачный браузер или Chrome на другом компьютере.
  • ВездеLetronna обновляется сама: приложение находит, проверяет и устанавливает новые версии, а в терминале это делает letronna update.
  • ВездеПоиск в интернете через ваш собственный поисковый сервис.
  • ВездеСерверы MCP, подключаемые по URL, с заголовками, например с ключом; одиночные вопросы ждут запуска серверов MCP.
  • ВездеСессию можно откатить, и она остаётся откаченной.
  • ТерминалРуководство открывается одним щелчком из /help.
  • ВездеLetronna создаёт изображения, речь и видео и распознаёт речь в текст; для каждого из этих видов работы можно выбрать свою модель.
  • ВездеLetronna запоминает: SOUL.md описывает, кто она, USER.md и MEMORY.md хранят то, что она знает о вас, и её собственные заметки, а AGENTS.md проекта читается как инструкции для этого проекта.
  • ВездеИнструменты с серверов MCP, настраиваемые в mcp.json.
  • ВездеЧтение веб-страниц.
  • ВездеПоиск по прошлым сессиям.
  • Терминалletronna — ИИ-агент в терминале: разговор, инструменты, диффы, /resume по имени, /model, /effort, /thinking, /search, /plan, /jobs и /skills.
  • ВездеОдин аккаунт Letronna для приложения и терминала: /login, /whoami, /logout и страница Account в приложении. Вход выполняется на letronna.ai.
  • ВездеМодели, размещённые в Letronna, доступны в вашем аккаунте и оплачиваются с вашего баланса, без вставки ключа.
  • ВездеВсе настроенные вами шлюзы работают одновременно: в списке моделей собраны модели Letronna и каждого шлюза с ключом, а сообщение уходит на шлюз выбранной вами модели.
  • ВездеШлюзы в виде списка состояний (выполнен вход, подключён, не настроен, не запущен): Settings > Gateways в приложении, /gateways в терминале.
  • ВездеРабота в команде: расходы на размещённые модели можно списывать с общего баланса команды или со своего баланса — через /team в терминале или Settings > Account в приложении.
  • ВездеУровень усилий, размышления и поиск в интернете — там, где их поддерживает шлюз.
  • ВездеЗадания по расписанию, фоновые задания, чек-лист, режим планирования и плагины, добавляющие инструменты.
  • ПриложениеК Letronna можно обращаться из Telegram и Discord, а задания по расписанию отчитываются во все каналы.
  • ПриложениеСтраницы Artifacts и Skills.
  • macOSСборки для macOS с системными шрифтами, путями и полноценным .app.
  • LinuxУстановка и значок в трее на Linux.
  • ВездеУстановка одной командой, а затем несколько вопросов.
Изменено 11
  • ПриложениеМожно печатать, пока агент отвечает, и нажать Esc, чтобы остановить его; удаление сначала запрашивает подтверждение.
  • ПриложениеЧат выглядит как одна колонка, ваши сообщения — в карточках, и при переключении сессий ничего не мигает.
  • ВездеВход больше не ждёт браузер бесконечно, завершается на странице в стиле сайта, а во время ожидания предлагает открыть страницу снова, скопировать её адрес или отменить вход.
  • Windows**, **macOSРелизы можно подписывать цифровой подписью кода, и тогда Windows и macOS перестают предупреждать о неизвестном издателе.
  • ВездеКогда разговор перестаёт помещаться в окно контекста модели, старые ходы сжимаются в краткое изложение, а не забываются.
  • ВездеВызовы модели повторно используют одно соединение, а поиск пропускает файлы без совпадений, не читая их.
  • ВездеLetronna — шлюз по умолчанию и единственный шлюз с размещёнными моделями.
  • ВездеКаждая сессия хранится в отдельном файле, поэтому два экземпляра Letronna могут работать одновременно.
  • ВездеНастройки, сохранённые для шлюза, который больше не предлагается, переносятся в ваш аккаунт Letronna.
  • ТерминалВопросы задаются прямо в поле ввода, над строкой, где вы печатаете.
  • ВездеНеудавшийся ход сообщает причину; инструменты работают и на шлюзах, которые их переименовывают.

Исправлено

  • ВездеИмена с диакритическими знаками больше не искажаются при входе.
  • Linux**, **macOSКлючи и файлы входа доступны для чтения только вам.
  • ВездеВаши ключи и данные входа остаются недоступны модели.
  • ТерминалПри сохранении в терминале сессии не теряют закреплённые элементы и список дел.
  • WindowsВставленный текст приходит одной вставкой, команды выполняются без мелькающего окна консоли, а колёсико мыши прокручивает.
  • ВездеКонтекст больше не теряется на больших результатах инструментов; оборванные вызовы инструментов восстанавливаются.
  • ПриложениеПросьба к боту Discord прочитать чат больше не подвешивает приложение.
  • macOSКнопки окна остаются видимыми, когда фокус у другого приложения.
v0.1.0-alpha.118 сентября 2026 г.

Добавлено

  • ПриложениеПервая альфа-версия настольного приложения Letronna: чат с ИИ-агентом, который может читать, записывать и запускать что угодно в вашем проекте, с подтверждениями, сессиями и выбором шлюза (OpenAI, OpenRouter, Ollama или любой сервер, совместимый с OpenAI).
  • WindowsУстанавливается при первом запуске, с пунктом в меню «Пуск» и значком в трее.

Letronna®

Intelligence in Motion

Небольшая команда, которая разрабатывает открыто и ищет новых людей. Если это про вас, напишите нам на hi@letronna.ai

Продукт

ПлатформыТарифыЦены на моделиТокеномикаЧастые вопросыРуководствоБенчмаркСписок измененийДорожная картаКабинет

Правовая информация

Условия использованияПолитика конфиденциальностиПолитика возврата средств

Компания

ПоддержкаНаписать нам
© 2026 Gadlus LLC
English简体中文العربية日本語한국어DeutschEspañolעבריתРусский

Letronna is a product of Gadlus LLC, a Wyoming limited liability company. 30 N Gould St Ste N, Sheridan, WY 82801 · WY file no. 2026-002093085