Vai al contenuto
CloseYourItdocsPagine

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_64 o arm64 con systemd 254 o più recente.
  • bubblewrap e socat, che limitano dove l'agente può scrivere e dove può collegarsi. Senza socat, 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 npm dell'utente (per esempio quello di mise), non con sudo 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

  1. Nell'app: Automator → Collega una macchina.
  2. 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:

VariabilePredefinito
AUTOMATOR_CLAUDE_MODELclaude-opus-5-5
AUTOMATOR_CODEX_MODELgpt-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.

VariabileCosa fa
AUTOMATOR_SANDBOX_DOMAINSDomini 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_HOSTSI 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.