⚡ 59 herramientas de desarrollo, siempre actualizadas — cada nueva versión upstream llega a apt en cuestión de horas. Únete al Discord

📅 A partir del , el mirror de apt requerirá una suscripción. Ver precios · 🆓 Existe un espejo gratis para siempre

Instalar la última versión de tree-sitter-cli en Debian

Genera, compila, prueba y depura parsers y gramáticas de Tree-sitter desde la línea de comandos

Última versión: 0.27.0 · actualizado 2026-09-15
FuenteVersión
deb.griffo.io0.27.0 ✅
Debian oficial0.22.6 🛑
← Volver al inicio
📌 ¿Instalas en una versión concreta? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

¿Qué es tree-sitter-cli?

tree-sitter-cli es la herramienta de línea de comandos para desarrollar parsers de Tree-sitter. Tree-sitter es un generador de parsers y una biblioteca de análisis incremental: construye un árbol sintáctico concreto de un archivo fuente y lo actualiza con muy poco coste mientras editas, por eso Neovim, Helix, Zed y GitHub lo usan para el resaltado, el plegado, los objetos de texto y la navegación de código. Las gramáticas se hacen con esta CLI: crea el repositorio de una gramática, genera un parser en C a partir de grammar.js, lo compila a una biblioteca compartida o a WebAssembly, ejecuta los tests de corpus, analiza, consulta, resalta y etiqueta archivos, y levanta un playground web. Es un único binario de Rust, y el comando que escribes es tree-sitter.

🚀 Por qué importa la última versión: las gramáticas van de la mano de la CLI: el ABI actual de los parsers, la estructura de tree-sitter.json que escribe tree-sitter init y el runtime QuickJS integrado detrás de --js-runtime native llegaron todos después de las versiones congeladas en los archivos. Un repositorio de gramática generado con una CLI actual espera esa misma versión o una más nueva en la máquina de cada colaborador y en la CI. El 0.22.6 de Debian stable y el 0.20.8 de Ubuntu 24.04 son anteriores a casi todo eso, y los binarios de Linux de upstream necesitan glibc 2.39, así que ni siquiera arrancan en Debian 12 ni en Ubuntu 22.04.

⚡ Funciones clave de tree-sitter-cli

🧱 Un repositorio de gramática en un comando

tree-sitter init hace unas pocas preguntas y escribe grammar.js, tree-sitter.json y los archivos de bindings y de paquete, así que la gramática se puede publicar para Node.js, Python, Rust, Go, Swift y C desde el primer día.

⚙️ Generación de parsers

tree-sitter generate convierte grammar.js en un parser en C sin dependencias dentro de src/ e informa de los conflictos. Ejecuta la gramática con node o, con --js-runtime native, con el runtime QuickJS integrado.

🔨 Compilación nativa y WebAssembly

tree-sitter build compila el parser en una biblioteca compartida que cargan los editores, y --wasm produce un módulo .wasm para web-tree-sitter y el playground.

🧪 Tests de corpus

tree-sitter test analiza los ejemplos de test/corpus, compara los árboles con las S-expressions esperadas y ejecuta también los tests de resaltado y de etiquetas. --update reescribe lo esperado tras un cambio intencionado.

🔍 Analizar, consultar, resaltar, etiquetar

parse imprime el árbol sintáctico, query ejecuta una consulta .scm y lista sus capturas, highlight pinta en la terminal o en HTML, y tags extrae definiciones y referencias.

🛝 Playground web

tree-sitter playground sirve una página local donde escribes código, ves cómo el árbol se actualiza mientras editas y le lanzas consultas: la forma más rápida de entender por qué una regla no encaja.

🚀 Siempre por delante de los archivos oficiales: Debian y Ubuntu congelan las versiones de los paquetes cuando publican una release; este repositorio publica las nuevas versiones upstream normalmente en cuestión de horas. Un simple apt upgrade te mantiene en la última versión.

📦 Instalación desde deb.griffo.io

Ejecutar los comandos

Paso 1: Añadir el repositorio

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
sudo apt install extrepo
sudo extrepo enable griffo
sudo apt update

🆓 Existe un espejo gratis para siempre. deb-free.griffo.io sirve paquetes gratis para siempre: sin cuenta, sin suscripción, como máximo 2 meses por detrás del upstream, correcciones de seguridad inmediatas. Ahora mismo incluye cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud y Zed; tree-sitter-cli no está entre ellas, así que hoy el repositorio de arriba es la única forma de instalarlo — pídelo y puede añadirse.

Cómo funciona el espejo gratuito →

🧩 Sobre la opción extrepo. extrepo es la herramienta propia de Debian para repositorios externos: escribe el archivo de sources e instala la clave de firma por ti, comprobándola antes contra metadatos firmados. Este repositorio está registrado en ella como griffo, y el espejo gratuito para siempre como griffo-free, así que en Debian (bookworm, trixie, forky y sid) los comandos de arriba son toda la configuración.

extrepo solo configura el archivo de sources y la clave: las credenciales de una suscripción siguen yendo en /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu no está cubierto, porque extrepo publica metadatos solo para las suites de Debian: allí usa los comandos con sudo o como root.

Paso 2: Instalar tree-sitter-cli

# Instalar la última versión de tree-sitter-cli
sudo apt install tree-sitter-cli

# Verificar la instalación, el comando es tree-sitter y no tree-sitter-cli
tree-sitter --version
# Instalar la última versión de tree-sitter-cli
apt install tree-sitter-cli

# Verificar la instalación, el comando es tree-sitter y no tree-sitter-cli
tree-sitter --version

Paso 3: Crear tu primera gramática

# El comando es tree-sitter. Compilar y probar parsers requiere un compilador de C,
# y generate ejecuta grammar.js con node salvo que elijas el runtime integrado
sudo apt install build-essential nodejs

# Crear el repositorio de una gramática respondiendo unas pocas preguntas
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Generar el parser, compilarlo y ejecutar los tests de corpus
tree-sitter generate
tree-sitter build
tree-sitter test

# Los autocompletados de bash, zsh, fish y nushell vienen en el paquete
tree-sitter --help
# El comando es tree-sitter. Compilar y probar parsers requiere un compilador de C,
# y generate ejecuta grammar.js con node salvo que elijas el runtime integrado
apt install build-essential nodejs

# Crear el repositorio de una gramática respondiendo unas pocas preguntas
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Generar el parser, compilarlo y ejecutar los tests de corpus
tree-sitter generate
tree-sitter build
tree-sitter test

# Los autocompletados de bash, zsh, fish y nushell vienen en el paquete
tree-sitter --help

🎯 Ejemplos básicos de uso

Trabajar en una gramática:

# Regenerar tras cada cambio en grammar.js, sin node, con el QuickJS integrado
tree-sitter generate --js-runtime native

# Ejecutar solo los tests cuyo nombre coincide y aceptar la nueva salida como esperada
tree-sitter test --include 'function'
tree-sitter test --update

# Compilar una biblioteca compartida, o un módulo WebAssembly para web-tree-sitter
tree-sitter build -o mylang.so
tree-sitter build --wasm

Analizar archivos:

# Imprimir el árbol sintáctico de un archivo
tree-sitter parse examples/hello.mylang

# Analizar muchos archivos en silencio e informar de cuántos salen bien
tree-sitter parse examples/*.mylang --quiet --stat

# Cronometrar un análisis, útil cuando un cambio en la gramática lo ralentiza
tree-sitter parse examples/big.mylang --time

Consultas, resaltado y etiquetas:

# Lanzar una consulta sobre un archivo y listar lo que captura
tree-sitter query queries/highlights.scm examples/hello.mylang

# Resaltar un archivo en la terminal, o generar una página HTML independiente
tree-sitter highlight examples/hello.mylang
tree-sitter highlight --html examples/hello.mylang > hello.html

# Extraer definiciones y referencias con la consulta de etiquetas
tree-sitter tags examples/hello.mylang

Gramáticas existentes y el playground:

# Trabajar sobre una gramática existente
git clone https://github.com/tree-sitter/tree-sitter-json
cd tree-sitter-json
tree-sitter generate && tree-sitter test

# Crear un archivo de configuración y añadir tus gramáticas en parser-directories
tree-sitter init-config

# Compilar a WebAssembly y abrir el playground interactivo en el navegador
tree-sitter build --wasm
tree-sitter playground

🔧 Integraciones con otras herramientas

La CLI de Tree-sitter está entre una gramática y las herramientas que la cargan:

  • Neovim: la rama main de nvim-treesitter compila los parsers con la CLI tree-sitter y pide una versión reciente, más nueva que la de Debian stable o Ubuntu LTS
  • Helix: el resaltado, la indentación y los objetos de texto son consultas de Tree-sitter; comprueba un cambio en highlights.scm con tree-sitter query antes de recompilar las gramáticas con hx --grammar build
  • Zed: las extensiones de lenguaje fijan un repositorio de gramática y un commit, así que genera y prueba la gramática en local antes de subir esa referencia
  • CI: tree-sitter generate seguido de git diff --exit-code src/ hace fallar un pull request cuyo parser commiteado está desactualizado
  • Registros de paquetes: los bindings que escribe tree-sitter init permiten publicar la misma gramática en npm, PyPI y crates.io

🚀 ¿Por qué elegir deb.griffo.io?

📊 Comparativa de repositorios:
  • Debian oficial: incluye tree-sitter-cli, pero Debian 13 trae la 0.22.6, anterior al ABI de parsers y a la estructura de tree-sitter.json que usan las gramáticas actuales, y Debian 12 no tiene paquete
  • Binario upstream: actualizado, pero los binarios precompilados de Linux de upstream están enlazados contra glibc 2.39, así que no arrancan en Debian 12 ni en Ubuntu 22.04, y quedan fuera de apt en /usr/local/bin
  • cargo o npm: cargo install tree-sitter-cli necesita una toolchain de Rust y una compilación completa en cada actualización, y el paquete de npm descarga el mismo binario precompilado con el mismo requisito de glibc
  • deb.griffo.io: última versión con actualizaciones automáticas

📦 Repositorio de compilación del paquete

Los paquetes de Debian se compilan y mantienen automáticamente en este repositorio de GitHub:

🔗 Paquetes relacionados

También disponibles en deb.griffo.io:

🎯 Ideal para: escribir la gramática de un lenguaje nuevo, mantener al día el parser y los tests de corpus de una gramática existente, probar consultas de resaltado e inyección para Neovim, Helix o Zed, trabajos de CI que comprueban que el parser commiteado está al día, y máquinas con Debian 12 o Ubuntu 22.04 donde el binario de upstream no arranca.

📦 Últimas versiones publicadas por este repositorio

❓ Preguntas frecuentes

¿Está tree-sitter-cli en los repositorios oficiales de Debian?

Sí, pero el archivo oficial de Debian trae tree-sitter-cli 0.22.6, mientras que este repositorio ofrece tree-sitter-cli 0.27.0, recompilado pocas horas después de cada versión upstream.

¿Cómo instalo el último tree-sitter-cli en Debian?

Añade el repositorio deb.griffo.io una sola vez con las instrucciones de arriba y ejecuta: sudo apt install tree-sitter-cli. Las nuevas versiones llegan con el sudo apt upgrade habitual.

¿Los paquetes están firmados y cómo se compilan?

Cada paquete está firmado con la clave GPG del repositorio (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) y se compila a partir de versiones upstream en repositorios públicos de GitHub que cualquiera puede inspeccionar.

¿Qué versiones de Debian son compatibles?

Debian 12 Bookworm, Debian 13 Trixie, Forky y Sid.