⚡ 59 Entwickler-Tools, immer aktuell — neue Upstream-Releases landen innerhalb von Stunden in apt. Discord beitreten

📅 Ab ist für den apt-Mirror ein Abo erforderlich. Preise ansehen · 🆓 Es gibt einen für immer kostenlosen Spiegel

Neuestes tree-sitter-cli unter Debian installieren

Tree-sitter-Parser und -Grammatiken auf der Kommandozeile erzeugen, bauen, testen und debuggen

Neueste Version: 0.27.0 · aktualisiert 2026-09-15
QuelleVersion
deb.griffo.io0.27.0 ✅
Offizielles Debian0.22.6 🛑
← Zurück zur Startseite
📌 Installation auf einer bestimmten Version? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

Was ist tree-sitter-cli?

tree-sitter-cli ist das Kommandozeilenwerkzeug zur Entwicklung von Tree-sitter-Parsern. Tree-sitter ist ein Parser-Generator und eine inkrementelle Parsing-Bibliothek: Es baut für eine Quelldatei einen konkreten Syntaxbaum und aktualisiert ihn beim Editieren mit wenig Aufwand — deshalb setzen Neovim, Helix, Zed und GitHub es für Hervorhebung, Faltung, Textobjekte und Code-Navigation ein. Mit der CLI entstehen die Grammatiken: Sie legt ein Grammatik-Repository an, erzeugt aus grammar.js einen C-Parser, kompiliert ihn zu einer Shared Library oder zu WebAssembly, führt Korpus-Tests aus, parst, befragt, hebt hervor und taggt Dateien und startet einen Web-Playground. Es ist ein einzelnes Rust-Binary, und der Befehl, den du tippst, heißt tree-sitter.

🚀 Warum neueste Versionen wichtig sind: Grammatiken hängen eng an der CLI: das aktuelle Parser-ABI, das tree-sitter.json-Layout, das tree-sitter init schreibt, und die eingebaute QuickJS-Laufzeit hinter --js-runtime native kamen alle nach den Versionen, die in den Archiven eingefroren sind. Ein mit einer aktuellen CLI erzeugtes Grammatik-Repository erwartet dieselbe oder eine neuere auf jedem Entwicklerrechner und in der CI. Debian stable mit 0.22.6 und Ubuntu 24.04 mit 0.20.8 sind älter als das meiste davon, und die Linux-Binaries von Upstream brauchen glibc 2.39 — unter Debian 12 oder Ubuntu 22.04 starten sie gar nicht.

⚡ Wichtige Funktionen von tree-sitter-cli

🧱 Grammatik-Repository mit einem Befehl

tree-sitter init stellt ein paar Fragen und schreibt grammar.js, tree-sitter.json sowie Binding- und Paketdateien — die Grammatik lässt sich vom ersten Tag an für Node.js, Python, Rust, Go, Swift und C veröffentlichen.

⚙️ Parser-Erzeugung

tree-sitter generate macht aus grammar.js einen abhängigkeitsfreien C-Parser in src/ und meldet Konflikte. Die Grammatik läuft dabei unter node oder, mit --js-runtime native, unter der eingebauten QuickJS-Laufzeit.

🔨 Native und WebAssembly-Builds

tree-sitter build kompiliert den Parser zu einer Shared Library, die Editoren laden, und --wasm erzeugt ein .wasm-Modul für web-tree-sitter und den Playground.

🧪 Korpus-Tests

tree-sitter test parst die Beispiele unter test/corpus, vergleicht die Bäume mit den erwarteten S-Expressions und führt auch Highlight- und Tag-Tests aus. --update schreibt die Erwartungen nach einer gewollten Änderung neu.

🔍 Parsen, abfragen, hervorheben, taggen

parse gibt den Syntaxbaum aus, query führt eine .scm-Abfrage aus und listet ihre Captures, highlight rendert ins Terminal oder nach HTML, und tags extrahiert Definitionen und Referenzen.

🛝 Web-Playground

tree-sitter playground startet eine lokale Seite: Code eintippen, den Baum beim Editieren mitwachsen sehen und Abfragen darauf ausführen — der schnellste Weg herauszufinden, warum eine Regel nicht greift.

🚀 Immer den offiziellen Archiven voraus: Debian und Ubuntu frieren Paketversionen zum Release-Zeitpunkt ein — dieses Repository veröffentlicht neue Upstream-Releases in der Regel innerhalb weniger Stunden. Ein einfaches apt upgrade hält dich auf der neuesten Version.

📦 Installation aus deb.griffo.io

Befehle ausführen

Schritt 1: Repository hinzufügen

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

🆓 Es gibt einen für immer kostenlosen Spiegel. deb-free.griffo.io liefert Pakete für immer kostenlos — ohne Konto, ohne Abo, höchstens 2 Monate hinter Upstream, Sicherheitsfixes sofort. Derzeit enthält er cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud und Zed; tree-sitter-cli ist nicht dabei, deshalb führt heute nur das Repository oben dorthin — auf Anfrage kann es aufgenommen werden.

So funktioniert der kostenlose Spiegel →

🧩 Zur extrepo-Option. extrepo ist Debians eigenes Werkzeug für externe Repositories: Es legt die Sources-Datei an und installiert den Signaturschlüssel für dich, nachdem es ihn gegen signierte Metadaten geprüft hat. Dieses Repository ist dort als griffo registriert, der für immer kostenlose Spiegel als griffo-free. Unter Debian (bookworm, trixie, forky und sid) sind die Befehle oben damit die gesamte Einrichtung.

extrepo richtet nur die Sources-Datei und den Schlüssel ein; die Zugangsdaten eines Abos gehören weiterhin in /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu wird nicht abgedeckt, denn extrepo veröffentlicht Metadaten nur für Debian-Suites: dort nimmst du die Befehle mit sudo oder als root.

Schritt 2: tree-sitter-cli installieren

# Neuestes tree-sitter-cli installieren
sudo apt install tree-sitter-cli

# Installation prüfen, der Befehl heißt tree-sitter und nicht tree-sitter-cli
tree-sitter --version
# Neuestes tree-sitter-cli installieren
apt install tree-sitter-cli

# Installation prüfen, der Befehl heißt tree-sitter und nicht tree-sitter-cli
tree-sitter --version

Schritt 3: Die erste Grammatik anlegen

# Der Befehl heißt tree-sitter. Parser bauen und testen braucht einen C-Compiler,
# und generate führt grammar.js mit node aus, außer du wählst die eingebaute Laufzeit
sudo apt install build-essential nodejs

# Ein Grammatik-Repository anlegen und ein paar Fragen beantworten
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Parser erzeugen, kompilieren und die Korpus-Tests laufen lassen
tree-sitter generate
tree-sitter build
tree-sitter test

# Die Vervollständigungen für bash, zsh, fish und nushell sind im Paket
tree-sitter --help
# Der Befehl heißt tree-sitter. Parser bauen und testen braucht einen C-Compiler,
# und generate führt grammar.js mit node aus, außer du wählst die eingebaute Laufzeit
apt install build-essential nodejs

# Ein Grammatik-Repository anlegen und ein paar Fragen beantworten
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Parser erzeugen, kompilieren und die Korpus-Tests laufen lassen
tree-sitter generate
tree-sitter build
tree-sitter test

# Die Vervollständigungen für bash, zsh, fish und nushell sind im Paket
tree-sitter --help

🎯 Grundlegende Verwendungsbeispiele

An einer Grammatik arbeiten:

# Nach jeder Änderung an grammar.js neu erzeugen, ohne node, mit dem eingebauten QuickJS
tree-sitter generate --js-runtime native

# Nur die Tests mit passendem Namen ausführen, dann die neue Ausgabe als Erwartung übernehmen
tree-sitter test --include 'function'
tree-sitter test --update

# Eine Shared Library bauen, oder ein WebAssembly-Modul für web-tree-sitter
tree-sitter build -o mylang.so
tree-sitter build --wasm

Dateien parsen:

# Den Syntaxbaum einer Datei ausgeben
tree-sitter parse examples/hello.mylang

# Viele Dateien still parsen und melden, wie viele gelungen sind
tree-sitter parse examples/*.mylang --quiet --stat

# Einen Parse-Lauf stoppen, praktisch, wenn eine Grammatikänderung bremst
tree-sitter parse examples/big.mylang --time

Abfragen, Hervorhebung und Tags:

# Eine Abfrage auf eine Datei anwenden und die Captures auflisten
tree-sitter query queries/highlights.scm examples/hello.mylang

# Eine Datei im Terminal hervorheben oder als eigenständige HTML-Seite rendern
tree-sitter highlight examples/hello.mylang
tree-sitter highlight --html examples/hello.mylang > hello.html

# Definitionen und Referenzen mit der Tags-Abfrage extrahieren
tree-sitter tags examples/hello.mylang

Bestehende Grammatiken und der Playground:

# An einer bestehenden Grammatik arbeiten
git clone https://github.com/tree-sitter/tree-sitter-json
cd tree-sitter-json
tree-sitter generate && tree-sitter test

# Eine Konfigurationsdatei schreiben und die Grammatik-Checkouts unter parser-directories eintragen
tree-sitter init-config

# Nach WebAssembly bauen und den interaktiven Playground im Browser öffnen
tree-sitter build --wasm
tree-sitter playground

🔧 Tool-Integrationen

Die Tree-sitter-CLI sitzt zwischen einer Grammatik und den Werkzeugen, die sie laden:

  • Neovim: der main-Zweig von nvim-treesitter kompiliert Parser mit der tree-sitter-CLI und verlangt ein aktuelles Release, neuer als das, was Debian stable oder Ubuntu LTS mitbringen
  • Helix: Hervorhebung, Einrückung und Textobjekte sind Tree-sitter-Abfragen; eine Änderung an highlights.scm prüfst du mit tree-sitter query, bevor du die Grammatiken mit hx --grammar build neu baust
  • Zed: Spracherweiterungen pinnen ein Grammatik-Repository und einen Commit — die Grammatik also lokal erzeugen und testen, bevor der Pin angehoben wird
  • CI: tree-sitter generate gefolgt von git diff --exit-code src/ lässt einen Pull Request scheitern, dessen eingecheckter Parser veraltet ist
  • Paket-Registries: mit den Bindings, die tree-sitter init schreibt, geht dieselbe Grammatik zu npm, PyPI und crates.io

🚀 Warum deb.griffo.io?

📊 Repository-Vergleich:
  • Offizielles Debian: liefert tree-sitter-cli, aber Debian 13 hat 0.22.6, älter als das Parser-ABI und das tree-sitter.json-Layout aktueller Grammatiken, und Debian 12 hat gar kein Paket
  • Upstream-Binary: aktuell, aber die vorkompilierten Linux-Binaries von Upstream sind gegen glibc 2.39 gelinkt, starten also nicht unter Debian 12 oder Ubuntu 22.04, und sie liegen an apt vorbei in /usr/local/bin
  • cargo oder npm: cargo install tree-sitter-cli braucht eine Rust-Toolchain und bei jedem Upgrade einen kompletten Build, und das npm-Paket lädt dasselbe vorkompilierte Binary mit derselben glibc-Anforderung
  • deb.griffo.io: neueste Version mit automatischen Updates

📦 Paket-Build-Repository

Die Debian-Pakete werden in diesem GitHub-Repository automatisch gebaut und gepflegt:

🔗 Verwandte Pakete

Ebenfalls verfügbar über deb.griffo.io:

🎯 Ideal für: eine Grammatik für eine neue Sprache schreiben, Parser und Korpus-Tests einer bestehenden Grammatik aktuell halten, Highlight- und Injection-Abfragen für Neovim, Helix oder Zed testen, CI-Jobs, die prüfen, ob ein eingecheckter Parser aktuell ist — und Rechner mit Debian 12 oder Ubuntu 22.04, auf denen das Binary von Upstream nicht startet.

📦 Neueste Releases aus diesem Repository

❓ Häufig gestellte Fragen

Ist tree-sitter-cli in den offiziellen Debian-Paketquellen?

Ja, aber das offizielle Debian-Archiv liefert tree-sitter-cli 0.22.6, während dieses Repository tree-sitter-cli 0.27.0 bereitstellt, wenige Stunden nach jedem Upstream-Release neu gebaut.

Wie installiere ich das neueste tree-sitter-cli unter Debian?

Fügen Sie das deb.griffo.io-Repository einmalig hinzu (Anleitung oben) und führen Sie dann aus: sudo apt install tree-sitter-cli. Neue Releases kommen über das normale sudo apt upgrade.

Sind die Pakete signiert und wie werden sie gebaut?

Jedes Paket ist mit dem GPG-Schlüssel des Repositories (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) signiert und wird aus Upstream-Releases in öffentlichen GitHub-Repositories gebaut, die jeder einsehen kann.

Welche Debian-Versionen werden unterstützt?

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