⚡ 59 ferramentas de desenvolvimento, sempre atualizadas — cada nova versão upstream chega ao apt em poucas horas. Entre no Discord

📅 A partir de , o mirror apt exigirá uma assinatura. Ver preços · 🆓 Existe um espelho grátis para sempre

Instalar o tree-sitter-cli mais recente no Debian

Gere, compile, teste e depure parsers e gramáticas do Tree-sitter pela linha de comando

Última versão: 0.27.0 · atualizado em 2026-09-15
FonteVersão
deb.griffo.io0.27.0 ✅
Debian oficial0.22.6 🛑
← Voltar ao início
📌 Instalando em uma versão específica? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

O que é o tree-sitter-cli?

O tree-sitter-cli é a ferramenta de linha de comando para desenvolver parsers do Tree-sitter. O Tree-sitter é um gerador de parsers e uma biblioteca de análise incremental: ele constrói a árvore sintática concreta de um arquivo-fonte e a atualiza com pouco custo enquanto você edita, e é por isso que Neovim, Helix, Zed e GitHub o usam para destaque de sintaxe, dobramento, objetos de texto e navegação de código. As gramáticas nascem nessa CLI: ela cria o repositório de uma gramática, gera um parser em C a partir do grammar.js, compila esse parser como biblioteca compartilhada ou WebAssembly, roda os testes de corpus, analisa, consulta, destaca e extrai tags de arquivos, e sobe um playground web. É um único binário em Rust, e o comando que você digita é tree-sitter.

🚀 Por que a versão mais recente importa: as gramáticas acompanham a CLI de perto: o ABI atual dos parsers, a estrutura do tree-sitter.json que o tree-sitter init escreve e o runtime QuickJS embutido por trás de --js-runtime native chegaram todos depois das versões congeladas nos arquivos oficiais. Um repositório de gramática gerado com uma CLI atual espera a mesma versão ou uma mais nova na máquina de cada colaborador e na CI. O 0.22.6 do Debian stable e o 0.20.8 do Ubuntu 24.04 são anteriores a quase tudo isso, e os binários Linux do upstream exigem glibc 2.39, então nem chegam a iniciar no Debian 12 ou no Ubuntu 22.04.

⚡ Principais recursos do tree-sitter-cli

🧱 Repositório de gramática em um comando

O tree-sitter init faz algumas perguntas e escreve grammar.js, tree-sitter.json e os arquivos de bindings e de pacote, então a gramática já pode ser publicada para Node.js, Python, Rust, Go, Swift e C desde o primeiro dia.

⚙️ Geração de parsers

O tree-sitter generate transforma o grammar.js em um parser C sem dependências em src/ e aponta os conflitos. A gramática roda com node ou, com --js-runtime native, com o runtime QuickJS embutido.

🔨 Builds nativos e WebAssembly

O tree-sitter build compila o parser como biblioteca compartilhada que os editores carregam, e --wasm produz um módulo .wasm para o web-tree-sitter e o playground.

🧪 Testes de corpus

O tree-sitter test analisa os exemplos em test/corpus, compara as árvores com as S-expressions esperadas e roda também os testes de destaque e de tags. O --update reescreve o esperado depois de uma mudança intencional.

🔍 Analisar, consultar, destacar, extrair tags

parse imprime a árvore sintática, query executa uma consulta .scm e lista as capturas, highlight renderiza no terminal ou em HTML, e tags extrai definições e referências.

🛝 Playground web

O tree-sitter playground serve uma página local onde você digita código, vê a árvore se atualizar enquanto edita e roda consultas nela: o jeito mais rápido de entender por que uma regra não casa.

🚀 Sempre à frente dos arquivos oficiais: Debian e Ubuntu congelam as versões dos pacotes quando lançam uma release — este repositório publica novas versões upstream normalmente em poucas horas. Um simples apt upgrade mantém você na versão mais recente.

📦 Instalação a partir do deb.griffo.io

Executar os comandos

Passo 1: Adicionar o repositório

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 um espelho grátis para sempre. deb-free.griffo.io distribui pacotes grátis para sempre — sem conta, sem assinatura, no máximo 2 meses atrás do upstream, correções de segurança imediatas. Hoje ele traz cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud e Zed; tree-sitter-cli não está entre elas, então o repositório acima é a única forma de instalar hoje — peça e ela pode ser adicionada.

Como funciona o espelho gratuito →

🧩 Sobre a opção extrepo. extrepo é a ferramenta do próprio Debian para repositórios externos: ela escreve o arquivo de sources e instala a chave de assinatura para você, conferindo a chave contra metadados assinados antes de usá-la. Este repositório está registrado nela como griffo, e o espelho gratuito para sempre como griffo-free, então no Debian (bookworm, trixie, forky e sid) os comandos acima são toda a configuração.

O extrepo configura apenas o arquivo de sources e a chave: as credenciais de uma assinatura continuam indo em /etc/apt/auth.conf.d/deb.griffo.io.conf. O Ubuntu não é coberto, porque o extrepo publica metadados só para as suítes do Debian: lá, use os comandos com sudo ou como root.

Passo 2: Instalar o tree-sitter-cli

# Instalar o tree-sitter-cli mais recente
sudo apt install tree-sitter-cli

# Verificar a instalação, o comando é tree-sitter e não tree-sitter-cli
tree-sitter --version
# Instalar o tree-sitter-cli mais recente
apt install tree-sitter-cli

# Verificar a instalação, o comando é tree-sitter e não tree-sitter-cli
tree-sitter --version

Passo 3: Criar sua primeira gramática

# O comando é tree-sitter. Compilar e testar parsers exige um compilador C,
# e o generate roda o grammar.js com node, a não ser que você escolha o runtime embutido
sudo apt install build-essential nodejs

# Criar o repositório de uma gramática respondendo a algumas perguntas
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Gerar o parser, compilar e rodar os testes de corpus
tree-sitter generate
tree-sitter build
tree-sitter test

# Os autocompletes de bash, zsh, fish e nushell vêm no pacote
tree-sitter --help
# O comando é tree-sitter. Compilar e testar parsers exige um compilador C,
# e o generate roda o grammar.js com node, a não ser que você escolha o runtime embutido
apt install build-essential nodejs

# Criar o repositório de uma gramática respondendo a algumas perguntas
mkdir tree-sitter-mylang && cd tree-sitter-mylang
tree-sitter init

# Gerar o parser, compilar e rodar os testes de corpus
tree-sitter generate
tree-sitter build
tree-sitter test

# Os autocompletes de bash, zsh, fish e nushell vêm no pacote
tree-sitter --help

🎯 Exemplos básicos de uso

Trabalhando em uma gramática:

# Regerar a cada mudança no grammar.js, sem node, com o QuickJS embutido
tree-sitter generate --js-runtime native

# Rodar só os testes cujo nome casa e aceitar a nova saída como esperada
tree-sitter test --include 'function'
tree-sitter test --update

# Compilar uma biblioteca compartilhada, ou um módulo WebAssembly para o web-tree-sitter
tree-sitter build -o mylang.so
tree-sitter build --wasm

Analisando arquivos:

# Imprimir a árvore sintática de um arquivo
tree-sitter parse examples/hello.mylang

# Analisar muitos arquivos em silêncio e informar quantos deram certo
tree-sitter parse examples/*.mylang --quiet --stat

# Cronometrar uma análise, útil quando uma mudança na gramática deixa tudo lento
tree-sitter parse examples/big.mylang --time

Consultas, destaque e tags:

# Rodar uma consulta sobre um arquivo e listar o que ela captura
tree-sitter query queries/highlights.scm examples/hello.mylang

# Destacar um arquivo no terminal, ou gerar uma página HTML independente
tree-sitter highlight examples/hello.mylang
tree-sitter highlight --html examples/hello.mylang > hello.html

# Extrair definições e referências com a consulta de tags
tree-sitter tags examples/hello.mylang

Gramáticas existentes e o playground:

# Trabalhar em uma gramática existente
git clone https://github.com/tree-sitter/tree-sitter-json
cd tree-sitter-json
tree-sitter generate && tree-sitter test

# Criar um arquivo de configuração e listar suas gramáticas em parser-directories
tree-sitter init-config

# Compilar para WebAssembly e abrir o playground interativo no navegador
tree-sitter build --wasm
tree-sitter playground

🔧 Integrações com outras ferramentas

A CLI do Tree-sitter fica entre uma gramática e as ferramentas que a carregam:

  • Neovim: o branch main do nvim-treesitter compila os parsers com a CLI tree-sitter e pede uma versão recente, mais nova que a do Debian stable ou do Ubuntu LTS
  • Helix: destaque, indentação e objetos de texto são consultas do Tree-sitter; confira uma mudança em highlights.scm com tree-sitter query antes de recompilar as gramáticas com hx --grammar build
  • Zed: as extensões de linguagem fixam um repositório de gramática e um commit, então gere e teste a gramática localmente antes de atualizar essa referência
  • CI: tree-sitter generate seguido de git diff --exit-code src/ reprova um pull request cujo parser commitado está desatualizado
  • Registros de pacotes: os bindings que o tree-sitter init escreve permitem publicar a mesma gramática no npm, PyPI e crates.io

🚀 Por que escolher o deb.griffo.io?

📊 Comparativo de repositórios:
  • Debian oficial: traz o tree-sitter-cli, mas o Debian 13 tem a 0.22.6, anterior ao ABI de parsers e à estrutura de tree-sitter.json que as gramáticas atuais usam, e o Debian 12 não tem pacote nenhum
  • Binário upstream: atual, mas os binários Linux pré-compilados do upstream são linkados contra a glibc 2.39, então não iniciam no Debian 12 nem no Ubuntu 22.04, e ficam fora do apt em /usr/local/bin
  • cargo ou npm: cargo install tree-sitter-cli exige uma toolchain Rust e uma compilação completa a cada atualização, e o pacote do npm baixa o mesmo binário pré-compilado, com a mesma exigência de glibc
  • deb.griffo.io: versão mais recente com atualizações automáticas

📦 Repositório de build do pacote

Os pacotes Debian são construídos e mantidos automaticamente neste repositório do GitHub:

🔗 Pacotes relacionados

Também disponíveis no deb.griffo.io:

🎯 Perfeito para: escrever a gramática de uma linguagem nova, manter em dia o parser e os testes de corpus de uma gramática existente, testar consultas de destaque e injeção para Neovim, Helix ou Zed, jobs de CI que verificam se o parser commitado está atualizado, e máquinas com Debian 12 ou Ubuntu 22.04 onde o binário do upstream não inicia.

📦 Últimos lançamentos deste repositório

❓ Perguntas frequentes

O tree-sitter-cli está nos repositórios oficiais do Debian?

Sim, mas o arquivo oficial do Debian traz tree-sitter-cli 0.22.6, enquanto este repositório oferece tree-sitter-cli 0.27.0, recompilado poucas horas após cada lançamento upstream.

Como instalo o tree-sitter-cli mais recente no Debian?

Adicione o repositório deb.griffo.io uma única vez com as instruções acima e execute: sudo apt install tree-sitter-cli. Novos lançamentos chegam pelo sudo apt upgrade normal.

Os pacotes são assinados e como são construídos?

Cada pacote é assinado com a chave GPG do repositório (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) e construído a partir de lançamentos upstream em repositórios públicos do GitHub que qualquer pessoa pode inspecionar.

Quais versões do Debian são suportadas?

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