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.

staffekt

# all'accensione

staffekt giu

↓ dir/Progetti/sito (da portatile)
Unità scaricate: 1, già aggiornate: 58.

# prima di spegnere

staffekt spengo

Caricato 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, giu si 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, vendor rigenerabili, 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

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 parcheggio

06

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.