Treeno
Древовидные заметки на пяти платформах, с агентом внутри
Инструмент для заметок, в котором всё — узел одного дерева: планы, декомпозиция задач, канбан-доски, структурированные поля. Одно и то же дерево работает в вебе, в десктопной сборке на Tauri, в мобильном приложении на Flutter, в Telegram Mini App и в телеграм-боте — остаётся редактируемым офлайн и сходится, когда сеть возвращается.
- Роль
- В одиночку — продукт, архитектура, все клиенты и бэкенд
- Период
- февр. 2026 — н. в.

Проблема
Большинство инструментов для заметок сначала требуют выбрать контейнер — страницу, папку, доску — и только потом уложить в него мысль. Структура оказывается в файловой системе, а содержимое — внутри файлов, поэтому любая перестройка означает перекладывание вещей между двумя разными местами.
Treeno это схлопывает. У узла есть значение, у узлов есть дети. Это вся базовая модель. Планы, декомпозиция задач, базы знаний, ключ-значение и заметки со встреч — одной и той же формы, поэтому реструктуризация сводится к перемещению узла.
Как это работает
Всё остальное надстраивается над одной моделью и не добавляет к ней концептуального веса:
- Виды решают, как отрисовано собственное значение узла. Текст, ссылки, адреса почты, пароли, код, команды оболочки и даты определяются автоматически; чекбоксы и нумерацию можно задать явно.
- Раскладки решают, как расположены дети узла — списком, канбан-доской или отдельной страницей.
- Структура — это данные. Теги, поля, значения полей и связи между узлами — полноценные сущности базы. Переименуйте тег один раз, и обновятся все узлы с ним; поделите значение поля между десятком узлов, и связь переживёт экспорт, синхронизацию и копирование.
- Сначала клавиатура. Стрелки — перемещение, Enter — редактирование, Tab — вложенность, Cmd+Right — дочерний узел. Всё приложение работает без мыши.
Что было сложным
Пять клиентов, одно дерево. Веб-приложение, десктопная сборка на Tauri 2 со своим каналом автообновлений, мобильное приложение на Flutter, Telegram Mini App и телеграм-бот ходят в один и тот же Express API и в один и тот же поток WebSocket. Порядок между соседними узлами держится на дробном индексировании, поэтому два клиента могут вставлять узлы рядом, не перенумеровывая ветку и не споря о позициях.
Офлайн — это норма, а не режим. Записи применяются сначала локально и ставятся в очередь; когда связь возвращается, дельты проигрываются и сходятся. Потерять сеть посреди правки — не аварийный путь, а обычный, просто с более медленным сбросом на сервер.
Агент — тоже клиент. Бэкенд поднимает MCP-сервер, поэтому Claude умеет искать по дереву, создавать и перемещать узлы, управлять досками и полями и отвечать на вопросы о данных ровно теми же примитивами, что и интерфейс. Телеграм-бот заворачивает того же агента для быстрой записи на ходу.
Данные ваши. Всё целиком поднимается на своём сервере через Docker, а дерево выгружается в JSON. Это ограничение повлияло на архитектуру сильнее любой фичи: ничто не имеет права жить только в чужом облаке.
Где это сейчас
В ежедневном использовании и в активной разработке, со сквозным набором тестов на Playwright, покрывающим редактор дерева, канбан-раскладки, поведение офлайн и онбординг. Исходники закрыты; публичный канал релизов десктопа есть по ссылке выше, а скриншоты на этой странице — из текущей сборки.
Внутри продукта
Нажмите на кадр, чтобы увеличить · ← → листать