Максим Соловьёв

Tony OS.

Личная операционка поверх Claude Code: терминал, дашборды, телеграм-мост и память. Как устроена — и как повторить.

ex-CEO Unisender · ген. директор «Моя Удалёнка» · основатель msolo.studio
Tony OS — дашборд
Tony OS — терминал
Зачем смотреть этот час

Альтернатива терминалу и приложениям — своя среда

Своя среда — это отдельный веб-интерфейс, доступный с любого устройства,
в котором есть всё необходимое для работы с проектами.

Моя среда · 1 из 5

Терминал и сессии

Обзор — терминал сплит

01 Агенты работают на сервере — хоть несколько параллельно. Ноут можно закрыть

02 Подключаюсь с любого устройства, включая телефон

03 Каждая сессия открывается в папке проекта — контекст уже там

04 К любой сессии подключаюсь и создаю новую прямо из Telegram — начал с телефона, продолжил в браузере, и наоборот

Моя среда · 2 из 5

Дашборды

Обзор — дашборды

01 Все цифры всех проектов — в одном месте и актуальные

02 У каждой цифры видно, откуда она берётся и когда обновлялась — и можно перейти в первоисточник одним кликом

03 Встроенный аналитик подсказывает, на что смотреть — я вижу главное, а не таблицу

04 Источники разные — выгрузка из CRM, табличка, сообщение в телеге, база напрямую — а формат один. Нужную цифру называю сразу, не бегая по десяти местам

Моя среда · 3 из 5

Хранилище

Обзор — хранилище

01 Все файлы и документы — читаются страницей и скачиваются, с телефона тоже

02 Один стандарт структуры на все проекты: одинаковые имена файлов и секций — агент не теряется и находит нужное сразу

03 Вся работа логируется в файлы — агенту не нужно заново объяснять контекст

04 Легко подключить человека со своим агентом — папки общие

Моя среда · 4 из 5

Рабочее пространство проекта

Brain — входящее и вики проекта

01 Слева входящее — звонки, чаты, сессии. Падает в проект само, без моего участия

02 Справа вики проекта, которую агент ведёт сам — возвращаюсь через месяц и включаюсь сразу

03 Рутина делается автоматом: дайджесты, отчёты, разборы

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 + синхронизация
Obsidian
± почтичитает красиво — но синк ноут ↔ сервер конфликтует, и на каждом устройстве своё приложение
свой ридер в браузере
Свой ридер: паспорт проекта страницей
✓ моё«обсидиан» в браузере: файлы лежат рядом с агентами, читаются с любого устройства
Как устроено

Один стандарт на ~50 проектов

Каждый проект устроен одинаково — агент в любом включается без вводных.

~/projects/<проект>/ ├─ CLAUDE.md ← паспорт: что это, ссылки, правила
│   внизу — «Текущий фокус»: статус · сейчас · дальше
├─ docs/ ← спеки, решения, журнал
├─ data/ ← выгрузки для дашбордов
└─ README.md

«Текущий фокус» — протокол передачи контекста: любой агент (и я сам) за 4 строки понимает, где проект и что дальше.

Реестр проектов собирается скриптом из этих файлов — сам, каждую ночь.

Два уровня паспортов: про меня (глобальный) и про проект.

Почему так · и почему не векторная база

Вики вместо RAG

Карпати про это же: агенту нужна не хитрая база, а аккуратная вики, которую он сам читает и дописывает. Обычные markdown-файлы.

Видно глазами: открыл файл — увидел, что «помнит» агентпрозрачно
Правится руками: нашёл ошибку — исправил строку, без переиндексациипросто
Агент пишет туда сам: память растёт от работы, а не от загрузки документовживое
Переносится куда угодно: это папка — сменить модель или машину значит скопироватьбез привязки
Масштаб держит: десятки проектов и сотни файлов — поиск по тексту справляетсячестная граница
Vault — паспорт проекта
Живой скриншот · те же файлы — красиво

Просмотр и скачивание из браузера

HTML-страница прямо в волте, слева раскрытое дерево проекта
Как повторить · слайд для вашего агента — сфоткайте и отправьте ему

Промпт: структура памяти и свой волт

задача для 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
Терминал: ssh-туннель падает всю ночь
✕ не зашлостена текста. Работает, но демотивирует — и с телефона никак
агенты в IDE (VS Code)
VS Code с агентом
✕ не зашлопанели, вкладки, диффы — среда программиста, а не управленца. И агент живёт в открытом окне на этом компьютере: закрыл ноут — работа встала
cmux
cmux — список сессий
± почтимеханика сессий — та самая. Но это программа на одном компьютере: с телефона не подключиться · из Telegram не дёрнуть · на второй машине всё заново
Живой скриншот

Слева сессии — справа агент работает

Терминал — живая сессия
Живой скриншот · параллельная работа

Два агента бок о бок

Терминал — сплит
Важный аспект · внимание по запросу

Система сама зовёт, когда нужен ты

Бейдж на вкладке Tony OS
Бейдж на вкладке: «(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

Tony OS Metrics
Живой скриншот · реклама и трафик

Реклама: расход, регистрации, цена

Tony OS · Трафик и реклама NeuroGate
Живой скриншот · дашборд собственника

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 в момент записи звонка
Живой скриншот · 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
Telethon
библиотека, на которой стоит демон — документация открытая
Поток 3 · сессии агентов

Работа сама себя документирует

Итоги сессий, переписки и транскрипты стекаются в общую очередь — и разносятся по вики проектов. Хуками, без моего участия.

Хук на старт — агент получает свежий контекст: что было в прошлых сессиях проектаSessionStart
Хук на конец — итог сессии пишется в журнал сам; ночью из журналов пересобирается реестр всех проектовStop + крон
«Текущий фокус» в паспорте проекта обновляется после значимой работы4 строки
Повторить: «настрой хуки: на старте читай журнал, на выходе дописывай итог»один промпт
Brain
05

Скиллы:
суперсилы

Готовые кнопки поверх системы: публикация, картинки, реклама, статьи.

Повторяемость

Скиллы: рутина становится кнопкой

Правило второго раза: делаешь задачу повторно — опиши её файлом. У меня их около тридцати.

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-слопомкачество
Результат — файл в папке проекта → сразу в статью, лендинг или рекламуфайлы
NeuroGate — генерация картинки по промпту
ng-ai.ru Регистрируйтесь — один ключ и доступ сразу ко всем нейросетям: картинки, видео, текстовые модели. Оплата в рублях, без VPN, платите только за то, что используете — никаких подписок. Подключается по API туда, где нужно: в терминал, в скилл, в свой продукт.
Пример · скилл под одну конкретную задачу

Скилл под одну задачу: журнал МУ

Скилл знает регламенты редакции, базу всех вышедших статей и стиль обложек. Статья собирается сама — от выбора темы до проверки на проде. Моё участие — одно «ок».

Тема — по данным, а не по вкусу: спрос в Wordstat, кто реально в топе выдачи, антидубликат по базе всех статейданные
Текст по регламентам редакции: объём, структура, tone of voice, перелинковки только на существующие статьирегламент
Агент сам себя проверяет до сборки: ищет, почему статья не выстрелит — на первой статье это сместило тему и подняло объём с 9 до 13,5 тыс. знаковпремортем
Обложка — своим скриптом: рисуется в стиле журнала по референсам реальных обложек, сразу в нужном форматекартинка
Перед отправкой — валидация: превью мне на «ок» → второй агент заносит в админку → проверка прода и запись в базу статейконтроль
Обложка статьи журнала МУ
Обложка статьи про ФОТ

обложки нарисованы агентом · сейчас в журнале — moyaudalenka.ru/journal

Скилл · реклама

Агент управляет рекламой

Яндекс.Директ и Метрика подключены по API — кампании управляются из терминала.

Скилл Директа: кампании, бюджеты, включить/паузнуть, статистика — обычными фразамиapi v5
Дашборд показывает воронку до регистрации и цену результата — вы видели этот скринметрика
Лог изменений: каждое «включил / паузнул и почему» записано — история решенийаудит
Живой кейс: обе кампании остановлены одним сообщением — «дорого, конверсия низкая»из чата
Повторить: мои скиллы Яндекса выложены в открытый доступ — Директ, Метрика, Вордстат, Вебмастер. Забираете, кладёте в ~/.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
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 → терминал → мост · спеку — агенту · порты закрыты ·
msolo · tony os изнутри