Контекст
Sendoff вырос из ежедневной работы с терминальными coding-агентами. Набирать длинный структурированный запрос прямо в строке терминала неудобно, а когда агентов и проектов несколько, нужно ещё и явно выбирать, куда именно он уходит.
Sendoff не запускает модели и не строит пайплайн. Он делает одно: готовит запрос и передаёт его дальше.
Моя роль
Я придумал продукт и отвечаю в нём за всё: сценарии, frontend на React, хранение в IndexedDB, интеграции с tmux, Herdr и Orca, обёртку на Tauri и Rust, тесты, сборку под Linux и публикацию релиза.
Решение 1 / запрос вместо строки ввода
Главный объект — черновик запроса: вкладки, рабочие пространства, группы, поиск, slash-меню, ссылки на файлы и пути к изображениям. Ctrl+Enter отправляет весь запрос одним подтверждённым блоком, а не построчно.
Решение 2 / явный адрес отправки
Адрес хранится как провайдер плюс устойчивое описание привязки; временные идентификаторы в это хранилище не попадают. Если привязку нельзя восстановить однозначно, открывается общий выбор — Herdr, Orca и tmux в одном списке.
Решение 3 / переносимый AppImage
Сборка на Arch тянула за собой требование glibc 2.43, которого на стабильных дистрибутивах нет. Публичный AppImage собирается в контейнере Ubuntu 22.04 и требует glibc 2.35 и выше.
Результат / проверка
- публичный релиз
v0.2.0; - AppImage и его SHA-256;
- ежедневное использование двумя людьми;
- больше 75 вкладок в окружении, на котором я его обкатываю;
- TypeScript, линтер и 149 тестов проходят.
Ограничения
Сборок под Windows и macOS нет, автообновления тоже. Два пользователя не означают подтверждённого спроса.


