<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CLI - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/cli/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Sat, 27 Jun 2026 12:46:32 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>CLI - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>RTK CLI: come tagliare l&#039;80% dei token sugli AI agent</title>
		<link>https://www.mrtux.it/rtk-cli-ridurre-token-ai-agent</link>
					<comments>https://www.mrtux.it/rtk-cli-ridurre-token-ai-agent#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sat, 27 Jun 2026 09:25:16 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[AI agent]]></category>
		<category><![CDATA[claude-code]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[developer productivity]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[rust]]></category>
		<category><![CDATA[token saving]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/rtk-cli-come-tagliare-l80-dei-token-sugli-ai-agent</guid>

					<description><![CDATA[RTK è un proxy CLI in Rust che filtra e comprime l'output dei comandi più comuni prima che raggiunga il context di Claude Code, Codex, Cursor e altri AI agent. Risparmio reale tra il 60% e il 90% di token su git, cargo, npm test, docker, kubectl e molto altro. Ecco come installarlo, integrarlo con il tuo agent e misurarne il guadagno.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Quando un AI agent come Claude Code o Codex lancia <code>git status</code>, <code>cargo test</code> o <code>docker ps</code>, il context window si riempie di output rumoroso: enumerazioni di oggetti, stack trace completi, log duplicati, tabelle ASCII. <strong>RTK</strong> (Rust Token Killer) è un proxy CLI scritto in Rust che intercetta quei comandi, li filtra e ne restituisce solo l'informazione essenziale — il resto finisce su disco, recuperabile quando serve.</p>



<p class="wp-block-paragraph">Il risultato, misurato dagli autori del progetto su un tipico progetto TypeScript/Rust di medie dimensioni, è un taglio tra il 60% e il 92% dei token consumati per i comandi più frequenti. In una sessione di sviluppo reale parliamo di decine di migliaia di token risparmiati al giorno, e di context window che resta utilizzabile molto più a lungo.</p>



<h2 class="wp-block-heading" id="che-cosa-fa-rtk">Che cosa fa RTK, in pratica</h2>



<p class="wp-block-paragraph">RTK non è un wrapper generico: è una collezione di filtri specifici per ognuno dei comandi più usati in un workflow di sviluppo. Per ogni comando applica una o più di queste strategie:</p>



<ul class="wp-block-list">
<li><strong>Smart filtering</strong> — rimuove commenti, whitespace, boilerplate, header ripetitivi (per esempio le righe <code>Enumerating objects</code> di Git).</li>
<li><strong>Grouping</strong> — aggrega elementi simili (file per directory, errori per tipo, log duplicati con contatore).</li>
<li><strong>Truncation</strong> — mantiene il contesto rilevante e taglia la ridondanza, conservando però l'output completo su file.</li>
<li><strong>Deduplication</strong> — comprime le righe di log ripetute con un contatore (<code>×142</code>).</li>
</ul>



<p class="wp-block-paragraph">Tecnicamente RTK è un singolo binario Rust statico, zero dipendenze di runtime, overhead inferiore ai 10 millisecondi per chiamata. Supporta oltre 100 comandi divisi per categoria:</p>



<ul class="wp-block-list">
<li><strong>File system:</strong> <code>rtk ls</code>, <code>rtk read</code>, <code>rtk grep</code>, <code>rtk find</code>, <code>rtk smart</code>.</li>
<li><strong>Git:</strong> <code>rtk git status</code>, <code>rtk git diff</code>, <code>rtk git log</code>, <code>rtk git commit</code>, <code>rtk git push</code>.</li>
<li><strong>GitHub CLI:</strong> <code>rtk gh pr list</code>, <code>rtk gh pr view</code>, <code>rtk gh issue list</code>.</li>
<li><strong>Test runner:</strong> <code>rtk jest</code>, <code>rtk vitest</code>, <code>rtk pytest</code>, <code>rtk cargo test</code>, <code>rtk go test</code>, <code>rtk rspec</code>.</li>
<li><strong>Linter e build:</strong> <code>rtk lint</code>, <code>rtk tsc</code>, <code>rtk next build</code>, <code>rtk cargo build</code>, <code>rtk ruff check</code>.</li>
<li><strong>Container e cloud:</strong> <code>rtk docker ps</code>, <code>rtk kubectl logs</code>, <code>rtk aws ec2 describe-instances</code>.</li>
<li><strong>Utility:</strong> <code>rtk gain</code> (statistiche risparmio), <code>rtk discover</code>, <code>rtk proxy</code>, <code>rtk err</code>.</li>
</ul>



<h2 class="wp-block-heading" id="quanto-si-risparmia">Quanto si risparmia davvero</h2>



<p class="wp-block-paragraph">I numeri riportati nel README ufficiale derivano da un progetto reale di medie dimensioni (TypeScript + Rust). Ecco i comandi più usati con il relativo taglio di token:</p>



<figure class="wp-block-table"><table><thead><tr><th>Comando</th><th>Frequenza/giorno</th><th>Token standard</th><th>Token con RTK</th><th>Risparmio</th></tr></thead><tbody><tr><td>ls / tree</td><td>10×</td><td>2.000</td><td>400</td><td>-80%</td></tr><tr><td>cat / read</td><td>20×</td><td>40.000</td><td>12.000</td><td>-70%</td></tr><tr><td>grep / rg</td><td>8×</td><td>16.000</td><td>3.200</td><td>-80%</td></tr><tr><td>git status</td><td>10×</td><td>3.000</td><td>600</td><td>-80%</td></tr><tr><td>git diff</td><td>5×</td><td>10.000</td><td>2.500</td><td>-75%</td></tr><tr><td>git log</td><td>5×</td><td>2.500</td><td>500</td><td>-80%</td></tr><tr><td>git add/commit/push</td><td>8×</td><td>1.600</td><td>120</td><td>-92%</td></tr><tr><td>cargo test / npm test</td><td>5×</td><td>25.000</td><td>2.500</td><td>-90%</td></tr><tr><td>ruff check</td><td>3×</td><td>3.000</td><td>600</td><td>-80%</td></tr><tr><td>pytest</td><td>4×</td><td>8.000</td><td>800</td><td>-90%</td></tr><tr><td>go test</td><td>3×</td><td>6.000</td><td>600</td><td>-90%</td></tr><tr><td>docker ps</td><td>3×</td><td>900</td><td>180</td><td>-80%</td></tr><tr><td><strong>Totale stimato</strong></td><td>—</td><td><strong>~118.000</strong></td><td><strong>~23.900</strong></td><td><strong>-80%</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Il risparmio aggregato è circa l'80% del context speso in interazioni con la shell. Su un mese di lavoro intensivo parliamo di milioni di token, e — con i prezzi correnti delle API — di dollari risparmiati in modo trasparente, senza cambiare una riga di codice.</p>



<h2 class="wp-block-heading" id="installazione">Installazione: 30 secondi</h2>



<p class="wp-block-paragraph">RTK si installa come un singolo binario in <code>~/.local/bin</code>. Tre opzioni equivalenti, scegli quella più adatta al tuo sistema.</p>



<p class="wp-block-paragraph">La via più rapida su macOS è Homebrew:</p>



<pre class="wp-block-code"><code># installa RTK via Homebrew
brew install rtk</code></pre>



<p class="wp-block-paragraph">Su Linux o WSL funziona meglio lo script ufficiale, che scarica direttamente dal ramo <code>master</code>:</p>



<pre class="wp-block-code"><code># installa RTK da release ufficiale
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh</code></pre>



<p class="wp-block-paragraph">Se preferisci compilare dai sorgenti, basta Cargo:</p>



<pre class="wp-block-code"><code># build locale dal repository
cargo install --git https://github.com/rtk-ai/rtk</code></pre>



<p class="wp-block-paragraph">Al termine verifica che il binario sia raggiungibile e funzioni:</p>



<pre class="wp-block-code"><code># verifica installazione
rtk --version
rtk gain</code></pre>



<p class="wp-block-paragraph">Se <code>rtk</code> non è in <code>PATH</code>, aggiungi questa riga al tuo <code>~/.bashrc</code> o <code>~/.zshrc</code>:</p>



<pre class="wp-block-code"><code># rendi rtk disponibile in ogni shell
export PATH="$HOME/.local/bin:$PATH"</code></pre>



<p class="wp-block-paragraph">Un avvertimento importante: esiste un altro crate pubblicato su crates.io con lo stesso nome (<em>Rust Type Kit</em>). Se <code>rtk gain</code> non produce statistiche di risparmio token, hai preso il pacchetto sbagliato. In quel caso disinstallalo e usa <code>cargo install --git</code> come mostrato sopra.</p>



<h2 class="wp-block-heading" id="integrazione-con-claude-code">Integrazione con Claude Code e gli altri agent</h2>



<p class="wp-block-paragraph">Qui sta la parte più elegante: RTK non richiede di riscrivere le istruzioni di sistema o di cambiare il prompt del tuo agent. Espone un comando <code>init</code> che installa un hook trasparente sulle chiamate Bash. Quando Claude Code esegue <code>git status</code>, l'hook lo riscrive in <code>rtk git status</code> prima di passarlo alla shell.</p>



<p class="wp-block-paragraph">Per Claude Code, Copilot, Gemini CLI, Codex e gli altri agent principali basta un comando:</p>



<pre class="wp-block-code"><code># inizializza hook globale per i principali agent
rtk init -g
rtk init -g --gemini
rtk init -g --codex
rtk init -g --agent cursor
rtk init -g --agent windsurf</code></pre>



<p class="wp-block-paragraph">Per agent con plugin dedicato come Cline, Kilo Code, Antigravity e Hermes ci sono flag specifici:</p>



<pre class="wp-block-code"><code># init per agent con regole project-scoped
rtk init --agent cline
rtk init --agent kilocode
rtk init --agent antigravity
rtk init --agent hermes</code></pre>



<p class="wp-block-paragraph">Supporta complessivamente 14 tra AI agent e IDE — la matrice completa è nel README del progetto. Per OpenClaw esiste un plugin dedicato installabile con <code>openclaw plugins install ./openclaw</code> dalla root del repository.</p>



<p class="wp-block-paragraph">Limite importante: l'hook intercetta solo le chiamate al tool Bash. I tool nativi di Claude Code come <code>Read</code>, <code>Grep</code> e <code>Glob</code> non passano dall'hook, quindi non vengono riscritti automaticamente. Per ottenere l'output compatto in quei casi devi invocare direttamente <code>rtk read</code>, <code>rtk grep</code> o <code>rtk find</code>.</p>



<h2 class="wp-block-heading" id="flusso-di-funzionamento">Il flusso, visto da vicino</h2>



<p class="wp-block-paragraph">Quando l'hook è attivo, ogni comando shell segue questo percorso:</p>



<ol class="wp-block-list">
<li>L'agent genera una chiamata Bash (es. <code>git status</code>).</li>
<li>L'hook PreToolUse riscrive il comando in <code>rtk git status</code>.</li>
<li>La shell esegue il comando, che produce output raw (~2.000 token).</li>
<li>RTK filtra l'output in tempo reale, mantenendo solo l'essenziale (~200 token).</li>
<li>L'agent riceve l'output compatto e prosegue.</li>
</ol>



<p class="wp-block-paragraph">L'overhead per il filtro è inferiore ai 10 ms — impercettibile per l'utente, trasparente per l'agent. In caso di errore, RTK salva automaticamente l'output completo non filtrato in <code>~/.local/share/rtk/tee/&lt;timestamp&gt;_&lt;cmd&gt;.log</code>, così l'LLM può leggere i dettagli senza rieseguire il comando.</p>



<h2 class="wp-block-heading" id="esempi-pratici">Esempi pratici, prima e dopo</h2>



<p class="wp-block-paragraph">Una <code>ls -la</code> tipica produce 45 righe e circa 800 token. Con <code>rtk ls</code> la stessa directory diventa 12 righe compatte:</p>



<pre class="wp-block-code"><code># output RTK di una directory di progetto
+-- src/ (8 files)
|   +-- main.rs
|   +-- lib.rs
+-- Cargo.toml
+-- README.md</code></pre>



<p class="wp-block-paragraph">Un <code>git push</code> standard restituisce 15 righe e ~200 token (Enumerating, Counting, Delta compression…). Con <code>rtk git push</code>:</p>



<pre class="wp-block-code"><code># output compresso di un push Git
ok main</code></pre>



<p class="wp-block-paragraph">Una suite di test <code>cargo test</code> in fallimento può produrre 200+ righe. Con <code>rtk test cargo test</code> ottieni solo i test rossi:</p>



<pre class="wp-block-code"><code># riepilogo failure-only
FAILED: 2/15 tests
test utils::test_parse ... ok
test_edge_case: assertion failed
test utils::test_format ... ok
test_overflow: panic at utils.rs:18</code></pre>



<p class="wp-block-paragraph">Per il wrapping generico su qualsiasi comando, ci sono <code>rtk err &lt;cmd&gt;</code> (filtra solo gli errori) e <code>rtk test &lt;cmd&gt;</code> (filtra solo i fallimenti). Se invece vuoi mantenere l'output raw ma tracciare il risparmio, usa <code>rtk proxy</code>.</p>



<h2 class="wp-block-heading" id="misurare-il-risparmio">Misurare il risparmio con rtk gain</h2>



<p class="wp-block-paragraph">Una volta che l'hook è attivo, ogni chiamata viene conteggiata. Il comando <code>rtk gain</code> mostra le statistiche aggregate:</p>



<pre class="wp-block-code"><code># statistiche aggregate di risparmio
rtk gain

# grafico ASCII degli ultimi 30 giorni
rtk gain --graph

# cronologia dei comandi recenti
rtk gain --history

# breakdown giornaliero
rtk gain --daily

# export JSON per dashboard
rtk gain --all --format json</code></pre>



<p class="wp-block-paragraph"><code>rtk discover</code> fa il passo opposto: trova opportunità di risparmio che stai perdendo, ad esempio comandi per cui non esiste ancora un filtro e che vengono passati raw all'agent.</p>



<pre class="wp-block-code"><code># scopri risparmi mancanti in tutti i progetti
rtk discover --all --since 7</code></pre>



<h2 class="wp-block-heading" id="configurazione">Configurazione mirata</h2>



<p class="wp-block-paragraph">Il file di configurazione globale vive in <code>~/.config/rtk/config.toml</code> (su macOS: <code>~/Library/Application Support/rtk/config.toml</code>). Le opzioni più utili riguardano l'esclusione di comandi specifici dal rewriting e la gestione del salvataggio dell'output completo:</p>



<pre class="wp-block-code"><code># config.toml di esempio
[hooks]
exclude_commands = ["curl", "playwright"]

[tee]
enabled = true
mode = "failures"</code></pre>



<p class="wp-block-paragraph">La sezione <code>[tee]</code> controlla se e quando salvare l'output non filtrato. Con <code>mode = "failures"</code> (default), il file viene scritto solo quando il comando fallisce — l'LLM può quindi leggere il contesto completo senza rieseguire nulla. Con <code>"always"</code> il file viene sempre salvato; con <code>"never"</code> mai.</p>



<h2 class="wp-block-heading" id="telemetria-e-privacy">Telemetria e privacy</h2>



<p class="wp-block-paragraph">RTK può raccogliere metriche aggregate anonime (una volta al giorno) per aiutare il team a identificare quali filtri servono e quali vanno migliorati. La telemetria è <strong>disabilitata di default</strong> e richiede consenso esplicito durante <code>rtk init</code> o via <code>rtk telemetry enable</code>. Cosa viene raccolto, in sintesi:</p>



<ul class="wp-block-list">
<li>Identità: hash SHA-256 salato del device (non reversibile).</li>
<li>Ambiente: versione RTK, OS, architettura, metodo di installazione.</li>
<li>Volume d'uso: numero di comandi nelle ultime 24h, token risparmiati.</li>
<li>Qualità: top 5 comandi passthrough, parse failure, comandi con savings &lt; 30%.</li>
<li>Ecosistema: distribuzione per categoria (git 45%, cargo 20%, js 15%).</li>
</ul>



<p class="wp-block-paragraph">Cosa <strong>non</strong> viene raccolto: codice sorgente, path assoluti, argomenti dei comandi, segreti, environment variable, contenuti del repository. I comandi riportati sono solo nomi di tool (es. <code>"git"</code>, <code>"cargo"</code>), mai righe intere. Puoi disattivare la telemetria in qualsiasi momento o richiedere la cancellazione totale:</p>



<pre class="wp-block-code"><code># gestione completa della telemetria
rtk telemetry status
rtk telemetry disable
rtk telemetry forget

# blocco totale via environment
export RTK_TELEMETRY_DISABLED=1</code></pre>



<h2 class="wp-block-heading" id="windows">Windows: cosa cambia</h2>



<p class="wp-block-paragraph">Su Windows nativo (cmd.exe o PowerShell) l'hook automatico di rewriting non funziona, perché richiede una shell Unix. RTK cade quindi in <code>CLAUDE.md injection mode</code>: l'agent riceve le istruzioni RTK ma i comandi non vengono riscritti automaticamente — devi invocare <code>rtk cargo test</code>, <code>rtk git status</code> eccetera in modo esplicito.</p>



<p class="wp-block-paragraph">La soluzione consigliata dagli stessi autori è <strong>WSL</strong>: dentro WSL RTK lavora esattamente come su Linux, hook incluso. Per partire:</p>



<pre class="wp-block-code"><code># installazione RTK dentro WSL
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
rtk init -g</code></pre>



<p class="wp-block-paragraph">Ricorda di non fare doppio click su <code>rtk.exe</code>: è un tool CLI che stampa l'usage ed esce immediatamente. Sempre da terminale, mai da Esplora Risorse.</p>



<h2 class="wp-block-heading" id="disinstallazione">Disinstallazione</h2>



<p class="wp-block-paragraph">Se RTK non fa per te, la rimozione è pulita quanto l'installazione. Tre comandi a seconda del metodo usato:</p>



<pre class="wp-block-code"><code># rimozione hook, regole e settings.json
rtk init -g --uninstall

# rimozione binario
cargo uninstall rtk
brew uninstall rtk</code></pre>



<h2 class="wp-block-heading" id="verdetto">Verdetto: quando ha senso adottarlo</h2>



<p class="wp-block-paragraph">RTK non è un giocattolo: è uno strumento di produttività pensato per chi usa AI agent in modo intensivo e vuole massimizzare il budget di context. I casi d'uso in cui dà il massimo:</p>



<ul class="wp-block-list">
<li>Sessioni lunghe di pair programming con Claude Code, Codex o Cursor, dove il context si satura in fretta.</li>
<li>Progetti multi-linguaggio (Rust + TypeScript + Python + Go) con molti test runner diversi.</li>
<li>Workflow DevOps pesanti su Kubernetes, Docker, AWS CLI, Pulumi — RTK copre tutti i comandi più comuni.</li>
<li>Team che vogliono abbassare il costo per sessione senza toccare i prompt o i modelli usati.</li>
</ul>



<p class="wp-block-paragraph">Se invece usi l'agent solo per task brevi e non tiri su Docker né fai test suite grosse, il guadagno sarà marginale. Ma il costo di adozione è praticamente zero: un comando per installarlo, uno per attivarlo, e da quel momento non devi più pensarci.</p>



<p class="wp-block-paragraph">Approccio pragmatico consigliato: installa RTK, lancia <code>rtk gain</code> dopo una giornata di lavoro reale, e guarda i numeri. Se i token risparmiati superano il costo del setup (qualche minuto), hai la risposta. Il progetto è open source Apache 2.0, sviluppato da Patrick Szymkowiak, Florian Bruniaux e Adrien Eppling, con una community attiva su Discord.</p>



<h2 class="wp-block-heading" id="link-utili">Link utili</h2>



<ul class="wp-block-list">
<li>
<a href="https://github.com/rtk-ai/rtk" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Repository ufficiale su GitHub</a>
</li>
<li>
<a href="https://www.rtk-ai.app/guide" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Sito ufficiale e guida completa</a>
</li>
<li>
<a href="https://github.com/rtk-ai/rtk/blob/develop/docs/contributing/ARCHITECTURE.md" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Documento di architettura interna</a>
</li>
<li>
<a href="https://github.com/rtk-ai/rtk/blob/develop/INSTALL.md" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Guida di installazione dettagliata</a>
</li>
<li>
<a href="https://github.com/rtk-ai/rtk/blob/develop/SECURITY.md" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Policy di sicurezza del progetto</a>
</li>
<li>
<a href="https://discord.gg/RySmvNF5kF" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Community Discord ufficiale</a>
</li>
</ul>

]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/rtk-cli-ridurre-token-ai-agent/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
