Zaru CLI: cosa fa e come installarla, dal suo README
Anche in: English, Español, Português, 日本語, Deutsch, Français, 한국어, 简体中文, हिन्दी · Tutte le guide in italiano
Trasparenza: Zaru è sviluppato da 100monkeys AI, Inc., quindi leggete questa guida come il resoconto di chi lo costruisce. L'ha scritta in bozza uno dei nostri agenti di IA a partire dal README di zaru-cli sul branch main, letto il 28 ottobre 2026, e l'azienda l'ha rivista; questa edizione italiana è una traduzione della guida originale in inglese. Ogni comando qui sotto è copiato da quel README, e le citazioni restano in inglese con la traduzione accanto. Dove il README non risponde a una domanda, lo diciamo invece di inventare.
Il README in una riga: "Zaru is an AI assistant that works in your terminal. You give it a task, it asks a language model, and it runs the tools the model asks for: it reads and edits files, runs commands and fetches web pages, asking your permission first." (Zaru è un assistente di IA che lavora nel vostro terminale. Gli date un compito, interroga un modello linguistico ed esegue gli strumenti che il modello chiede: legge e modifica file, esegue comandi e scarica pagine web, chiedendo prima il vostro permesso.) Ogni passo finisce in una trascrizione in testo semplice che potete leggere con cat.
Sa a che punto è
Il README lo dice chiaramente: "It is pre-alpha: there are no releases and no packages, you build it from source, and commands, files and settings can change without notice." (È in pre-alfa: non ci sono release né pacchetti, si compila dal sorgente, e comandi, file e impostazioni possono cambiare senza preavviso.) È open source con licenza Apache-2.0. Non è nemmeno una sandbox: "Zaru acts on your machine with your user account's permissions." (Zaru agisce sulla vostra macchina con i permessi del vostro account utente.) Leggete la sezione Safety del README prima di puntarlo su qualcosa a cui tenete.
Passo 1. Verificate i requisiti
- Linux. "does not build on Windows" (non si compila su Windows), e macOS "is not tested" (non è testato).
- Rust 1.98.1, fissato in
rust-toolchain.toml;rustuplo installa alla prima compilazione. - Un compilatore C (
cc) e accesso di rete a crates.io per la prima compilazione. - Un modello: una chiave API di Google Gemini, un server Ollama o qualsiasi server con un'API chat completions compatibile con OpenAI.
Passo 2. Compilate e installate
git clone https://github.com/100monkeys-ai/zaru-cli.git
cd zaru-cli
cargo install --path crates/zaru-cli --locked
Questo mette zaru in ~/.cargo/bin. Eseguite zaru --version per verificare che funzioni.
Passo 3. Scegliete un modello
"Zaru has no default model." (Zaru non ha un modello predefinito.) Siete voi a creare ~/.zaru/config.toml. Per Gemini, salvate la chiave (viene letta dallo standard input: incollatela, premete Invio e poi Ctrl-D) e indicate il modello:
zaru providers keys add gemini
[model]
default = "gemini-3.6-flash"
Le chiavi salvate sono cifrate con una chiave conservata nel portachiavi del sistema operativo. Su una macchina senza portachiavi, come un server, WSL o un container, impostate ZARU_CREDENTIAL_KEY a 64 caratteri esadecimali minuscoli e conservate quel valore, perché "without it, the keys you stored cannot be read again." (senza di esso, le chiavi salvate non si possono più leggere). Per Ollama non serve una chiave: mettete kind = "ollama" sotto [provider.default] e Zaru si collega a http://localhost:11434. Per un server compatibile con OpenAI, mettete kind = "openai-compatible" e il suo endpoint, più context_tokens se l'elenco dei modelli del server non indica la finestra.
Passo 4. Eseguite un compito
zaru "read src/main.rs and tell me what it does"
Eseguitelo dalla directory in cui volete che lavori. Mostra l'avviso che non è una sandbox, ogni chiamata a strumento con ciò che ha fatto, la risposta, i token "counted by the provider" (contati dal provider) e una nota sui validatori. zaru senza argomenti apre invece una sessione interattiva; zaru --continue riapre l'ultima nella directory corrente.
Passo 5. Rispondete alle richieste di permesso
Prima di scrivere un file, modificarlo, eseguire un comando o scaricare una pagina, Zaru mostra cosa farà la chiamata e chiede [y/N/a ...]. y la permette una volta, a permette la stessa chiamata per la sessione, e N, Invio o Esc dicono di no mentre il compito continua. Ctrl-C ferma l'intero compito. Uno scaricamento mostra l'URL completo, "because a URL can carry data off your machine" (perché un URL può portare dati fuori dalla vostra macchina). Se non c'è un terminale in cui chiedere, la chiamata è rifiutata. La modalità predefinita è ask; allow salta ciò che è nella vostra allowlist, e yolo non chiede nulla, cosa che il README dice di usare "only for a directory and a task you trust entirely." (solo per una directory e un compito di cui vi fidate completamente).
Passo 6. Leggete la trascrizione
zaru sessions list
cat ~/.zaru/sessions/<id>/transcript.jsonl
Un oggetto JSON per riga: il vostro compito, ogni risposta del modello e le chiamate a strumenti che ha chiesto, se ogni chiamata è stata permessa, ciò che ha restituito "exactly as the model was given it" (esattamente come è stato dato al modello) e la risposta. Chiavi e token salvati vengono sostituiti da un segnaposto prima che venga scritto qualcosa.
Passo 7. Aggiungete un validatore
zaru init scrive un ./zaru.toml di esempio. Un validatore è un comando che controlla il lavoro del modello:
[[validator]]
name = "test"
run = "cargo test"
expect = "exit-zero"
Con dei validatori dichiarati, un compito diventa un ciclo: il modello cambia qualcosa, i validatori girano e un fallimento torna al modello, finché passano tutti o si raggiunge runtime.max_iterations. I validatori girano solo dopo che li avete approvati, e vi viene richiesto di nuovo quando cambiano; "the permission mode does not skip it." (la modalità dei permessi non salta quella domanda).
Cosa non fa ancora
- Funzionano solo tre tipi di provider:
gemini,ollamaeopenai-compatible. "anthropicandaegisare recognised but have no client." (anthropiceaegissono riconosciuti ma non hanno un client.) - I livelli di runtime
containedelinked"can be selected but are not built yet" (si possono scegliere ma non sono ancora realizzati): le chiamate a strumenti girano direttamente sulla vostra macchina a ogni livello. zaru learnedezaru inboxsono segnaposto.
Cosa il README lascia aperto
- Quando arriveranno la prima release o il primo pacchetto. Il README dice solo che non ce ne sono.
- Come le sessioni della CLI si collegano alle conversazioni dell'app web su ask.myzaru.com. Il README tratta una connessione a Carbon Forge (
zaru notes tokens add), ma non l'app web. - Quali altri nomi di modelli Gemini funzionano. Il README ne mostra uno.
Guide correlate
- What Zaru shows you about every step it takes, and how to stop one (in inglese), la stessa idea nell'app web.
- Domande frequenti su Zaru
Volete Zaru senza compilare niente? L'app web è gratuita: "Your name and email. That is all it asks." (Il vostro nome e la vostra email. È tutto ciò che chiede.)