Come funziona Staffekt
Per chi vuole i dettagli
Come funziona Staffekt: lucchetto, unità e cifratura lato client
Una sincronizzazione a sessione chiusa per agenti da terminale: niente tempo reale, niente conflitti, una cronologia di versioni e una chiave che non lascia mai il tuo computer in chiaro.
# all'accensione
staffekt giu↓ dir/Progetti/sito (da portatile)
Unità scaricate: 1, già aggiornate: 58.
# prima di spegnere
staffekt spengoCaricato e lucchetto libero. Puoi spegnere.
01
Il lucchetto e le generazioni
Ogni account ha un solo lucchetto sul server, preso e lasciato con operazioni atomiche: due computer non possono averlo insieme. Ogni volta che qualcuno lo prende, il numero di generazione cresce, e un computer può registrare nuove versioni solo con la generazione che ha ricevuto.
- Se l'altro computer non ha caricato,
giusi ferma e ti dice quale e da quando. - Puoi prenderlo lo stesso, con conferma esplicita: il computer scavalcato, quando torna, non può sovrascrivere niente.
- Il suo lavoro non caricato viene messo da parte come versione recuperabile (
staffekt parcheggio). - Il lucchetto non scade da solo: un computer che non ha caricato è proprio il caso da segnalare.
02
Unità: si muove solo quello che cambia
Il lavoro è diviso in unità: ogni progetto di una cartella seguita, ogni cartella di conversazioni di ~/.claude/projects, le impostazioni di Claude Code, l'elenco delle sessioni. su carica solo le unità con file più recenti dell'ultimo giro (con un controllo completo ogni 7 giorni); giu scarica solo quelle con una versione diversa.
I nomi delle unità non contengono la tua home: la stessa conversazione si ritrova sotto il percorso giusto anche su un computer con un altro utente.
03
Cosa resta su ogni computer
- Il login di Claude Code (
.credentials.json) e le cartelle di runtime delle sessioni. node_modules,.venv,vendorrigenerabili, cache, socket e file temporanei.~/.ssh: escluso per default. Le chiavi restano dove sono.- Tutto quello che aggiungi tu con
staffekt esclusi.
Permessi, link simbolici e date dei file vengono conservati: gli script restano eseguibili e i repository git integri.
04
Cifratura e chiave
I dati sono salvati con restic: istantanee cifrate e deduplicate, una per ogni versione di un'unità. La chiave del tuo account è un segreto casuale di 256 bit generato sul tuo computer.
- Sul server va solo la chiave cifrata, due volte: con la passphrase e con il codice di recupero (Argon2id + XChaCha20-Poly1305).
- Un nuovo computer si collega con un codice d'invito monouso e sblocca la chiave con la passphrase.
- Lo storage riceve solo blocchi cifrati; nomi di file e cartelle sono dentro i dati cifrati.
Se perdi sia la passphrase sia il codice di recupero, i tuoi dati sono persi per sempre. Nessuno può riaverli, nemmeno noi: è il prezzo di una cifratura che non ci permette di leggerli.
05
Versioni e recupero
# le versioni di un progetto
staffekt versioni ~/Progetti/sito# una versione vecchia in una cartella a parte
staffekt ripristina ~/Progetti/sito 3# il lavoro messo da parte
staffekt parcheggio06
Il server
Server nell'Unione Europea: uno storage compatibile S3 (Garage) per i blocchi cifrati e una piccola API per account, computer, lucchetto e versioni. Il contenuto dei file non passa mai dall'API, e il client sarà pubblicato con licenza GPL-3.0.
Fatto
- Client Linux
- Lucchetto con generazioni
- Versioni, ripristino, parcheggio
- Sessioni in herdr e tmux
In arrivo
- macOS
- Windows (WSL)
- Altri agenti da terminale
- Cartelle di progetto diverse tra computer
Vuoi provarlo?
La beta è su invito.
Staffekt è un progetto indipendente e non è affiliato ad Anthropic. Claude e Claude Code sono marchi dei rispettivi titolari.
