DigitableCourses
Настройки портала
Показать возможности портала

Локально и без аккаунта. Аккаунта нет, регистрация не нужна: введённое в инструменты остаётся в localStorage браузера и на сервер не уходит.

Свой счётчик считает открытия страниц и дочитывания: уезжает адрес и десятая доля текста. Без cookies и чужих счётчиков, IP не хранится, Do Not Track уважается. Как это проверить

Репозиторий портала не выложен, «открытым кодом» мы его не зовём. Открыто это:

Живёт портал на донатах, платных консультациях и разборах по запросу и покупке Workbench.

Планов делать курсы платными нет.

Что Digit сделает за меня

Сценарии Digit на снимках настоящих прогонов: digit model --catalog печатает каталог открытых моделей, digit tasks ведёт задачи по uuid, render.py показывает схему прямо в терминале, digit rule-check отказывается вместо выдумки, digit skills list считает навыки. Кадры сняты под Xvfb с запущенного digitwm воспроизводимым скриптом.

Что Digit сделает за меня

Соседние страницы раздела объясняют, как Digit устроен и чем измерен. Эта — про то, что он делает, и она собрана из снимков работающего агента, а не из описаний.

Каждый кадр ниже снят с запущенного Digit скриптом scripts/shoot-digit-usecases.sh: он поднимает Xvfb, исполняет команды в псевдотерминале заданной ширины и снимает экран. Скрипт лежит в этом же репозитории, поэтому через месяц кадры можно переснять и сверить. Ни один из них не нарисован и не собран из кусков: где команда отказалась работать, в кадре отказ, а не отредактированный успех.

1. Показать, на чём он работает: digit model --catalog

Первый вопрос к локальному агенту — на какой он модели и откуда её взять. Digit печатает каталог собственных открытых моделей и датасетов той же командой, которой пользуется страница «Открытые модели и датасеты»: страница и команда читают один файл, поэтому разойтись не могут.

Терминал: вывод команды digit model --catalog. Заголовок «Открытые модели и датасеты Digitable» со ссылкой на huggingface.co/digitable-lol, раздел «Модели (4)», карточка digit-router-0.6b с блоками «Зачем», «Чем подтверждено» и «Чего не умеет».
digit model --catalog | head -46 — Первый экран каталога: у записи названы работа, замеры со ссылкой на раздел карточки модели и граница применимости. 641×742, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Важна здесь не длина вывода, а его форма. У каждой записи есть блок «Чего не умеет», и он не бывает пустым: про маршрутизатор в кадре прямо написано, что доля ложных ответов 7,6 % при целевом нуле и что вердикт харнесса — FAIL. Карточка, в которой перечислены одни сильные стороны, читается как реклама, и вместе с ней перестают верить числам соседних карточек.

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

2. Вести задачи: digit tasks

Планирование у Digit — не отдельное приложение, а общая база задач, в которой одновременно работают владелец и несколько агентов. Реализация — digit_cli/tasks_cli.py, поверх Taskwarrior; скилл, который учит агента ею пользоваться, — skills/productivity/digitable-tasks.

Терминал: digit tasks add печатает created и uuid; digit tasks note добавляет аннотацию; digit tasks list показывает таблицу с колонками uuid, project, description; digit tasks show 1 отказывается с сообщением, что позиционный id не uuid.
digit tasks add / note / list / show — Задача заводится, аннотируется и находится по uuid. Последняя команда — отказ: позиционный номер задачи не принимается. 1270×292, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Последние две строки кадра — самое полезное, что здесь есть. digit tasks show 1 отказывается работать и возвращает код 2, потому что 1 — позиционный номер, а не uuid. Позиционные номера Taskwarrior пересчитывает каждый раз, когда меняется набор незакрытых задач: номер, прочитанный до закрытия соседней задачи, после неё указывает на другую. Команда отказывается вместо того, чтобы понадеяться на память вызывающего, и в исходниках рядом записано, почему: 4 августа 2026 года на этой базе так ошиблись семь агентов подряд.

База задач в кадре создана пустой прямо во время съёмки, и uuid в нём настоящие — их выдал Taskwarrior в этом прогоне. Чужую рабочую базу в кадр не берут.

3. Рисовать: схема прямо в терминале

Скилл skills/creative/excalidraw устроен так: модель пишет обычный Excalidraw JSON, а три скрипта рядом делают с ним всё остальное — canvas.py открывает файл на локальном холсте в браузере, revise.py правит элементы, не переписывая файл целиком, а render.py показывает схему в терминале, там же, где идёт разговор.

Терминал: цветная схема из шести блоков со стрелками, нарисованная символами. Под ней легенда: «схема: 22 элемент(ов)», список надписей и список связей вида «детерминированная утилита → гейт: код, не модель».
render.py show answer-sources.excalidraw — Схема нарисована в терминале через chafa, под ней — легенда: что на схеме написано и что с чем соединено. 696×577, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Схема в кадре — не иллюстрация к скиллу, а его рабочий цикл: файл scripts/digit-usecases/answer-sources.excalidraw написан моделью по инструкции из SKILL.md и лежит рядом со скриптом съёмки.

Под картинкой всегда печатается легенда, и это не украшение. Терминал — это восемьдесят с небольшим колонок; шрифт в 16 пикселей в них не помещается физически и превращается в серую полоску. Легенда — единственная часть вывода, которую можно прочесть и в трубе, и в логе. По той же причине ни один элемент не исчезает молча: тип, который рисовать нечем, получает пунктирную рамку с именем типа и строку в отчёте, потому что картинка, на которой чего-то нет, выглядит целой.

4. Отказаться вместо выдумки: digit rule-check

Правило, написанное по-русски, Digit превращает в спецификацию FTS, компилирует настоящим компилятором и прогоняет через детектор структурных ошибок. Разбор самого правила ведут правила, а не модель, — это записано в справке команды.

Кадр ниже снят намеренно без установленного гейта, и он ценнее зелёной галочки:

Терминал: команда digit rule-check с русским правилом. Ответ: «ПРОВЕРИТЬ НЕЧЕМ — детектор логических ошибок: нет …/fts-gate/dist/src/gate.js (поставить digit mcp install fts-gate либо указать DIGIT_FTS_GATE_HOME); компилятор FTS: нет …/parser.js». Код возврата 4.
digit rule-check discount.fts «…» — Гейта в системе нет — команда говорит об этом и возвращает 4. Ветки «ответить без проверки» у слоя нет по устройству. 1270×142, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Команда не отвечает «похоже, правило верное». Она называет оба недостающих двоичных файла, называет переменные окружения, которыми можно указать свою сборку, и возвращает код 4 — «проверка не состоялась». Именно так и должен выглядеть инструмент, который обещает проверяемость: третий исход, кроме «да» и «нет», у него есть и он назван.

Ровно этот вывод и этот код возврата описаны в документации команды — страница и программа здесь сошлись дословно.

5. Считать навыки: digit skills list

Навыки — это то, чем агент дополняется под задачу: каждый скилл описан файлом SKILL.md и приезжает в профиль ~/.digit/skills/ при установке.

Терминал: таблица installed skills с колонками Name, Category, Source, Trust, Status; строки software-development. Внизу итог: 0 hub-installed, 87 builtin, 0 local — 87 enabled, 0 disabled.
digit skills list | tail -46 — Хвост таблицы и итоговая строка: в профиле 87 включённых встроенных навыков. 616×742, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Числа, которые стоит держать вместе:

Встроенных скиллов в поставке 91 (skills/*/*/SKILL.md)
Необязательных, ставятся отдельно 111 (optional-skills/)
Включено в профиле после установки 87
Из них про сам Digitable 13 по имени: задачи, портал, курсы, Workbench, FTS

Разница между 91 и 87 — не потеря: часть скиллов привязана к платформе (скиллы Apple на Linux не включаются). Каталог, из которого эти числа берутся, генерируется из исходников скриптом website/scripts/generate-skill-docs.py, а не поддерживается руками.

6. Всё это внутри запущенного digitwm

digitwm — оконный менеджер на ленте колонок; Digit в нём живёт так же, как любая другая программа терминала. Кадр снят с того же двоичного файла менеджера, что и запись сеанса на его странице.

Экран digitwm 1280×800: две колонки ленты по 634 точки. В левой — вывод digit model --catalog, в правой — сессия digit tasks с uuid и отказом на позиционный id.
digitwm + два окна — Две колонки ленты по 634 точки на экране 1280: слева каталог моделей, справа задачи. Геометрия промерена xwininfo во время съёмки. 1302×824, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Колонок в кадре две, а не три, и это замер, а не вкус. Пресет колонки по умолчанию — 50 % экрана, то есть 634 точки при экране 1280: две колонки встают ровно в кадр. Сжать три колонки до 33 % менеджер умеет (4-minus), но 422 точки при этом кегле — это 55 знаков, и таблица каталога в них переносится по живому. Кадр, в котором содержимое рассыпано, ничего не показывает.

7. Ответить локально: digit local status и digit chat

Шесть сценариев выше не требуют ни ключа, ни поднятой модели: содержание в них даёт детерминированный код. Этот — требует, и потому снят отдельно. Сервер llama-server Digit ставит и поднимает сам, командой digit local start: ни ключа, ни облака, ни стороннего сервиса в этой сцене нет.

Терминал: digit local status сообщает, что llama-server работает, назван pid и порт 8127, веса qwen3-4b-instruct-2507 на месте; ниже digit chat -q отвечает одним предложением про разницу PATCH и PUT.
digit local status; digit chat -q — Модель отвечает на своей машине: веса и сервер подняты самим агентом. Ответ считался на процессоре, и это видно по времени в кадре. 1270×397, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

8. Прирасти чужими инструментами: digit mcp catalog

Навыки дополняют агента изнутри, MCP-серверы — снаружи: это отдельные процессы со своим набором инструментов, которые Digit подключает к разговору, не меняя себя. Команда печатает каталог доступных вместе с тем, что уже настроено.

Терминал: digit mcp catalog печатает таблицу из восьми серверов MCP — blender, comfy-cloud, digit-tools, figma, fts-gate, linear, n8n, unreal-engine — со статусом available и описанием каждого.
digit mcp catalog — Восемь серверов в каталоге: Blender, Figma, Linear, n8n, Unreal и другие. Внизу — как поставить любой из них одной командой. 1156×292, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

В кадре именно каталог, а не список подключённого: на машине съёмки серверов не настроено, и digit mcp list честно отвечает «серверов не настроено». Показать вместо каталога пустой список было бы точнее по букве и бесполезнее по смыслу, а показать каталог как «подключённое» — неправдой.

9. Проверить самого себя: digit security audit

Агент ставит себе зависимости, плагины и MCP-серверы — значит, у него есть своя цепочка поставок, и её кто-то должен проверять. Команда сверяет установленное с базой OSV.dev и печатает найденное: уровень, пакет с версией, номер и версию, в которой починено.

Терминал: digit security audit печатает «Found 6 known vulnerability finding(s) across 72 component(s)» и список находок по пакету cryptography 48.0.1 с номерами GHSA и PYSEC, уровнями HIGH и MODERATE и версиями, в которых починено.
digit security audit — Шесть находок на 72 пакета в поставке dev-машины. У каждой — номер, по которому её можно прочитать, и версия, в которой она закрыта. 799×367, снято скриптом scripts/shoot-digit-usecases.sh на dev, Digit v0.19.8 (2026.8.2) · upstream 97e7a7fb, 2026-08-11

Кадр показывает найденное, а не «всё чисто», и это выбор: проверка, которая всегда печатает пустой отчёт, ничем не отличается от отсутствующей. Числа в кадре — состояние машины съёмки на день съёмки, а не обещание; на другой машине и в другой день их будет другое количество.

Чего на этих кадрах нет

Список неполон намеренно, и вот чего в нём не хватает и почему.

Озвучки. У Digit она есть, но это инструмент модели text_to_speech (tools/tts_tool.py), а не команда: отдельного digit tts в CLI нет. Провайдеров одиннадцать, и четыре из них — Edge, NeuTTS, KittenTTS и Piper — работают без ключа, а три последних вообще на устройстве. Снять инструмент модели кадром терминала нельзя, не поднимая диалог, поэтому здесь его нет.

Озвучка портала — другая машинерия и живёт отдельно: 77 материалов начитаны целиком, это 24,9 часа звука голосом anon-qwen3-v1. Кнопка «Слушать» появляется только там, где начитан весь материал.

Зелёного вердикта проверки. Он требует установленного fts-gate, а он ставится отдельно. Что именно проверяет гейт и какие два инструмента он на самом деле предоставляет — в разделе flang.

Разбора документов, 3D и памяти между сеансами. Эти умения у Digit заявлены скиллами, и кадра здесь не получили — каждое проверено запуском, а не по списку:

Умение Почему без кадра
PDF, Word, Excel, PowerPoint, OCR Код есть — 42 файла на пяти скиллах, — но библиотек, которыми он работает, на машине нет: ни pypdf, ни pymupdf, ни python-docx, ни openpyxl
3D через Blender На машине съёмки нет самого Blender
Память между сеансами digit memory status работает, но заметок ноль и внешнего провайдера нет: кадр показал бы нули
База знаний digit kb Индекс пуст, собрать его нечем без сервера эмбеддингов
Подключённые MCP-серверы digit mcp list отвечает «серверов не настроено», поэтому в кадре 8 — каталог доступных, а не список подключённых

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

Как переснять

DIGIT=~/projects/digit WM=~/projects/digitwm/cwm \
  scripts/shoot-digit-usecases.sh

Скрипт проверяет, что на месте Xvfb, xdotool, alacritty, ImageMagick, chafa, установленный Digit и собранный digitwm, и отказывается, если чего-то нет. Он пишет девять файлов в static/images/digit-usecases/ и печатает вес каждого кадра до и после сжатия.

Кадры сохраняются в webp без потерь: на сплошном мелком моноширинном тексте это и легче, и точнее, чем сжатие с потерями. Замер на этих сценах — 13 646 байт против 100 870 у качества 82 на кадре со скиллами, то есть в три-семь раз легче при попиксельном совпадении с оригиналом.

Рядом

Нашли неточность? Выделите фрагмент текста — рядом появится жучок.

Нужен разбор именно вашей ситуации?

Статья описывает общий случай. Если у вас частный — можно разобрать его отдельно, платно. А если не хватает целого материала, предложите тему: её оплачивают вскладчину, и она выходит открытой для всех.

Доска запросов
Дальше