Documentazione / AI e automazione
Automator
Fai lavorare i ticket in automatico su una tua macchina Linux, con Claude Code, Codex o tutti e due.
L'automator prende i ticket che abiliti, li lavora in una cartella isolata del repository e apre una modifica da rivedere. Gira sulla tua macchina, con il tuo abbonamento: il codice non esce mai da lì.
Cosa serve
- Linux
x86_64oarm64con systemd 254 o più recente. bubblewrapesocat, che limitano dove l'agente può scrivere e dove può collegarsi. Senzasocat, Claude Code non parte.- Un portachiavi di sistema (
gnome-keyring) con la raccolta «login»: lì l'automator conserva il token della macchina. - Codex, installato e con l'accesso fatto: serve sempre, perché anche la rilettura di Claude gira dentro l'isolamento di Codex. Senza Codex nessun lavoro viene riletto e nessuno arriva alla PR.
- Claude Code, se vuoi che lavori o rilegga Claude.
- Installa Codex con
npmdell'utente (per esempio quello dimise), non consudo npm -g: l'automator non usa programmi in/usr/lib, né cartelle che altri utenti possono modificare.
automator doctor controlla ogni requisito e dice cosa manca.
Ubuntu 24.04 e successivi
Ubuntu blocca l'isolamento che serve a bubblewrap, quindi la sandbox non parte. Si sblocca una volta con un profilo AppArmor:
sudo tee /etc/apparmor.d/bwrap >/dev/null <<'PROFILE'
abi <abi/4.0>,
include <tunables/global>
profile bwrap /usr/bin/bwrap flags=(unconfined) {
userns,
include if exists <local/bwrap>
}
PROFILE
sudo apparmor_parser -r /etc/apparmor.d/bwrap
Su un server senza interfaccia grafica servono anche due passi.
Installa socat e il portachiavi:
sudo apt install socat gnome-keyring libsecret-tools
Crea la raccolta «login» del portachiavi, con l'utente che farà girare l'automator. Senza, l'installazione si ferma con credential store vault non disponibile:
pkill -u "$(id -u)" gnome-keyring-d
printf '\n' | gnome-keyring-daemon --unlock --components=secrets --daemonize
Collegare una macchina
- Nell'app: Automator → Collega una macchina.
- Copia il comando e lancialo sulla macchina.
Chi fa il lavoro
Lo scegli per ogni macchina in Automator → la macchina → Chi fa il lavoro: Claude (la scelta di partenza) o Codex. Sulla macchina quel motore deve essere installato e con l'accesso fatto.
Su una macchina con solo Codex, imposta anche AUTOMATOR_WORK_ENGINE=codex nell'ambiente del servizio: installazione e doctor chiederanno Codex al posto di Claude.
I due motori lavorano con gli stessi limiti:
- scrivono solo nella cartella del ticket, e nei dati Git che servono ai suoi commit;
- usano la rete solo verso CloseYourIt, GitHub, npm e RubyGems;
- niente push sui rami protetti, niente comandi di produzione, niente comandi distruttivi sul database.
Chi rilegge il lavoro
Ogni lavoro viene riletto prima di arrivare a te. Lo scegli per ogni macchina in Automator → la macchina → Chi rilegge il lavoro:
- L'altro motore — Codex rilegge il lavoro di Claude e Claude quello di Codex. Servono tutti e due sulla macchina. È la scelta di partenza.
- Lo stesso motore — il motore rilegge il proprio lavoro in una sessione nuova. Basta un motore solo.
Modelli
L'automator usa un modello fisso per ogni motore, così un aggiornamento della CLI non lo cambia di nascosto. Per usarne un altro, impostalo nell'ambiente del servizio:
| Variabile | Predefinito |
|---|---|
AUTOMATOR_CLAUDE_MODEL | claude-opus-5-5 |
AUTOMATOR_CODEX_MODEL | gpt-6-astra |
Il tuo server e la tua produzione
Due impostazioni dell'ambiente del servizio descrivono la tua installazione all'automator. Impostale prima di automator setup e tienile uguali per il servizio e per i comandi lanciati a mano: fanno parte dei controlli di sicurezza, che si rifiutano di partire se cambiano a loro insaputa.
| Variabile | Cosa fa |
|---|---|
AUTOMATOR_SANDBOX_DOMAINS | Domini in più raggiungibili dalla sandbox, separati da virgola. Metti qui il tuo CloseYourIt, per esempio tracker.example.com; GitHub, npm e RubyGems sono già ammessi. |
AUTOMATOR_PRODUCTION_HOSTS | I tuoi server e indirizzi di produzione, separati da virgola. L'automator rifiuta ssh, scp, rsync e gli indirizzi di database verso di loro. |
Una voce scritta male ferma l'automator invece di essere saltata: un errore di battitura non lascia mai un server senza protezione.