Личная операционка поверх Claude Code: терминал, дашборды, телеграм-мост и память. Как устроена — и как повторить.
ex-CEO Unisender · ген. директор «Моя Удалёнка» · основатель msolo.studio
Зачем смотреть этот час
Альтернатива терминалу и приложениям — своя среда
Своя среда — это отдельный веб-интерфейс, доступный с любого устройства, в котором есть всё необходимое для работы с проектами.
Моя среда · 1 из 5
Терминал и сессии
01 Агенты работают на сервере — хоть несколько параллельно. Ноут можно закрыть
02 Подключаюсь с любого устройства, включая телефон
03 Каждая сессия открывается в папке проекта — контекст уже там
04 К любой сессии подключаюсь и создаю новую прямо из Telegram — начал с телефона, продолжил в браузере, и наоборот
Моя среда · 2 из 5
Дашборды
01 Все цифры всех проектов — в одном месте и актуальные
02 У каждой цифры видно, откуда она берётся и когда обновлялась — и можно перейти в первоисточник одним кликом
03 Встроенный аналитик подсказывает, на что смотреть — я вижу главное, а не таблицу
04 Источники разные — выгрузка из CRM, табличка, сообщение в телеге, база напрямую — а формат один. Нужную цифру называю сразу, не бегая по десяти местам
Моя среда · 3 из 5
Хранилище
01 Все файлы и документы — читаются страницей и скачиваются, с телефона тоже
02Один стандарт структуры на все проекты: одинаковые имена файлов и секций — агент не теряется и находит нужное сразу
03 Вся работа логируется в файлы — агенту не нужно заново объяснять контекст
04 Легко подключить человека со своим агентом — папки общие
Моя среда · 4 из 5
Рабочее пространство проекта
01 Слева входящее — звонки, чаты, сессии. Падает в проект само, без моего участия
02 Справа вики проекта, которую агент ведёт сам — возвращаюсь через месяц и включаюсь сразу
04Обратно наружу — любой результат публикуется страницей на своём домене за минуту
Моя среда · 5 из 5
Скиллы
01 Повторяющаяся задача превращается в файл-инструкцию — и дальше делается одной фразой
02 Их около тридцати: публикация страниц, реклама, картинки, CRM, отчёты, дайджест
03 Пишет их тот же агент: «оформи это как скилл» — и он сам заводит инструкцию
04 Это не бонус к системе, а то, ради чего она собиралась
Почему своё · главная причина
Среда, которая радует
С Claude Code я провожу больше времени, чем с любым другим инструментом. Если среда бесит — выгораешь. А своя — как дом, который построил под себя: каждый угол сделан как удобно тебе, и заходить туда — в кайф.
Кто перед вами
Максим Соловьёв
Управляю несколькими компаниями. Всё, что покажу, — мои рабочие инструменты на каждый день.
ex-CEO · Unisender
$10M+
сервис email-рассылок и маркетинга для бизнеса. Вырастил до $10M+ ARR
Ген. директор
Моя Удалёнка
платформа выплат самозанятым: компании нанимают и платят внештатникам легально
Основатель
msolo .studio
студия AI-разработки: внедряем AI-системы — от медклиник до e-commerce
И главное для сегодняшнего разговора: я не программист. Всё, что вы увидите, собрано не руками разработчика — а значит, повторить это может любой собственник.
Честный дисклеймер
Это мой опыт, а не истина
Система собрана под мои задачи: несколько компаний, один человек, работа с любого устройства. Ваша версия может быть в три раза проще — и это нормально. Я не продаю платформу: всё показанное — открытые кирпичи, которые вы соберёте сами.
Как я к этому пришёл · ничего не строилось «по плану»
Каждый кусок вырос из конкретной боли
началоСидел на популярном комбайне-надстройке — пока в нём не отвалилась подписка и я не остался без нормального доступа к моделям
переезд в терминалУшёл в Claude Code в терминале — приложения тогда толком не было — работало, но терминал меня бесил
сервер вместо макаВсё жило на рабочем маке. Отдавать агенту полный доступ к рабочей машине не хотел — и не хотел апрувить каждый чих — вынес на сервер, где агент работает сам
файлы и синкПерекидывать файлы между компами было мучением: пробовал синк через GitHub, думал коннектить Obsidian — хотелось просто кинуть файл в браузер с любого устройства
перебор связокПробовал Obsidian, NotebookLM, агентов в IDE, Cmux — везде чего-то не хватало
своё оказалось прощеВ какой-то момент понял: написать своё не так сложно — а удобства даёт кратно больше. Собрал файлы, голос и сессии в одном окне — дальше апгрейды только по мере нужды
Как я этим живу · и что из этого вышло
Это не среда ради среды
Обычный день: 2–3 сессии параллельно по разным проектам, вечером достраиваю саму систему.
2,2 млрд токенов в месяц10 000 команд агентам~180 сессий, до 9 параллельно~$6 500 стоило бы по API — работает на подписке
Собрал себе — и выросло в продукты
szvon.ru
запись и AI-разбор звонков — вырос из внутреннего инструмента в продукт
ng-ai.ru
NeuroGate: все нейросети по одному ключу, оплата в рублях. Есть B2B-выручка
PadelMind
падел-турниры: 900+ аккаунтов, 7000+ матчей — вы видели дашборд
Tony OS
сама система: терминал, дашборды, мост — построила сама себя
Сделал клиентам — msolo.studio
Саппорт-бот · SaaS
72% обращений закрывает сам · ФОТ ~400К ₽/мес не понадобился
Защита бренда
парсер контрафакта на WB, Ozon и Я.Маркете — 8 брендов, детекция по ИНН
И ещё 20+
от медклиник до e-commerce · от задачи до прода — 2–6 недель
01
Память и папки
Вики из файлов вместо RAG — агент сам читает и пишет свою энциклопедию.
Главная мысль · из ai-native guide
Папки + подведённая к ним ИИшка
Вся «магия» — это правильно сложенные файлы на сервере, к которым подключён интеллект. Моя работа: структурировать папки и управлять ИИшками. Терминал — просто окно, через которое я к ним подключаюсь.
С этого всё началось · что пробовал
Первая задача: удобный доступ к папкам
Файлы — на сервере, я — где угодно. Как их читать по-человечески?
файловый менеджер / sftp
✕ не зашлофайлы видно — читать нельзя: markdown сырым текстом, с телефона мучение
obsidian + синхронизация
± почтичитает красиво — но синк ноут ↔ сервер конфликтует, и на каждом устройстве своё приложение
свой ридер в браузере
✓ моё«обсидиан» в браузере: файлы лежат рядом с агентами, читаются с любого устройства
Как устроено
Один стандарт на ~50 проектов
Каждый проект устроен одинаково — агент в любом включается без вводных.
~/projects/<проект>/
├─ CLAUDE.md← паспорт: что это, ссылки, правила
│ внизу — «Текущий фокус»: статус · сейчас · дальше
├─ docs/← спеки, решения, журнал
├─ data/← выгрузки для дашбордов
└─ README.md
«Текущий фокус» — протокол передачи контекста: любой агент (и я сам) за 4 строки понимает, где проект и что дальше.
Реестр проектов собирается скриптом из этих файлов — сам, каждую ночь.
Два уровня паспортов: про меня (глобальный) и про проект.
Почему так · и почему не векторная база
Вики вместо RAG
Карпати про это же: агенту нужна не хитрая база, а аккуратная вики, которую он сам читает и дописывает. Обычные markdown-файлы.
Видно глазами: открыл файл — увидел, что «помнит» агентпрозрачно
Правится руками: нашёл ошибку — исправил строку, без переиндексациипросто
Агент пишет туда сам: память растёт от работы, а не от загрузки документовживое
Переносится куда угодно: это папка — сменить модель или машину значит скопироватьбез привязки
Масштаб держит: десятки проектов и сотни файлов — поиск по тексту справляетсячестная граница
Живой скриншот · те же файлы — красиво
Просмотр и скачивание из браузера
Как повторить · слайд для вашего агента — сфоткайте и отправьте ему
Промпт: структура памяти и свой волт
задача для claude code · это полное ТЗ — разберётся с одного скриншотаЧАСТЬ 1. ПАМЯТЬ — папки и паспорта
— projects/<компания>/ на каждый проект: CLAUDE.md + папки docs/ и data/
— в CLAUDE.md проекта: что это, ключевые цифры, где лежат данные, ссылки на прод — и секция «Текущий фокус» (статус / сейчас / дальше / обновлено)
— глобальный паспорт ~/.claude/CLAUDE.md: кто я, цели, стиль общения, правила работы со мной
— правило в паспорт: после значимой работы обнови «Текущий фокус» и допиши итог в docs/journal.md
— проведи со мной интервью (5–7 вопросов на паспорт) и заполни оба файла моими словами
— один стандарт на все проекты: одинаковые имена файлов и секций, чтобы агент не искал Никаких векторных баз: markdown + поиск по тексту. Всё читается глазами.
ЧАСТЬ 2. ВОЛТ — свой «обсидиан» в браузере
— лёгкий HTTP-сервер (Python или Node), bind только на приватный IP (Tailscale/VPN), Bearer-токен на запросах
— слева дерево папок ~/projects (скрывай node_modules, .git, служебное)
— markdown рендерится страницей: заголовки, код, таблицы, ссылки между файлами
— HTML открывай как есть; у каждого файла кнопка Download
— поиск по имени файла; мобильная вёрстка
— автозапуск: systemd-юнит, Restart=always
ПРОВЕРКИ: новая сессия, вопрос «на чём мы остановились?» — ответ точный · паспорт проекта открывается с телефона как страница · порт из интернета недоступен
02
Терминал в браузере
Сессии агентов живут на сервере — вы открываете их из любого места.
Какую задачу я решал · что пробовал
Мне не нравится терминал
Честно: классический терминал меня демотивирует. Перепробовал три варианта — ни один не подошёл.
· голосом надиктовать — почти нигде нельзя, а я думаю вслух· кинуть файл или картинку агенту — каждый раз возня с путями· с телефона — никак
терминал + tmux
✕ не зашлостена текста. Работает, но демотивирует — и с телефона никак
агенты в IDE (VS Code)
✕ не зашлопанели, вкладки, диффы — среда программиста, а не управленца. И агент живёт в открытом окне на этом компьютере: закрыл ноут — работа встала
cmux
± почтимеханика сессий — та самая. Но это программа на одном компьютере: с телефона не подключиться · из Telegram не дёрнуть · на второй машине всё заново
Живой скриншот
Слева сессии — справа агент работает
Живой скриншот · параллельная работа
Два агента бок о бок
Важный аспект · внимание по запросу
Система сама зовёт, когда нужен ты
Бейдж на вкладке: «(1) Tony OS» — один агент ждёт ответа. Видно из любого окна, даже когда слушаешь музыкувкладка
Статусы в списке сессий: работает · «тихо N мин» · ждёт ответапанель
Агент сам открывает результат: опыт с Raycast-мостом — задача закончена → на ноутбуке сама открывается вкладка с результатом. Ноут сам забирает команды из очереди — без входящего доступаraycast
Крупным планом · мелочи, которые решают
Три детали пульта
Сессии со статусами. Колокольчик — агент зовёт. «Тихо N мин» + текущая задача — видно, чем занят каждый
Новая сессия = выбор папки проекта. Агент рождается сразу в контексте: читает паспорт и включается
Статус-бар сессии: модель · лимит подписки · время · заполненность контекста — без сюрпризов «лимит кончился»
Слайд для вашего агента · сфоткайте и отправьте ему
Промпт: веб-терминал, полная спека
1 сервер от €5/мес + Claude Code · 15 мин2 отдайте агенту эту спеку · вечер, MVP ~200 строк3 проверка: закрыл вкладку → открыл → агент дописал
задача для claude code · это полное ТЗ — разберётся с одного скриншотаЗАДАЧА: собери веб-терминал — «пульт» для tmux-сессий, в которых живут Claude Code-агенты.
БЭКЕНД — Node.js: express + ws + node-pty
— порт 7202, bind только на приватный IP (Tailscale/VPN), никогда 0.0.0.0
— auth: Bearer-токен из .env на всех HTTP-эндпоинтах; в WS — первое сообщение {"type":"auth","token":…}
— HTTPS на self-signed сертификате (без него браузер не даст микрофон)
— GET /api/sessions — tmux list-sessions -F: имя, attached, активность, флаги
— POST /api/sessions — создать: tmux new-session -d -c <папка проекта>
— DELETE /api/sessions/:name — kill по явной команде пользователя
— POST /api/transcribe — multipart audio → Whisper API (Groq whisper-large-v3-turbo), ключ из .env
— POST /upload — файлы и картинки; вернуть путь, чтобы вставить его в терминал
СЕССИИ — ключевая логика
— клиент подключился = spawn PTY с tmux attach -t имя; байты PTY ↔ WebSocket в обе стороны
— клиент отключился = убить PTY (это detach). Сессию tmux НЕ убивать — агент работает дальше
— статус «агент ждёт ответа»: tmux-переменная @needs_attention (её ставит Notification-хук Claude Code); показать бейджем в списке и в title вкладки
— scrollback: при подключении отдать tmux capture-pane -p -e -S -2000
ФРОНТ — одна страница, без фреймворков
— xterm.js + fit-addon; тёмная тема
— слева панель сессий: статус-точка, «тихо N мин», текущая задача; клик = переключение
— кнопка микрофона → /api/transcribe → текст в строку ввода
— drag-and-drop файла → /upload → путь вставлен в терминал
— мобильная вёрстка + экранные клавиши Tab / Ctrl / Esc / стрелки
ЗАПУСК: systemd-юнит, Restart=always, .env с правами 600 ПРОВЕРКИ: закрыл вкладку → открыл → сессия жива и агент дописал · порт из интернета недоступен · после reboot сервера всё поднялось само
03
Дашборды с метриками
Несколько компаний — один экран. Данные из таблиц, баз и API.
Какую задачу я решал
Цифры жили в десяти местах
Несколько компаний — и у каждой цифры свой адрес: табличка, админка, отчёт в чате, голова финансиста.
Боль: любой вопрос «а как у нас с X?» превращался в экспедицию по табличкам и чатамдо
Принцип: не переносить данные — пусть живут где живут, а дашборд сам их забираетрешение
Теперь: всё падает в одно структурированное место — один экран на все компаниипосле
Встроенный аналитик: перед встречей дашборд сам подсказывает, что спросить у команды — почему упал средний чек, где узкое местоапгрейд
Урок по дороге: дашборд без подписи «откуда данные и когда» быстро начинает врать — так родилось провенанс-правилоитерация
Живой скриншот · продукт
Пульс продукта: юзеры, матчи, retention
Живой скриншот · реклама и трафик
Реклама: расход, регистрации, цена
Живой скриншот · дашборд собственника
P&L, продажи, план/факт — на одном экране
Так выглядит операционка компании: ключевые цифры, выводы агента и рекомендации из этих же данных. У каждой вкладки виден источник и кнопка «обновить». Цифры и имена на скриншоте — демонстрационные.
Как устроено
Данные приходят как удобно им
Не «одна база всех данных», а адаптер под каждый источник — какой есть, такой и подключаем.
Google Sheets
финмодель и план-факт уже ведутся в таблицах → дашборд читает CSV-экспорт по ссылке. Ноль интеграций
Excel в папке
«Движение ДС.xlsx» ведёт человек → файл лежит в проекте, сервер парсит
Postgres напрямую
прод-база продукта: живая выручка, юзеры, конверсия. Если база недоступна — фолбэк на снапшот
API сервисов
Яндекс.Метрика, Директ, Вебмастер, Search Console — реклама и трафик
Supabase / бэкенд
аналитика продукта через его же Edge Functions
Просто JSON
CRM и роадмапы — файлы, которые пишет агент или UI
Слайд для вашего агента · сфоткайте и отправьте ему
Промпт: дашборд
1 выгрузка из CRM/1С/таблицы → в data/ · 5 мин2 отдайте агенту этот промпт · 10 мин3 раз в неделю: свежая выгрузка + «обнови» · ритуал
задача для claude code · скопируй или покажи скриншот
Собери дашборд одним HTML-файлом по данным из data/:
— сверху KPI-плитки: выручка, заявки, конверсия, средний чек (замени на метрики из моих данных)
— графики на Chart.js: динамика по месяцам (bar) + разбивка по каналам (horizontal bar)
— в шапке — провенанс: из каких файлов данные и дата выгрузки
— данные зашей внутрь файла (const DATA) — никаких серверов и БД, открывается двойным кликом
— тёмная тема, аккуратная типографика, один акцентный цвет
— провенанс обязателен: каждый блок пишет, откуда данные и когда забраны — не веришь цифре, видишь источник Обновление: перечитай data/ и пересобери DATA по команде «обнови дашборд». Кэш с TTL и крон-прогрев в 06:00 — чтобы утром всё было свежим.
04
Каналы входа
Чем система питается: звонки, Telegram и сессии агентов — стекаются в файлы без моих рук.
Как устроено · сбор контекста
Система слушает сама: три потока
Я ничего не конспектирую руками — контекст стекается в файлы автоматически.
Звонки
каждый созвон записывается и транскрибируется автоматом — своим же инструментом (szvon)
Telegram
демон на моём аккаунте слушает все чаты 24/7: текст в файлы, голосовые — через Whisper в текст. 27 AI-каналов → дайджест на сайт
Сессии
каждый агент записывает итоги работы: журнал + «текущий фокус» проекта
Поток 1 · звонки · какую задачу я решал
Звонки: чужой бот → Krisp → своё
Главный поток знаний о бизнесе — созвоны. Значит, они все должны попадать в систему.
Боль: бот-гость в каждом созвоне — людей смущает «участник-призрак»итерация 1
Krisp: без бота — лучше, но платить за всю команду дорого, а качество разбора не устраивалоитерация 2
Собрал своё: запись без бота, три модели под капотом — транскрипт, разбор, сводкарешение
Эффект: транскрипты падают в папки проектов и становятся контекстомради этого
Стал продуктом: szvon.ru — разбор через 5 минут, приложения Mac и Windows, API. Хотите так же — не собирайте, возьмитемой продукт
Живой скриншот · szvon.ru
Разбор через 5 минут — и ключ для своего агента
разбор звонка: сводка, задачи, решения, оценка
кабинет сам выдаёт ключ и готовую инструкцию — вставляете агенту, и он видит ваши звонки
szvon.ruРегистрируйтесь и пользуйтесь — это мой сервис, он открыт. Приложения для Mac и Windows, запись без бота-гостя. Ключ для агента выдаётся в кабинете — вставили, и транскрипты падают прямо в ваши папки. Запись и хранение бесплатно — платите только за те звонки, которые реально разбираете. Без абонементов и сгорающих минут.
Поток 2 · Telegram
Демон читает мой Telegram
Почти вся рабочая коммуникация у меня в Telegram. Значит, искать в переписках должен не я, а агент.
Не бот, а мой аккаунт: библиотека Telethon (Python, user API) — как ещё один открытый Telegram Desktop, только читает его программа24/7
Всё в файлы: каждое сообщение — строка в JSONL; голосовые скачиваются и расшифровываются Whisperтекст
Как пользуюсь: «посмотри, о чём договорились в чате с подрядчиком» · «возьми условия из той переписки» · «собери, что просили клиенты за неделю»не ищу сам
Имитация человека: запросы редкие, с паузами и джиттером — никакой бот-активности с аккаунтаанти-бан
Бонус: 27 AI-каналов отдельным фидом → агент сам собирает дайджест на сайтmsolo.me/news
Повторить: api_id на my.telegram.org → «напиши мне Telethon-демон, складывай все чаты в JSONL, голосовые — через Whisper»вечер
Telethon
библиотека, на которой стоит демон — документация открытая
Поток 3 · сессии агентов
Работа сама себя документирует
Итоги сессий, переписки и транскрипты стекаются в общую очередь — и разносятся по вики проектов. Хуками, без моего участия.
Хук на старт — агент получает свежий контекст: что было в прошлых сессиях проектаSessionStart
Хук на конец — итог сессии пишется в журнал сам; ночью из журналов пересобирается реестр всех проектовStop + крон
«Текущий фокус» в паспорте проекта обновляется после значимой работы4 строки
Повторить: «настрой хуки: на старте читай журнал, на выходе дописывай итог»один промпт
Правило второго раза: делаешь задачу повторно — опиши её файлом. У меня их около тридцати.
deploy-world
«задеплой» — страница живёт на сайте через минуту
yandex-*
Директ, Метрика, Вордстат, Вебмастер по API — выложены в открытый доступ
crm-create / enrich
карточка контакта из звонка + обогащение из открытых источников
skill-creator
скилл, который пишет скиллы: «оформи это как скилл» — и агент заводит инструкцию сам
premortem
стресс-тест решения до запуска: «представь, что провалилось — почему?»
goal-loop
спека с критериями приёмки → агент работает сам до зелёного → я принимаю результат
анатомия скилла · skills/название/SKILL.mdКогда использовать: триггер-фразы («задеплой», «обнови сайт») Шаги: что делать по порядку, какие команды, что проверить Чего не делать: известные грабли
Скилл · публикация
Любая инфа — ссылкой на свой сайт
Не файл-вложение в чате, а страница на своём домене — открывается с телефона, не стыдно переслать.
«Задеплой» — и материал живёт на сайте через минуту: гайды, отчёты, офферы, дайджестскилл в 5 строк
Пример: «оформи скиллы Яндекс-рекламы страницей, опубликуй и скинь ссылку в телегу» — сделано целиком агентомодна фраза
Настройка: домен → Vercel (бесплатно) → две DNS-записи → скилл «git push = публикация». Один раз и навсегдавечер · навсегда
Скилл пишет агент: «оформи это как скилл» — заведёт файл-инструкцию и будет ей следоватьskill-creator
msolo.me/vibecoding
Всё вместе · реальный кейс
Весь флоу — одним промптом
claude code · один запрос
> Посмотри вчерашний звонок с Тоней: что обсудили — собери по нему лендинг, задеплой на msolo.me и отправь ей ссылку в Telegram
1 · Память
агент находит транскрипт звонка — он уже в системе
→
2 · Сборка
страница по мотивам разговора — в репо сайта
→
3 · Deploy
git push → страница живёт на msolo.me
→
4 · Доставка
ссылка уходит Тоне в Telegram
Скилл · генерация
Картинки и видео — из терминала
Обложки, баннеры, иллюстрации — агент генерит сам, через один API-агрегатор моделей.
«Сгенери картинку» — агент сам подбирает модель под задачу: Nano Banana Pro, FLUX, для видео Veoмодели
Один ключ вместо пяти подписок — картинки, видео и текстовые модели подключены через мой продуктng-ai.ru
В скилл зашита методология: одна метафора, 2–3 цвета, стайл-анкор — чтобы не выглядело AI-слопомкачество
Результат — файл в папке проекта → сразу в статью, лендинг или рекламуфайлы
ng-ai.ruРегистрируйтесь — один ключ и доступ сразу ко всем нейросетям: картинки, видео, текстовые модели. Оплата в рублях, без VPN, платите только за то, что используете — никаких подписок. Подключается по API туда, где нужно: в терминал, в скилл, в свой продукт.
Пример · скилл под одну конкретную задачу
Скилл под одну задачу: журнал МУ
Скилл знает регламенты редакции, базу всех вышедших статей и стиль обложек. Статья собирается сама — от выбора темы до проверки на проде. Моё участие — одно «ок».
Тема — по данным, а не по вкусу: спрос в Wordstat, кто реально в топе выдачи, антидубликат по базе всех статейданные
Текст по регламентам редакции: объём, структура, tone of voice, перелинковки только на существующие статьирегламент
Агент сам себя проверяет до сборки: ищет, почему статья не выстрелит — на первой статье это сместило тему и подняло объём с 9 до 13,5 тыс. знаковпремортем
Обложка — своим скриптом: рисуется в стиле журнала по референсам реальных обложек, сразу в нужном форматекартинка
Перед отправкой — валидация: превью мне на «ок» → второй агент заносит в админку → проверка прода и запись в базу статейконтроль
обложки нарисованы агентом · сейчас в журнале — moyaudalenka.ru/journal
Скилл · реклама
Агент управляет рекламой
Яндекс.Директ и Метрика подключены по API — кампании управляются из терминала.
Дашборд показывает воронку до регистрации и цену результата — вы видели этот скринметрика
Лог изменений: каждое «включил / паузнул и почему» записано — история решенийаудит
Живой кейс: обе кампании остановлены одним сообщением — «дорого, конверсия низкая»из чата
Повторить: мои скиллы Яндекса выложены в открытый доступ — Директ, Метрика, Вордстат, Вебмастер. Забираете, кладёте в ~/.claude/skills, подставляете свой OAuth-токен — github.com/mkultraaaa/claude-yandex-skillsоткрыто
Следующий уровень · как меняется сама работа
От диалога — к автономной петле
Обычный режим — «пишу задачу, смотрю, правлю» — упирается в меня: каждый шаг валидирую сам. Следующий уровень: сформулировать требования, отдать работу петле и оставить себе только приёмку.
Спека вместо задачи: цель и критерии приёмки, где каждый критерий — запускаемая команда. «Удобно» и «красиво» критериями быть не могутвход
Гейты один раз: проект получает скрипты «проверь» и «запусти» — типы, линт, тесты, сборка. Петля не стартует, пока они не зелёныехарнесс
Петля работает сама: в отдельной ветке агент планирует, пишет, гоняет проверки и чинит себя — по кругу, пока не сойдётся. Выход только детерминированный: слово агента «готово» не считаетсяавтономность
Приёмка по доказательствам: другой агент со свежим контекстом сам прогоняет каждый критерий и собирает таблицу «критерий → команда → вывод». Я читаю её, а не диффыконтроль
Почему советую не засиживаться на диалоговом режиме: там ваш потолок — сколько вы успеваете провалидировать руками. В петле нагрузка на вас падает до двух точек — спека на входе и приёмка на выходе, а работать агент может параллельно и без вас. Цена — дисциплина: плохая спека превращается в сотни строк неправильного кода. Поэтому мелкие правки по-прежнему быстрее сделать в диалоге, а петлю запускать на задачах от стадии и больше.
06
Телеграм- мост
Вся система — с телефона: живые сессии, фоновые задачи, статусы.
Зачем · что реально делаю с телефона
Что я делаю с телефона
Голосовое в чат — и агент уже работает. Так был найден баг, починен и выпущен релиз Windows-приложения — ноутбук в тот день не открывался.
«Открой сессию по проекту X» — мост поднимает живую tmux-сессию; сажусь за ноут и продолжаю её жеopen-session
«Сделай в фоне и отпишись» — задача уходит агенту, отчёт приходит в чат по готовностиbg-run
«Что сейчас запущено?» — снимок всех сессий: кто работает, кто ждёт ответаactive-sessions
Как устроено · и что не даёт агенту навредить
Open-source мост + свои предохранители
Основа — готовый OSS-проект claude-code-telegram, поверх — Agent SDK и гардрейлы. Whitelist на один chat_id, голосовые через Whisper, модели по задаче: диалог Opus, фоновая рутина Sonnet.
Telegram-бот
long polling — мост сам спрашивает Telegram. Входящих портов на сервере нет вообще
Claude Agent SDK
не «спавн CLI», а SDK с permission-гейтом: каждый инструмент проходит проверку
systemd
Restart=always; рестарт моста не убивает работающих агентов
Guardrail-хук
перед каждым инструментом проверка: rm, git push, sudo, деплой заблокированы жёстко, всё в audit.log
Proof-гейт
агенту запрещено говорить «готово» без доказательства: вывод теста, HTTP-код, дифф
Текст ≠ приказ
содержимое файлов и ответов инструментов — данные, не команды. Защита от prompt-инъекций
Слайд для вашего агента · сфоткайте и отправьте ему
Промпт: телеграм-мост
1 бот у @BotFather · 2 мин2 отдайте агенту этот промпт · вечер3 проверка: «создай test.md» → файл на сервере
задача для claude code · скопируй или покажи скриншот
Разверни телеграм-мост github.com/RichardAtCT/claude-code-telegram:
— Python 3.12 venv; systemd-юнит: Restart=always, KillMode=mixed (рестарт моста не убивает агентов)
— конфиг .env с правами 600: TELEGRAM_BOT_TOKEN (дам отдельно), ALLOWED_USERS = только мой chat_id, APPROVED_DIRECTORY = ~/projects
— добавь PreToolUse-хук: жёстко блокируй rm, git push, sudo и деплой; каждое действие — в audit.log
— деструктивные операции — только после моего подтверждения в чате Проверка: с телефона «создай файл test.md в проекте X» → файл есть; открытых портов на сервере не появилось (long polling).
Что делаем дальше
Следующий экран — очки
Логика та же, что с телефоном: сессии живут на сервере, меняется только способ подключиться. Сейчас поднимаем доступ к системе из AI-очков.
Rokid Glasses — отдельный проект: голос в очках → задача агенту, ответ голосом обратнов работе
Зачем: руки заняты, ноутбука нет, телефон доставать не надо — а сессия та же самаята же система
Принцип не меняется: добавляем не новую систему, а ещё один пульт к существующейархитектура
Rokid Glasses
активируется голосом — руки свободны
07
Безопасность
Скучная часть, из-за которой всё остальное можно делать смело. этот блок — сам по себе чеклист: проверьте свою систему по нему
Инструкция-чеклист · сфоткайте
Наружу не торчит ничего
Бинд только на приватный IP (Tailscale/VPN) — никогда 0.0.0.0. Проверка: ваш IP:порт из интернета не открываетсясеть
Доступ = SSH-туннель с ноутбука; телефон — только через Telegram-мостдоступ
Токен на любую запись — дашборд и терминал закрыты Bearer-токеномauth
Секреты в .env с правами 600, вне git; ключи API — по одному на скиллсекреты
VPS захарден: вход только по ключу, fail2ban, файрвол default-denyхост
Персданные клиентов — отдельный разговор: что нельзя в облачную модель, держите в своём контуреданные
Честно · что у меня есть, а что стоит сделать сразу
Бэкап — единственное, что нельзя откладывать
Вся операционка — это папка с файлами. Значит, потерять её можно так же легко, как папку.
Вход на сервер только по ключу — пароли выключены совсем, не «сложный пароль»есть
Второй компьютер как копия: у меня проекты синхронизируются на ноутбук — это и рабочее место, и живой бэкапесть
Репозитории на GitHub — код и спеки уезжают туда же, приватными репоесть
Снапшоты VPS у хостера — копеечная опция, откат всей машины одной кнопкойстоит включить
2FA на всё, что даёт доступ: хостер, GitHub, аккаунт модели, доменстоит сделать
Проверка восстановления: бэкап, который ни разу не разворачивали, — это не бэкапраз в квартал
08
Как повторить целиком
Систему строил не программист руками — её строили агенты по спекам.
Что забрать · сфоткайте этот слайд
Порядок сборки — и где какой промпт
Собирается по частям, каждая полезна сама по себе. Промпты — на слайдах этой презентации, она же и есть раздатка.
1 · Память и структура папок — фундамент: без него остальное не умнеет. Там же свой волт для чтения файловвечер · промпт на слайде 20
2 · Первый дашборд — один HTML на вашей выгрузке, без БД и серверов10 минут · промпт на слайде 34
3 · Сервер за €5 — когда почувствуете «ноут закрыт = всё стоит». Переезд = копирование папкивечер
4 · Терминал в браузере — пульт к сессиям агентов с любого устройствавыходные · спека на слайде 27
5 · Телеграм-мост — управление с телефона, с гардрейламивечер · промпт на слайде 51
6 · Каналы входа и скиллы — звонки, Telegram, хуки сессий; скиллы по одному в неделю, по мере повторовдальше — навсегда
Не хотите собирать сами — это ровно то, чем я занимаюсь в студии: заходим в процессы и внедряем то, что окупаетсяmsolo.me/studio
Вместо итога
Компания становится AI-native тогда, когда AI-native становится её собственник
Поэтому начинать стоит не с отдела и не с внедрения «сверху», а с себя: собрать свой инструмент, прожить его руками — и только потом тащить в компанию.
Дальше упрётесь в рельсы — интеграции, CRM, телефония, контуры данных. Это нормально, я через это хожу каждый день. Пишите — подскажу, чем смогу, и сам с удовольствием посмотрю, что соберёте вы.
Обсудим
Q&A.
Максим Соловьёв · t.me/msoloviev спрашивайте про что угодно из показанного — и просто пишите, если захочется обменяться опытом
память → дашборд → vps → терминал → мост · спеку — агенту · порты закрыты · память → дашборд → vps → терминал → мост · спеку — агенту · порты закрыты ·