⚡ 59 outils de développement, toujours à jour — chaque nouvelle version upstream arrive dans apt en quelques heures. Rejoindre le Discord

📅 À partir du , le miroir apt nécessitera un abonnement. Voir les tarifs · 🆓 Il existe un miroir gratuit pour toujours

Installer le dernier tree-sitter-cli sur Debian

Générer, compiler, tester et déboguer des parseurs et grammaires Tree-sitter en ligne de commande

Dernière version : 0.27.0 · mis à jour le 2026-09-15
SourceVersion
deb.griffo.io0.27.0 ✅
Debian officiel0.22.6 🛑
← Retour à l'accueil
📌 Installation sur une version précise ? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

Qu'est-ce que tree-sitter-cli ?

tree-sitter-cli est l'outil en ligne de commande pour développer des parseurs Tree-sitter. Tree-sitter est un générateur de parseurs et une bibliothèque d'analyse incrémentale : il construit l'arbre syntaxique concret d'un fichier source et le met à jour à moindre coût pendant l'édition, ce qui explique pourquoi Neovim, Helix, Zed et GitHub s'en servent pour la coloration, le repliement, les objets textuels et la navigation dans le code. Les grammaires se fabriquent avec cette CLI : elle crée le dépôt d'une grammaire, génère un parseur C à partir de grammar.js, le compile en bibliothèque partagée ou en WebAssembly, lance les tests de corpus, analyse, interroge, colore et étiquette des fichiers, et sert un playground web. C'est un binaire Rust unique, et la commande que vous tapez est tree-sitter.

🚀 Pourquoi les dernières versions comptent : les grammaires suivent la CLI de près : l'ABI actuelle des parseurs, la structure de tree-sitter.json qu'écrit tree-sitter init et le runtime QuickJS intégré derrière --js-runtime native sont tous arrivés après les versions figées dans les archives. Un dépôt de grammaire généré avec une CLI récente attend la même version ou une plus récente sur la machine de chaque contributeur et dans la CI. La 0.22.6 de Debian stable et la 0.20.8 d'Ubuntu 24.04 précèdent l'essentiel de ces changements, et les binaires Linux d'upstream exigent glibc 2.39 : ils ne démarrent même pas sur Debian 12 ni sur Ubuntu 22.04.

⚡ Fonctions clés de tree-sitter-cli

🧱 Un dépôt de grammaire en une commande

tree-sitter init pose quelques questions et écrit grammar.js, tree-sitter.json ainsi que les fichiers de bindings et de paquets : la grammaire est publiable pour Node.js, Python, Rust, Go, Swift et C dès le premier jour.

⚙️ Génération de parseurs

tree-sitter generate transforme grammar.js en un parseur C sans dépendance dans src/ et signale les conflits. La grammaire s'exécute avec node ou, via --js-runtime native, avec le runtime QuickJS intégré.

🔨 Builds natifs et WebAssembly

tree-sitter build compile le parseur en bibliothèque partagée que chargent les éditeurs, et --wasm produit un module .wasm pour web-tree-sitter et le playground.

🧪 Tests de corpus

tree-sitter test analyse les exemples de test/corpus, compare les arbres aux S-expressions attendues et lance aussi les tests de coloration et de tags. --update réécrit les attentes après un changement voulu.

🔍 Analyser, interroger, colorer, étiqueter

parse affiche l'arbre syntaxique, query exécute une requête .scm et liste ses captures, highlight produit une sortie terminal ou HTML, et tags extrait définitions et références.

🛝 Playground web

tree-sitter playground sert une page locale où vous tapez du code, voyez l'arbre se mettre à jour pendant l'édition et lancez des requêtes dessus : le moyen le plus rapide de comprendre pourquoi une règle ne correspond pas.

🚀 Toujours en avance sur les archives officielles : Debian et Ubuntu figent les versions des paquets à la sortie d'une release — ce dépôt publie les nouvelles versions upstream généralement en quelques heures. Un simple apt upgrade vous maintient à jour.

📦 Installation depuis deb.griffo.io

Exécuter les commandes

Étape 1 : ajouter le dépôt

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

🆓 Il existe un miroir gratuit pour toujours. deb-free.griffo.io distribue des paquets gratuitement pour toujours — sans compte, sans abonnement, au plus 2 mois derrière l'upstream, correctifs de sécurité immédiats. Il contient aujourd'hui cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud et Zed ; tree-sitter-cli n'en fait pas partie, le dépôt ci-dessus reste donc le seul moyen de l'installer — demandez-le et il pourra y être ajouté.

Comment fonctionne le miroir gratuit →

🧩 À propos de l'option extrepo. extrepo est l'outil de Debian pour les dépôts externes : il écrit le fichier de sources et installe la clé de signature à votre place, après l'avoir vérifiée face à des métadonnées signées. Ce dépôt y est enregistré sous le nom griffo, et le miroir gratuit à vie sous griffo-free ; sur Debian (bookworm, trixie, forky et sid), les commandes ci-dessus constituent donc toute l'installation.

extrepo ne met en place que le fichier de sources et la clé : les identifiants d'un abonnement vont toujours dans /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu n'est pas couvert, car extrepo ne publie de métadonnées que pour les suites Debian : utilisez-y les commandes avec sudo ou en root.

Étape 2 : installer tree-sitter-cli

# Installer le dernier tree-sitter-cli
sudo apt install tree-sitter-cli

# Vérifier l'installation, la commande est tree-sitter et non tree-sitter-cli
tree-sitter --version
# Installer le dernier tree-sitter-cli
apt install tree-sitter-cli

# Vérifier l'installation, la commande est tree-sitter et non tree-sitter-cli
tree-sitter --version

Étape 3 : créer votre première grammaire

# La commande est tree-sitter. Compiler et tester des parseurs demande un compilateur C,
# et generate exécute grammar.js avec node, sauf si vous choisissez le runtime intégré
sudo apt install build-essential nodejs

# Créer le dépôt d'une grammaire en répondant à quelques questions
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Générer le parseur, le compiler et lancer les tests de corpus
tree-sitter generate
tree-sitter build
tree-sitter test

# Les complétions bash, zsh, fish et nushell sont livrées avec le paquet
tree-sitter --help
# La commande est tree-sitter. Compiler et tester des parseurs demande un compilateur C,
# et generate exécute grammar.js avec node, sauf si vous choisissez le runtime intégré
apt install build-essential nodejs

# Créer le dépôt d'une grammaire en répondant à quelques questions
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Générer le parseur, le compiler et lancer les tests de corpus
tree-sitter generate
tree-sitter build
tree-sitter test

# Les complétions bash, zsh, fish et nushell sont livrées avec le paquet
tree-sitter --help

🎯 Exemples d'utilisation de base

Travailler sur une grammaire :

# Régénérer après chaque modification de grammar.js, sans node, avec le QuickJS intégré
tree-sitter generate --js-runtime native

# Lancer uniquement les tests dont le nom correspond, puis accepter la nouvelle sortie comme attendue
tree-sitter test --include 'function'
tree-sitter test --update

# Compiler une bibliothèque partagée, ou un module WebAssembly pour web-tree-sitter
tree-sitter build -o mylang.so
tree-sitter build --wasm

Analyser des fichiers :

# Afficher l'arbre syntaxique d'un fichier
tree-sitter parse examples/hello.mylang

# Analyser de nombreux fichiers sans bruit et indiquer combien ont réussi
tree-sitter parse examples/*.mylang --quiet --stat

# Chronométrer une analyse, utile quand un changement de grammaire ralentit tout
tree-sitter parse examples/big.mylang --time

Requêtes, coloration et tags :

# Exécuter une requête sur un fichier et lister ce qu'elle capture
tree-sitter query queries/highlights.scm examples/hello.mylang

# Colorer un fichier dans le terminal, ou produire une page HTML autonome
tree-sitter highlight examples/hello.mylang
tree-sitter highlight --html examples/hello.mylang > hello.html

# Extraire définitions et références avec la requête de tags
tree-sitter tags examples/hello.mylang

Grammaires existantes et playground :

# Travailler sur une grammaire existante
git clone https://github.com/tree-sitter/tree-sitter-json
cd tree-sitter-json
tree-sitter generate && tree-sitter test

# Créer un fichier de configuration, puis y lister vos grammaires dans parser-directories
tree-sitter init-config

# Compiler en WebAssembly et ouvrir le playground interactif dans le navigateur
tree-sitter build --wasm
tree-sitter playground

🔧 Intégrations avec d'autres outils

La CLI Tree-sitter se place entre une grammaire et les outils qui la chargent :

  • Neovim : la branche main de nvim-treesitter compile les parseurs avec la CLI tree-sitter et demande une version récente, plus récente que celle de Debian stable ou d'Ubuntu LTS
  • Helix : coloration, indentation et objets textuels sont des requêtes Tree-sitter ; vérifiez une modification de highlights.scm avec tree-sitter query avant de recompiler les grammaires avec hx --grammar build
  • Zed : les extensions de langage épinglent un dépôt de grammaire et un commit, donc générez et testez la grammaire en local avant de mettre à jour l'épinglage
  • CI : tree-sitter generate suivi de git diff --exit-code src/ fait échouer une pull request dont le parseur commité n'est plus à jour
  • Registres de paquets : les bindings qu'écrit tree-sitter init permettent de publier la même grammaire sur npm, PyPI et crates.io

🚀 Pourquoi choisir deb.griffo.io ?

📊 Comparatif des dépôts :
  • Debian officiel : fournit tree-sitter-cli, mais Debian 13 en est à 0.22.6, antérieure à l'ABI des parseurs et à la structure tree-sitter.json des grammaires actuelles, et Debian 12 n'a aucun paquet
  • Binaire upstream : à jour, mais les binaires Linux précompilés d'upstream sont liés à glibc 2.39 : ils ne démarrent pas sur Debian 12 ni Ubuntu 22.04, et vivent hors d'apt dans /usr/local/bin
  • cargo ou npm : cargo install tree-sitter-cli exige une toolchain Rust et une compilation complète à chaque mise à jour, et le paquet npm télécharge le même binaire précompilé avec la même exigence glibc
  • deb.griffo.io : dernière version avec mises à jour automatiques

📦 Dépôt de construction du paquet

Les paquets Debian sont construits et maintenus automatiquement dans ce dépôt GitHub :

🔗 Paquets associés

Également disponibles sur deb.griffo.io :

🎯 Parfait pour : écrire la grammaire d'un nouveau langage, garder à jour le parseur et les tests de corpus d'une grammaire existante, tester des requêtes de coloration et d'injection pour Neovim, Helix ou Zed, les jobs de CI qui vérifient qu'un parseur commité est à jour, et les machines sous Debian 12 ou Ubuntu 22.04 où le binaire d'upstream ne démarre pas.

📦 Dernières versions publiées par ce dépôt

❓ Questions fréquentes

tree-sitter-cli est-il dans les dépôts officiels de Debian ?

Oui, mais l'archive officielle de Debian fournit tree-sitter-cli 0.22.6, alors que ce dépôt propose tree-sitter-cli 0.27.0, reconstruit quelques heures après chaque version upstream.

Comment installer le dernier tree-sitter-cli sur Debian ?

Ajoutez le dépôt deb.griffo.io une seule fois (instructions ci-dessus), puis exécutez : sudo apt install tree-sitter-cli. Les nouvelles versions arrivent via le sudo apt upgrade habituel.

Les paquets sont-ils signés et comment sont-ils construits ?

Chaque paquet est signé avec la clé GPG du dépôt (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) et construit à partir des versions upstream dans des dépôts GitHub publics que chacun peut inspecter.

Quelles versions de Debian sont prises en charge ?

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