Typst
Typst GmbH и участники проекта на GitHub · лицензия Apache-2.0
Собирает PDF из текстовой разметки: счёт, КП, отчёт. Данные берёт из JSON или CSV и сама считает итоги по формулам шаблона.
✓ Проверено 08.10.2026: Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере: Typst 0.15.1 из готового файла выпуска на GitHub, для проверки PDF poppler-utils 24.02.0 из apt. Что именно проверяли
Какую задачу решает
Собирает PDF из текстового файла с разметкой: счёт, коммерческое предложение, отчёт. Данные можно держать отдельно в JSON или CSV, и тогда один шаблон даёт новый документ на каждый набор данных.
- Собирает PDF из файла .typ, в нашем прогоне одностраничный тестовый счёт собрался за 145 мс.
- Подставляет в шаблон данные из JSON и сама считает суммы и итоги по формулам шаблона, так было в нашем прогоне. Файлы CSV по документации читаются функцией csv.
- Принимает значения из командной строки (--input номер=значение), так из одного шаблона выходят счета с разными номерами.
- Сохраняет страницы картинками PNG с нужной плотностью точек (--ppi).
- При ошибке в разметке отвечает кодом 1, называет строку и PDF не создаёт, агент видит, что поправить.
Пример результата
Говоришь агенту
В папке docs лежат шаблон счёта invoice.typ и данные data.json: номер счёта, покупатель и три позиции. Собери invoice.pdf, проверь, что итог посчитан верно, и сделай вторую копию с номером T-0043.
Что получится
Рядом появятся invoice.pdf и копия с номером T-0043. Агент вытащит текст из PDF и сверит номер, покупателя, строки и итог с data.json. Этот сценарий мы прогнали на тестовых данных: одна страница A4, итог 8750 руб. совпал с расчётом, шрифты встроены в файл, data.json и шаблон после работы не изменились.
Паспорт
- Кто делает
- Typst GmbH и участники проекта на GitHub
- Сайт
- typst.app
- Исходный код
- github.com/typst/typst
- Инструкция
- typst.app/docs
- Лицензия
- Apache-2.0
- Версия
- 0.15.1 на 08.10.2026
- Системы
- macOS · Windows · Linux
- Где работает
- На компьютере, на сервере и в контейнере
- Цена
- Бесплатно
- Проверка
- Проверено 08.10
Установить агентом
Установи программу «Typst». Работай по шагам и после каждого коротко говори, что сделал.
Что это за программа (каталог smyslokod.ru, официальные источники сверены 08.10.2026):
- официальный сайт: https://typst.app/
- исходный код: https://github.com/typst/typst
- инструкция по установке: https://typst.app/docs/
- актуальная версия на 08.10.2026: 0.15.1
- лицензия: Apache-2.0
- для работы нужно (в отдельных случаях): Homebrew - на Mac Typst ставится через него
- для работы нужно (в отдельных случаях): Свои шрифты - если документу нужен фирменный шрифт, папку с ним передают ключом --font-path
Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
5. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
6. Перед сборкой покажи мне шаблон и данные. Итоговый PDF проверь: вытащи текст и сверь числа с данными, назови число страниц.
7. Пакеты из реестра (#import "@preview/...") подключай только с моего «да», назови пакет и его версию.
8. Не запускай typst update и не расширяй папку проекта ключом --root без моего разрешения.
9. Готовый PDF сохраняй под новым именем, существующие файлы не перезаписывай.
Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
- на компьютере: на Mac проще поставить через Homebrew, на Windows через winget, на Linux готовым файлом.
- на сервере: окно программе не нужно. В нашем прогоне сборка счёта, картинки и проверок не открыла ни одного сетевого соединения.
- в контейнере: мы проверяли в контейнере Ubuntu 24.04. Кириллица в нашем счёте набрана шрифтом Libertinus Serif, он встроен в PDF, список доступных шрифтов показывает typst fonts.
1. Проверь, не стоит ли программа уже: typst --version ; which -a typst. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Обязательных зависимостей у программы нет, то, что нужно в отдельных случаях, перечислено выше. Проверь свободное место на диске: нужно Готовый файл 0.15.1 для Linux x86_64 занял 54 МБ (55 739 488 байт), архив весит 17 462 992 байта. Скачанные пакеты шаблонов ложатся в кэш ~/.cache/typst/packages и занимают ещё место. Сколько займёт установка через Homebrew или winget, мы не мерили..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
Способы из официальных источников:
- macOS, Homebrew: brew install typst (ставит текущую версию из формулы, на 08.10.2026 это 0.15.1. Для работы формула других пакетов не ставит, pkgconf и rust указаны в ней только для сборки из исходников. На Mac мы не проверяли)
- Windows, winget: winget install --id Typst.Typst (команда из README проекта. По манифесту winget ставит typst.exe из выпуска 0.15.1 на GitHub и даёт команду typst. На Windows мы не проверяли)
- Linux, готовый файл с GitHub: curl -LO https://github.com/typst/typst/releases/download/v0.15.1/typst-x86_64-unknown-linux-musl.tar.xz && tar -xJf typst-x86_64-unknown-linux-musl.tar.xz && mkdir -p ~/.local/bin && cp typst-x86_64-unknown-linux-musl/typst ~/.local/bin/typst (так мы ставили в прогоне, архив для x86_64 (для ARM64 есть typst-aarch64-unknown-linux-musl.tar.xz). README велит положить файл в папку из PATH. Если ~/.local/bin в PATH нет, команду вызывают полным путём. Сверить архив можно по контрольной сумме sha256 на странице выпуска)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
- typst --version: программа запускается без ошибки;
- Сделай шаблон счёта invoice.typ и файл data.json с номером, покупателем и тремя позициями. Собери PDF и вытащи из него текст: номер, покупатель, все позиции и итог должны совпасть с данными, итог посчитан шаблоном. Сохрани страницу картинкой PNG, собери копию с другим номером через --input. Убедись, что файл с ошибкой в разметке даёт код 1 и PDF не создаётся. Сверь контрольные суммы исходных файлов до и после работы. Делай это во временной папке и не трогай мои файлы.
typst --version
typst fonts
typst compile docs/invoice.typ docs/invoice.pdf
typst compile docs/invoice.typ 'docs/invoice-{p}.png' --ppi 100
typst compile --input number=T-0043 docs/invoice.typ docs/invoice-T-0043.pdf
typst compile docs/broken.typ docs/broken.pdf
typst compile docs/escape.typ docs/escape.pdf
pdftotext -layout docs/invoice.pdf invoice.txt
- если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS, Homebrew: brew uninstall typst; Windows, winget: winget uninstall --id Typst.Typst; Linux, готовый файл с GitHub: rm ~/.local/bin/typst).
Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/typst#problemyПромпт собран из официальных инструкций, сверенных 08.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.
Как ставят вручную
Способы из официальных источников, у каждого ссылка на первоисточник.
macOS · Homebrew · источник
brew install typst
ставит текущую версию из формулы, на 08.10.2026 это 0.15.1. Для работы формула других пакетов не ставит, pkgconf и rust указаны в ней только для сборки из исходников. На Mac мы не проверяли
Windows · winget · источник
winget install --id Typst.Typst
команда из README проекта. По манифесту winget ставит typst.exe из выпуска 0.15.1 на GitHub и даёт команду typst. На Windows мы не проверяли
Linux · готовый файл с GitHub · источник
curl -LO https://github.com/typst/typst/releases/download/v0.15.1/typst-x86_64-unknown-linux-musl.tar.xz && tar -xJf typst-x86_64-unknown-linux-musl.tar.xz && mkdir -p ~/.local/bin && cp typst-x86_64-unknown-linux-musl/typst ~/.local/bin/typst
так мы ставили в прогоне, архив для x86_64 (для ARM64 есть typst-aarch64-unknown-linux-musl.tar.xz). README велит положить файл в папку из PATH. Если ~/.local/bin в PATH нет, команду вызывают полным путём. Сверить архив можно по контрольной сумме sha256 на странице выпуска
Как удалить
- macOS, Homebrew:
brew uninstall typst - Windows, winget:
winget uninstall --id Typst.Typst - Linux, готовый файл с GitHub:
rm ~/.local/bin/typst
Что нужно для работы
- Homebrew (в отдельных случаях) - на Mac Typst ставится через него
- Свои шрифты (в отдельных случаях) - если документу нужен фирменный шрифт, папку с ним передают ключом --font-path
Системы
- macOS - ставится через Homebrew, у выпуска есть и готовые файлы для Apple silicon и Intel. На Mac мы Typst не ставили и не запускали.
- Windows - по манифесту winget ставит typst.exe из выпуска на GitHub, в нём есть записи для x64 и ARM64 и зависимость Microsoft Visual C++ Redistributable. На Windows мы не проверяли.
- Linux - готовый файл из выпуска на GitHub в нашем прогоне хватило скопировать в папку из PATH, ничего больше ставить не пришлось. Есть сборки для x86_64, ARM64, ARMv7 и RISC-V. Пакеты дистрибутивов и Snap тоже есть, версия в них бывает старше.
Где запускать
Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.
- На компьютере - на Mac проще поставить через Homebrew, на Windows через winget, на Linux готовым файлом.
- На сервере - окно программе не нужно. В нашем прогоне сборка счёта, картинки и проверок не открыла ни одного сетевого соединения.
- В контейнере - мы проверяли в контейнере Ubuntu 24.04. Кириллица в нашем счёте набрана шрифтом Libertinus Serif, он встроен в PDF, список доступных шрифтов показывает typst fonts.
Сколько ресурсов нужно
- Место на диске
- Готовый файл 0.15.1 для Linux x86_64 занял 54 МБ (55 739 488 байт), архив весит 17 462 992 байта. Скачанные пакеты шаблонов ложатся в кэш ~/.cache/typst/packages и занимают ещё место. Сколько займёт установка через Homebrew или winget, мы не мерили.
- Видеокарта
- В нашем прогоне видеокарта не понадобилась.
- Сеть
- Для установки нужна сеть: архив скачивался с github.com, загрузка переадресуется на release-assets.githubusercontent.com. Во время сборки нашего счёта Typst не открыла ни одного соединения. В сеть программа ходит, когда документ подключает пакет из реестра (#import "@preview/..."): по документации она скачивает его с packages.typst.org один раз и дальше берёт из кэша. Команда typst update обращается к api.github.com и скачивает новый выпуск. В прогоне apt ещё ходил к archive.ubuntu.com, security.ubuntu.com и deb.nodesource.com, этот источник Node.js прописан в образе песочницы: так мы ставили poppler-utils, чтобы проверить PDF, самой Typst он не нужен.
Счёт на одну страницу собирался за 145-166 мс в трёх прогонах.
Лицензия и платные замены
Лицензия Apache-2.0. Консольная программа свободная, лицензия Apache License 2.0 лежит в репозитории и в архиве выпуска. Платные тарифы есть у веб-приложения на typst.app, программе на компьютере они не нужны. Текст лицензии
Цена: Бесплатно. Консольная программа бесплатная. Веб-приложение на typst.app платное сверх бесплатного тарифа: Typst Pro стоит $7.99 в месяц, цена со страницы тарифов 08.10.2026.
Платные замены
- Typst Pro (веб-приложение) - Редактор Typst в браузере от тех же авторов. По странице тарифов Pro добавляет комментарии, 2 ГБ места на проект и синхронизацию с GitHub и GitLab, она помечена как экспериментальная. $7.99 в месяц, есть бесплатный тариф. Оплату из России мы не проверяли.
Бесплатные замены
- Pandoc - Переводит документы между форматами. PDF собирает внешней программой: по руководству при -t latex это pdflatex, при -t typst сама Typst.
- TeX Live (LaTeX) - Набор TeX для Linux, macOS и Windows. По словам сайта, в нём собраны свободные программы, макропакеты и шрифты.
О чём помнить
- Безопасность. Агент запускает typst в терминале сам (exec). Программа читает файл разметки и то, что он подключает: данные, картинки, другие файлы (read), а ещё шрифты системы и кэш пакетов. Корень проекта по исходному коду - папка главного файла, ключ --root его меняет. В прогоне шаблон попытался прочитать файл выше этой папки, и Typst отказала с ошибкой «would escape the project root». PDF или картинку Typst пишет с правами пользователя по пути, который агент задаёт в команде (write). Команда typst update заменяет саму программу новой версией с GitHub, старую по исходному коду сохраняет копией (acts). Входа в аккаунты и ключей Typst не просит.
- Пакет из реестра (#import "@preview/...") Typst скачивает с packages.typst.org при первой сборке. Пакеты пишут участники сообщества, и их код работает при сборке документа. Сами мы пакеты из реестра не подключали.
- У Typst свой язык разметки. По руководству Pandoc переводит в него документы (-t typst), среди входных форматов Pandoc есть docx и latex. Такой перевод мы не прогоняли.
- Команды brew и winget без номера ставят ту версию, что сейчас в их каталоге. Мы проверили 0.15.1. Если стоят две копии, which -a typst покажет, какая вызывается первой.
Частые проблемы
error: expected expression, рядом номер строки, код выхода 1
Ошибка в разметке. PDF при этом не создаётся, так было в прогоне. Открой названную строку и поправь разметку, затем собери заново.
error: path ... would escape the project root
Шаблон читает файл выше корня проекта. Если ключа --root нет, корнем по исходному коду Typst считается папка главного файла. Перенеси файл в папку проекта или задай общий корень ключом --root. Ключ даёт программе читать всё внутри новой папки.
typst --version показывает старую версию, хотя ставили 0.15.1
Стоят две копии, например из пакета дистрибутива и в ~/.local/bin, и первой в PATH стоит старая. Посмотри which -a typst и вызывай нужную копию полным путём. Правку PATH агент делает только с твоего «да».
Проверка
✓ Проверено 08.10.2026: Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере: Typst 0.15.1 из готового файла выпуска на GitHub, для проверки PDF poppler-utils 24.02.0 из apt.
- Когда
- 08.10.2026
- Среда
- Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере: Typst 0.15.1 из готового файла выпуска на GitHub, для проверки PDF poppler-utils 24.02.0 из apt
- Объём
- Установили и прогнали задачу на тестовых данных
- Что именно сделали
- Одноразовый контейнер Ubuntu 24.04.5 без данных и ключей. Скачали с GitHub архив typst-x86_64-unknown-linux-musl.tar.xz (17 462 992 байта) и сверили его контрольную сумму sha256 с той, что указана у выпуска.
- Распаковали архив и скопировали файл typst в ~/.local/bin. Он занял 54 МБ, typst --version вывел «typst 0.15.1 (9dfd3a08)». Ничего больше ставить не пришлось.
- Скрипт прогона сам написал тестовый шаблон счёта invoice.typ и файл data.json: номер T-0042, тестовый покупатель, три позиции, итог шаблон считает сам.
- Собрали invoice.pdf за 145 мс. По pdfinfo это одна страница A4, в PDF встроены шрифты Libertinus Serif.
- Вытащили текст из PDF командой pdftotext и сверили: номер и дата, покупатель, все три позиции и строка «Итого: 8750 руб.», это совпало с расчётом по data.json.
- Сохранили страницу картинкой PNG с --ppi 100, вышло 827 на 1169 точек. Собрали копию с номером T-0043 через --input, в её тексте стоит новый номер.
- Файл с ошибкой в разметке дал код 1 и сообщение с номером строки, PDF не появился. Попытка шаблона прочитать файл выше папки проекта закончилась ошибкой «would escape the project root».
- Контрольные суммы data.json и шаблона после работы не изменились. Каждый результат скрипт сверил сам и только после этого напечатал TASK_OK.
- Сетевые соединения записаны по этапам. Архив скачивался с github.com и release-assets.githubusercontent.com. apt ставил poppler-utils для проверки PDF и ходил к archive.ubuntu.com, security.ubuntu.com и deb.nodesource.com: этот источник Node.js уже был прописан в образе песочницы. Во время задачи Typst не открыла ни одного соединения.
- Удалили файл ~/.local/bin/typst, после этого команда typst не находится. Контейнер удалён.
| Дата | Версия | Объём | Где | Итог |
|---|---|---|---|---|
| 08.10.2026 | 0.15.1 | задача | контейнер, Linux | получилось |
«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.
Похожие программы
- PandocПереводит документы из формата в формат: Markdown в Word и PDF, Word в Markdown. Агенту нужен, чтобы отдавать результат так, как его ждут люди.
- LibreOfficeПереводит Word, Excel и PowerPoint в PDF, CSV в Excel, Markdown в Word - без окон, одной командой. Агенту нужен, чтобы отдать договор, счёт или таблицу людям в PDF.
- qpdfСклеивает и режет PDF, поворачивает страницы, ставит и снимает пароль. Содержимое страниц сохраняет, текст и картинки остаются в файле.
Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.