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

📅 С для доступа к apt-зеркалу потребуется подписка. Посмотреть цены · 🆓 Есть вечно бесплатное зеркало

Установка последней версии tree-sitter-cli в Ubuntu

Генерация, сборка, тестирование и отладка парсеров и грамматик Tree-sitter из командной строки

Последняя версия: 0.27.0 · обновлено 2026-09-15
ИсточникВерсия
deb.griffo.io0.27.0 ✅
Официальный Ubuntu0.25.9 🛑
← Вернуться на главную
📌 Устанавливаете на конкретный выпуск? Ubuntu 22.04 (jammy) · Ubuntu 24.04 (noble) · Ubuntu 25.10 (questing) · Ubuntu 26.04 (resolute)

Что такое tree-sitter-cli?

tree-sitter-cli — это инструмент командной строки для разработки парсеров Tree-sitter. Tree-sitter — генератор парсеров и библиотека инкрементального разбора: он строит конкретное синтаксическое дерево исходного файла и дёшево обновляет его по мере редактирования, поэтому Neovim, Helix, Zed и GitHub используют его для подсветки, сворачивания, текстовых объектов и навигации по коду. Грамматики создаются именно этой CLI: она создаёт репозиторий грамматики, генерирует парсер на C из grammar.js, компилирует его в разделяемую библиотеку или WebAssembly, запускает тесты корпуса, разбирает, опрашивает, подсвечивает и размечает тегами файлы, а также поднимает веб-playground. Это один бинарник на Rust, а команда, которую вы вводите, — tree-sitter.

🚀 Почему важна последняя версия: грамматики идут в ногу с CLI: актуальный ABI парсеров, структура tree-sitter.json, которую пишет tree-sitter init, и встроенная среда QuickJS за --js-runtime native появились позже версий, замороженных в архивах. Репозиторий грамматики, сгенерированный актуальной CLI, ждёт такую же или более новую версию на машине каждого участника и в CI. Версия 0.22.6 в Debian stable и 0.20.8 в Ubuntu 24.04 старше большей части этих изменений, а Linux-бинарники upstream требуют glibc 2.39 и попросту не запускаются в Debian 12 и Ubuntu 22.04.

⚡ Ключевые возможности tree-sitter-cli

🧱 Репозиторий грамматики одной командой

tree-sitter init задаёт несколько вопросов и записывает grammar.js, tree-sitter.json, а также файлы привязок и пакетов, так что грамматику можно публиковать для Node.js, Python, Rust, Go, Swift и C с первого дня.

⚙️ Генерация парсеров

tree-sitter generate превращает grammar.js в парсер на C без зависимостей в src/ и сообщает о конфликтах. Грамматика выполняется в node или, с --js-runtime native, во встроенной среде QuickJS.

🔨 Нативные сборки и WebAssembly

tree-sitter build компилирует парсер в разделяемую библиотеку, которую загружают редакторы, а --wasm создаёт модуль .wasm для web-tree-sitter и playground.

🧪 Тесты корпуса

tree-sitter test разбирает примеры из test/corpus, сравнивает деревья с ожидаемыми S-выражениями и заодно запускает тесты подсветки и тегов. --update переписывает ожидания после намеренного изменения.

🔍 Разбор, запросы, подсветка, теги

parse печатает синтаксическое дерево, query выполняет запрос .scm и перечисляет захваты, highlight выводит подсветку в терминал или HTML, а tags извлекает определения и ссылки.

🛝 Веб-playground

tree-sitter playground поднимает локальную страницу: вводите код, смотрите, как дерево обновляется при редактировании, и выполняйте на нём запросы. Это самый быстрый способ понять, почему правило не срабатывает.

🚀 Всегда впереди официальных архивов: Debian и Ubuntu замораживают версии пакетов при выпуске релиза — этот репозиторий публикует новые версии обычно в течение нескольких часов. Простое apt upgrade держит вас на последней версии.

📦 Установка из deb.griffo.io

Запуск команд

Шаг 1: Добавить репозиторий

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update

🆓 Есть вечно бесплатное зеркало. deb-free.griffo.io раздаёт пакеты бесплатно навсегда — без аккаунта, без подписки, не более 2 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud и Zed; tree-sitter-cli среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.

Как работает бесплатное зеркало →

Шаг 2: Установить tree-sitter-cli

# Установить последнюю версию tree-sitter-cli
sudo apt install tree-sitter-cli

# Проверить установку: команда называется tree-sitter, а не tree-sitter-cli
tree-sitter --version
# Установить последнюю версию tree-sitter-cli
apt install tree-sitter-cli

# Проверить установку: команда называется tree-sitter, а не tree-sitter-cli
tree-sitter --version

Шаг 3: Создать первую грамматику

# Команда называется tree-sitter. Для сборки и тестов парсеров нужен компилятор C,
# а generate выполняет grammar.js в node, если не выбрать встроенную среду
sudo apt install build-essential nodejs

# Создать репозиторий грамматики, ответив на несколько вопросов
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Сгенерировать парсер, скомпилировать его и запустить тесты корпуса
tree-sitter generate
tree-sitter build
tree-sitter test

# Автодополнение для bash, zsh, fish и nushell входит в пакет
tree-sitter --help
# Команда называется tree-sitter. Для сборки и тестов парсеров нужен компилятор C,
# а generate выполняет grammar.js в node, если не выбрать встроенную среду
apt install build-essential nodejs

# Создать репозиторий грамматики, ответив на несколько вопросов
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Сгенерировать парсер, скомпилировать его и запустить тесты корпуса
tree-sitter generate
tree-sitter build
tree-sitter test

# Автодополнение для bash, zsh, fish и nushell входит в пакет
tree-sitter --help

🎯 Базовые примеры использования

Работа над грамматикой:

# Перегенерировать после каждой правки grammar.js, без node, на встроенном QuickJS
tree-sitter generate --js-runtime native

# Запустить только тесты с подходящим именем, затем принять новый вывод как ожидаемый
tree-sitter test --include 'function'
tree-sitter test --update

# Собрать разделяемую библиотеку или модуль WebAssembly для web-tree-sitter
tree-sitter build -o mylang.so
tree-sitter build --wasm

Разбор файлов:

# Напечатать синтаксическое дерево файла
tree-sitter parse examples/hello.mylang

# Тихо разобрать много файлов и сообщить, сколько прошло успешно
tree-sitter parse examples/*.mylang --quiet --stat

# Замерить время разбора, полезно, когда правка грамматики всё замедлила
tree-sitter parse examples/big.mylang --time

Запросы, подсветка и теги:

# Выполнить запрос к файлу и перечислить захваты
tree-sitter query queries/highlights.scm examples/hello.mylang

# Подсветить файл в терминале или отрисовать отдельную HTML-страницу
tree-sitter highlight examples/hello.mylang
tree-sitter highlight --html examples/hello.mylang > hello.html

# Извлечь определения и ссылки запросом тегов
tree-sitter tags examples/hello.mylang

Существующие грамматики и playground:

# Работать с существующей грамматикой
git clone https://github.com/tree-sitter/tree-sitter-json
cd tree-sitter-json
tree-sitter generate && tree-sitter test

# Создать файл конфигурации и перечислить в parser-directories каталоги с грамматиками
tree-sitter init-config

# Собрать в WebAssembly и открыть интерактивный playground в браузере
tree-sitter build --wasm
tree-sitter playground

🔧 Интеграция с другими инструментами

CLI Tree-sitter стоит между грамматикой и инструментами, которые её загружают:

  • Neovim: ветка main nvim-treesitter компилирует парсеры с помощью CLI tree-sitter и требует свежий выпуск, новее, чем в Debian stable или Ubuntu LTS
  • Helix: подсветка, отступы и текстовые объекты — это запросы Tree-sitter; проверьте правку highlights.scm через tree-sitter query, прежде чем пересобирать грамматики командой hx --grammar build
  • Zed: языковые расширения закрепляют репозиторий грамматики и коммит, поэтому сгенерируйте и протестируйте грамматику локально, прежде чем обновлять закрепление
  • CI: tree-sitter generate, а затем git diff --exit-code src/ проваливают pull request, в котором закоммиченный парсер устарел
  • Реестры пакетов: привязки, которые пишет tree-sitter init, позволяют опубликовать одну грамматику в npm, PyPI и crates.io

🚀 Почему стоит выбрать deb.griffo.io?

📊 Сравнение репозиториев:
  • Официальный Ubuntu: tree-sitter-cli есть в universe, но в 24.04 LTS это 0.20.8, 26.04 уже отстаёт от upstream, а в 22.04 пакета нет вовсе
  • Бинарник upstream: свежий, но готовые Linux-бинарники upstream собраны под glibc 2.39, поэтому не запускаются в Debian 12 и Ubuntu 22.04 и живут вне apt в /usr/local/bin
  • cargo или npm: cargo install tree-sitter-cli требует тулчейн Rust и полной компиляции при каждом обновлении, а пакет npm скачивает тот же готовый бинарник с тем же требованием к glibc
  • deb.griffo.io: последняя версия с автоматическими обновлениями

📦 Репозиторий сборки пакета

Пакеты для Ubuntu собираются и поддерживаются автоматически в этом репозитории GitHub:

🔗 Похожие пакеты

Также доступны в deb.griffo.io:

🎯 Идеально подходит для: написания грамматики для нового языка, поддержки парсера и тестов корпуса существующей грамматики в актуальном состоянии, проверки запросов подсветки и инъекций для Neovim, Helix или Zed, CI-задач, проверяющих актуальность закоммиченного парсера, и машин с Debian 12 или Ubuntu 22.04, где бинарник upstream не запускается.

📦 Последние релизы этого репозитория

❓ Часто задаваемые вопросы

Есть ли tree-sitter-cli в официальных репозиториях Ubuntu?

Да, но официальный архив Ubuntu поставляет tree-sitter-cli 0.25.9, тогда как этот репозиторий предлагает tree-sitter-cli 0.27.0, пересобирается через несколько часов после каждого релиза.

Как установить последнюю версию tree-sitter-cli в Ubuntu?

Добавьте репозиторий deb.griffo.io один раз по инструкции выше, затем выполните: sudo apt install tree-sitter-cli. Новые версии приходят через обычный sudo apt upgrade.

Подписаны ли пакеты и как они собираются?

Каждый пакет подписан GPG-ключом репозитория (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) и собирается из релизов upstream в публичных репозиториях GitHub, которые может проверить любой.

Какие версии Ubuntu поддерживаются?

Ubuntu 22.04 Jammy, 24.04 Noble, 25.10 Questing и 26.04 Resolute.