summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/en/hardenedpass/using/_index.md9
-rw-r--r--content/en/hardenedpass/using/autofill/index.md60
-rw-r--r--content/en/hardenedpass/using/entries/editor.pngbin0 -> 103604 bytes
-rw-r--r--content/en/hardenedpass/using/entries/entry.pngbin0 -> 72121 bytes
-rw-r--r--content/en/hardenedpass/using/entries/generator-random.pngbin0 -> 141896 bytes
-rw-r--r--content/en/hardenedpass/using/entries/index.md69
-rw-r--r--content/en/hardenedpass/using/entries/selection.pngbin0 -> 65241 bytes
-rw-r--r--content/en/hardenedpass/using/otp/index.md33
-rw-r--r--content/en/hardenedpass/using/otp/otp.pngbin0 -> 62555 bytes
-rw-r--r--content/en/hardenedpass/using/sync/index.md61
-rw-r--r--content/en/hardenedpass/using/sync/menu.pngbin0 -> 97032 bytes
-rw-r--r--content/it/hardenedpass/getting-started/_index.md2
-rw-r--r--content/it/hardenedpass/using/_index.md9
-rw-r--r--content/it/hardenedpass/using/autofill/index.md63
-rw-r--r--content/it/hardenedpass/using/entries/editor.pngbin0 -> 109163 bytes
-rw-r--r--content/it/hardenedpass/using/entries/entry.pngbin0 -> 73452 bytes
-rw-r--r--content/it/hardenedpass/using/entries/generator-random.pngbin0 -> 147099 bytes
-rw-r--r--content/it/hardenedpass/using/entries/index.md71
-rw-r--r--content/it/hardenedpass/using/entries/selection.pngbin0 -> 82234 bytes
-rw-r--r--content/it/hardenedpass/using/otp/index.md33
-rw-r--r--content/it/hardenedpass/using/otp/otp.pngbin0 -> 62970 bytes
-rw-r--r--content/it/hardenedpass/using/sync/index.md62
-rw-r--r--content/it/hardenedpass/using/sync/menu.pngbin0 -> 98259 bytes
23 files changed, 427 insertions, 45 deletions
diff --git a/content/en/hardenedpass/using/_index.md b/content/en/hardenedpass/using/_index.md
index b085f4a..a52f1b3 100644
--- a/content/en/hardenedpass/using/_index.md
+++ b/content/en/hardenedpass/using/_index.md
@@ -1,13 +1,10 @@
+++
title = "Using the app"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Everyday use of HardenedPass: reading and editing entries, OTP codes, syncing with git and filling logins with autofill."
weight = 20
draft = true
+++
-Placeholder.
-
-## First heading
-
-Text.
+Once the app is connected to your store, these pages cover what you do with it day to
+day.
diff --git a/content/en/hardenedpass/using/autofill/index.md b/content/en/hardenedpass/using/autofill/index.md
index 5a62cd1..43b7855 100644
--- a/content/en/hardenedpass/using/autofill/index.md
+++ b/content/en/hardenedpass/using/autofill/index.md
@@ -1,13 +1,65 @@
+++
title = "Autofill"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "How to turn on HardenedPass autofill, fill logins in apps and browsers, save new ones, and what the phishing warning means."
weight = 80
draft = true
+++
-Placeholder.
+Autofill offers your entries directly in login forms, in apps and in browsers, so you do
+not need to copy anything.
-## First heading
+## Turn it on
-Text.
+Open **Settings** and turn on **Enable Autofill**. The app explains what will happen and
+lists your installed browsers with how well each one is supported. Tap OK, choose
+HardenedPass in Android's autofill settings and confirm.
+
+## What each browser can do
+
+The app only trusts browsers it knows, because a browser has to report honestly which
+site a form belongs to. A browser that is not on the list gets no autofill at all.
+
+| Support level | Meaning | Examples |
+|---|---|---|
+| **Fill and save credentials** | Fills username and password, offers to save new ones | Firefox |
+| **Fill and save passwords** | Same, but saving needs no accessibility services enabled | Chrome, Cromite |
+| **Fill credentials** | Fills username and password, no saving | Tor Browser |
+| **Fill passwords** | Fills the password only | Vanadium |
+| **No support** | Autofill stays off | Any browser not on the list |
+
+Vanadium, the browser that comes with GrapheneOS, is trusted, but only at the
+**Fill passwords** level. For full support on GrapheneOS, use Firefox. The dialog in
+Settings shows the real level for the browsers on your phone.
+
+## Fill a login
+
+Tap a login field. Depending on your keyboard, suggestions appear as chips in the
+keyboard's bar or as a dropdown under the field:
+
+- An entry already linked to this site or app shows up by name. Tap it, unlock with
+ your passphrase and the form is filled.
+- **Search entry** opens a search over your store. The entry you choose stays linked
+ to this site or app, so next time it shows up directly.
+- On forms that ask for a new password, such as sign-up pages, **Create entry** opens
+ the editor to make one for this login.
+
+## Save a new login
+
+In a browser that supports saving, log in as usual. Android offers to save to
+HardenedPass. Tap **Save** and the app opens its editor, with the username and password
+filled in. Save the entry there, then remember to
+[sync]({{< relref "/hardenedpass/using/sync" >}}).
+
+Firefox also shows its own save prompt. That one is Firefox's password manager, not
+HardenedPass, and you can dismiss it.
+
+## The phishing warning
+
+Fill suggestions are tied to the app that requested them. If an app you linked to an
+entry changes publisher, its signing certificate no longer matches, and you see
+**Possible phishing attempt** instead of your entry. Tap it for the details.
+
+The app may have changed hands legitimately, but it may also be a fake installed in
+place of the real one, trying to get your password. **Keep Autofill disabled** is the
+safe answer. Choose **Re-enable Autofill** only if you know why the publisher changed.
diff --git a/content/en/hardenedpass/using/entries/editor.png b/content/en/hardenedpass/using/entries/editor.png
new file mode 100644
index 0000000..4651e94
--- /dev/null
+++ b/content/en/hardenedpass/using/entries/editor.png
Binary files differ
diff --git a/content/en/hardenedpass/using/entries/entry.png b/content/en/hardenedpass/using/entries/entry.png
new file mode 100644
index 0000000..c4a6f52
--- /dev/null
+++ b/content/en/hardenedpass/using/entries/entry.png
Binary files differ
diff --git a/content/en/hardenedpass/using/entries/generator-random.png b/content/en/hardenedpass/using/entries/generator-random.png
new file mode 100644
index 0000000..95be89e
--- /dev/null
+++ b/content/en/hardenedpass/using/entries/generator-random.png
Binary files differ
diff --git a/content/en/hardenedpass/using/entries/index.md b/content/en/hardenedpass/using/entries/index.md
index 745a407..927792e 100644
--- a/content/en/hardenedpass/using/entries/index.md
+++ b/content/en/hardenedpass/using/entries/index.md
@@ -1,13 +1,74 @@
+++
title = "Entries"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "How to read, search, copy, create, edit, move and delete entries in HardenedPass, and how to generate passwords."
weight = 50
draft = true
+++
-Placeholder.
+## Find an entry
-## First heading
+The list shows the folders and entries of the store. Tap a folder to open it, or type
+in the **Search** bar at the top. **Recursive filtering**, in
+[Settings]({{< relref "/hardenedpass/reference/settings" >}}), decides whether the
+search also looks inside folders.
-Text.
+## Read an entry
+
+Tap an entry. The app asks for your key's passphrase, decrypts the file and shows its
+fields. It asks every time, unless you turn on **Enable passphrase caching** in
+[Settings]({{< relref "/hardenedpass/reference/settings" >}}).
+
+{{< image src="entry.png" alt="An entry showing its password, username and url fields, each with a copy button." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- The eye icon shows or hides the password.
+- The copy icon next to a field copies it. A copied password is cleared from the
+ clipboard after 45 seconds by default, and **Password copy timeout** changes that.
+- The pencil opens the editor.
+
+## Create an entry
+
+Tap **New entry**, then **Create new password**.
+
+{{< image src="editor.png" alt="The New entry editor with fields for name, folder, password, username and extra content, and two OTP buttons." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- **Name** is the file name. Use the site's address, such as `example.org`: it is
+ what autofill looks for and what you will search for later. Remember that the name
+ is not encrypted.
+- **Folder** is where the entry goes. **Change** picks another one.
+- **Password**, **Username** and **Extra content** are what gets encrypted. Anything
+ you put in extra content is stored as further lines of the entry.
+
+Tap **Save**. The entry is encrypted and committed on the phone. It does not reach your
+server until you [sync]({{< relref "/hardenedpass/using/sync" >}}).
+
+**Create new folder**, in the same menu, makes an empty folder.
+
+## Generate a password
+
+In the editor, tap the generator icon at the end of the **Password** field.
+
+{{< image src="generator-random.png" alt="The generator sheet with the Random tab open, showing character options, the length and the Generate and Use buttons." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- **Random** makes a string of characters. Choose the character types and the length.
+- **Diceware** makes a passphrase of real words, easier to type by hand. Choose how
+ many words and which separator goes between them.
+
+**Generate** makes a new one, and **Use** puts it in the field.
+
+## Edit an entry
+
+Open the entry and tap the pencil. Change what you need and tap **Save**.
+
+## Move, delete and more
+
+Press and hold a row to select it. Tap other rows to add them to the selection.
+
+{{< image src="selection.png" alt="The list in selection mode with one entry selected and the Move, Delete and shortcut icons at the top." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+The icons at the top move the selection to another folder or delete it. With a single
+selection you can also rename a folder, or place a shortcut to an entry on the home
+screen.
+
+Deleting removes the file and records that in git, so the old version is still in the
+history of your store.
diff --git a/content/en/hardenedpass/using/entries/selection.png b/content/en/hardenedpass/using/entries/selection.png
new file mode 100644
index 0000000..e20ee4a
--- /dev/null
+++ b/content/en/hardenedpass/using/entries/selection.png
Binary files differ
diff --git a/content/en/hardenedpass/using/otp/index.md b/content/en/hardenedpass/using/otp/index.md
index 29830e2..64ed3d3 100644
--- a/content/en/hardenedpass/using/otp/index.md
+++ b/content/en/hardenedpass/using/otp/index.md
@@ -1,13 +1,38 @@
+++
title = "OTP codes"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "How HardenedPass stores and shows one-time codes (TOTP) for two-factor login, and how to add them from a QR code or by hand."
weight = 60
draft = true
+++
-Placeholder.
+Many sites offer two-factor login with a code that changes every 30 seconds, the kind
+an authenticator app shows. HardenedPass keeps that secret inside the entry, as an
+`otpauth://` line:
-## First heading
+```
+s3cret
+otpauth://totp/example.com:carol?secret=JBSWY3DPEHPK3PXP&issuer=example.com
+```
-Text.
+Think before you do this. Your password and your second factor end up in the same file,
+so whoever opens that entry has both. If you want two truly separate factors, keep the
+codes in another app.
+
+## Add a code
+
+Open the entry in the editor, or start a new one. Under the fields:
+
+- **OTP from QR** adds the code from the QR image the site shows you, with **Scan QR
+ code** or **Choose an image**.
+- **Manual OTP** takes the **Account** and the **Secret** by hand, for sites that also
+ show the key as text.
+
+Tap **Save**.
+
+## Read a code
+
+Open the entry. The code appears as a field with a countdown bar, and it refreshes by
+itself. The copy icon copies it.
+
+{{< image src="otp.png" alt="An entry showing a password and a six digit OTP code with its countdown." class="max-w-sm mx-auto rounded-lg border border-border" />}}
diff --git a/content/en/hardenedpass/using/otp/otp.png b/content/en/hardenedpass/using/otp/otp.png
new file mode 100644
index 0000000..e3b06fb
--- /dev/null
+++ b/content/en/hardenedpass/using/otp/otp.png
Binary files differ
diff --git a/content/en/hardenedpass/using/sync/index.md b/content/en/hardenedpass/using/sync/index.md
index 271c72c..2351d5b 100644
--- a/content/en/hardenedpass/using/sync/index.md
+++ b/content/en/hardenedpass/using/sync/index.md
@@ -1,13 +1,66 @@
+++
title = "Sync"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "How HardenedPass syncs your store with git: when changes are committed, how to pull and push, and how to recover from a conflict."
weight = 70
draft = true
+++
-Placeholder.
+Every change you make in the app, such as a new entry, an edit or a delete, is
+committed to git on the phone straight away. **Nothing is sent to the server until you
+sync.** Until then, the change exists only on this phone.
-## First heading
+## Sync
-Text.
+Pull down on the list to synchronize. You can also use the three dots in the search
+bar:
+
+{{< image src="menu.png" alt="The list's menu with Synchronize repository, Pull from remote, Push to remote and Settings." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- **Synchronize repository** fetches the server's changes and sends yours.
+- **Pull from remote** only fetches.
+- **Push to remote** only sends.
+
+Synchronize is what you want almost every time. To turn the gesture off, use
+**Disable pull to sync action** in
+[Settings]({{< relref "/hardenedpass/reference/settings" >}}).
+
+## When two devices change the same thing
+
+If you edit the same entry on the phone and on a computer before syncing, git cannot
+pick a winner. The app uses a rebase by default (**Rebase on pull**), and the sync
+stops with an error saying the pull failed and that you are in a detached head. Your
+work is not lost.
+
+Open **Settings**, then **Local Git config & utilities**. You have two ways out:
+
+### Keep your changes
+
+**Abort rebase and push new branch** cancels the rebase and sends your local work to a
+new branch on the server. The app tells you its name. Then, on a computer:
+
+```bash
+pass git fetch origin
+pass git merge origin/BRANCH-NAME
+```
+
+Git stops on the entries that conflict. Encrypted files cannot be merged line by line,
+so keep one version of each, finish the merge, and send it back with `pass git push`.
+On the phone, finish with the hard reset below, so that the phone matches the server
+again.
+
+### Throw your changes away
+
+**Hard reset to remote branch** asks for the branch name, then makes the phone an exact
+copy of it.
+
+{{< callout type="warning" >}}
+A hard reset discards local commits and changes that are not on that remote branch. Use
+it only when you are sure, or after saving your work with the option above.
+{{< /callout >}}
+
+## Other tools
+
+The same screen sets the name and email used for commits, shows the commit log with
+**Show commit log**, and offers **Run garbage collection job** to tidy up the local
+repository.
diff --git a/content/en/hardenedpass/using/sync/menu.png b/content/en/hardenedpass/using/sync/menu.png
new file mode 100644
index 0000000..a03da57
--- /dev/null
+++ b/content/en/hardenedpass/using/sync/menu.png
Binary files differ
diff --git a/content/it/hardenedpass/getting-started/_index.md b/content/it/hardenedpass/getting-started/_index.md
index d1ba975..942d77a 100644
--- a/content/it/hardenedpass/getting-started/_index.md
+++ b/content/it/hardenedpass/getting-started/_index.md
@@ -1,7 +1,7 @@
+++
title = "Per iniziare"
date = 2026-11-05T00:00:00Z
-description = "Da qui si parte: cos'è pass, come installare HardenedPass, come creare un archivio di password e collegarci l'app."
+description = "Parti da qui: cos'è pass, come installare HardenedPass, come creare un archivio di password e collegarci l'app."
weight = 10
draft = true
+++
diff --git a/content/it/hardenedpass/using/_index.md b/content/it/hardenedpass/using/_index.md
index dfb8d65..cacda05 100644
--- a/content/it/hardenedpass/using/_index.md
+++ b/content/it/hardenedpass/using/_index.md
@@ -1,13 +1,10 @@
+++
title = "Usare l'app"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "L'uso quotidiano di HardenedPass: leggere e modificare le voci, i codici OTP, la sincronizzazione con git e la compilazione automatica dei login."
weight = 20
draft = true
+++
-Placeholder.
-
-## First heading
-
-Text.
+Una volta collegata l'app al tuo archivio, queste pagine spiegano cosa ci fai giorno per
+giorno.
diff --git a/content/it/hardenedpass/using/autofill/index.md b/content/it/hardenedpass/using/autofill/index.md
index 5a62cd1..eb9b4e0 100644
--- a/content/it/hardenedpass/using/autofill/index.md
+++ b/content/it/hardenedpass/using/autofill/index.md
@@ -1,13 +1,68 @@
+++
title = "Autofill"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Come attivare la compilazione automatica di HardenedPass, compilare i login in app e browser, salvarne di nuovi, e cosa significa l'avviso di phishing."
weight = 80
draft = true
+++
-Placeholder.
+La compilazione automatica propone le tue voci direttamente nei moduli di login, nelle
+app e nei browser, senza bisogno di copiare nulla.
-## First heading
+## Attivala
-Text.
+Apri **Impostazioni** e attiva **Attiva la compilazione automatica**. L'app spiega cosa
+succederà ed elenca i browser installati con il livello di supporto di ciascuno. Tocca
+OK, scegli HardenedPass nelle impostazioni di compilazione automatica di Android e
+conferma.
+
+## Cosa può fare ogni browser
+
+L'app si fida solo dei browser che conosce, perché un browser deve dichiarare onestamente
+a quale sito appartiene un modulo. Un browser che non è nell'elenco non ha alcuna
+compilazione automatica.
+
+| Livello di supporto | Significato | Esempi |
+|---|---|---|
+| **Compila e salva le credenziali** | Compila nome utente e password, propone di salvare quelli nuovi | Firefox |
+| **Compila e salva le password** | Come sopra, ma il salvataggio richiede che nessun servizio di accessibilità sia abilitato | Chrome, Cromite |
+| **Compila le credenziali** | Compila nome utente e password, senza salvataggio | Tor Browser |
+| **Compila le password** | Compila solo la password | Vanadium |
+| **Nessun supporto** | La compilazione automatica resta spenta | Ogni browser fuori dall'elenco |
+
+Vanadium, il browser incluso in GrapheneOS, è tra quelli fidati, ma solo al livello
+**Compila le password**. Per il supporto completo su GrapheneOS, usa Firefox. La finestra
+nelle Impostazioni mostra il livello reale dei browser sul tuo telefono.
+
+## Compila un login
+
+Tocca un campo di login. A seconda della tastiera, i suggerimenti appaiono come chip nella
+barra della tastiera o come menu sotto il campo:
+
+- Una voce già collegata a questo sito o a questa app appare con il suo nome. Toccala,
+ sblocca con la passphrase e il modulo viene compilato.
+- **Cerca la voce** apre una ricerca nel tuo archivio. La voce che scegli resta collegata
+ a questo sito o a questa app, così la prossima volta appare direttamente.
+- Nei moduli che chiedono una nuova password, come le pagine di registrazione, **Crea
+ voce** apre l'editor per crearne una per questo login.
+
+## Salva un nuovo login
+
+In un browser che supporta il salvataggio, fai il login come al solito. Android propone di
+salvare su HardenedPass. Tocca **Salva** e l'app apre il suo editor, con nome utente e
+password già compilati. Salva lì la voce, poi ricordati di
+[sincronizzare]({{< relref "/hardenedpass/using/sync" >}}).
+
+Firefox mostra anche una sua richiesta di salvataggio. Quella è del gestore di password di
+Firefox, non di HardenedPass, e puoi ignorarla.
+
+## L'avviso di phishing
+
+I suggerimenti sono legati all'app che li ha richiesti. Se un'app che hai collegato a una
+voce cambia editore, il suo certificato di firma non corrisponde più, e al posto della voce
+vedi **Possibile tentativo di phishing**. Toccalo per i dettagli.
+
+L'app può aver cambiato proprietario in modo legittimo, ma può anche essere un falso
+installato al posto di quella vera, che cerca di avere la tua password. **Mantieni
+disattivata la compilazione automatica** è la risposta sicura. Scegli **Riattiva la
+compilazione automatica** solo se sai perché l'editore è cambiato.
diff --git a/content/it/hardenedpass/using/entries/editor.png b/content/it/hardenedpass/using/entries/editor.png
new file mode 100644
index 0000000..b6e90a1
--- /dev/null
+++ b/content/it/hardenedpass/using/entries/editor.png
Binary files differ
diff --git a/content/it/hardenedpass/using/entries/entry.png b/content/it/hardenedpass/using/entries/entry.png
new file mode 100644
index 0000000..26636ce
--- /dev/null
+++ b/content/it/hardenedpass/using/entries/entry.png
Binary files differ
diff --git a/content/it/hardenedpass/using/entries/generator-random.png b/content/it/hardenedpass/using/entries/generator-random.png
new file mode 100644
index 0000000..5c38147
--- /dev/null
+++ b/content/it/hardenedpass/using/entries/generator-random.png
Binary files differ
diff --git a/content/it/hardenedpass/using/entries/index.md b/content/it/hardenedpass/using/entries/index.md
index 54302df..ba3a831 100644
--- a/content/it/hardenedpass/using/entries/index.md
+++ b/content/it/hardenedpass/using/entries/index.md
@@ -1,13 +1,76 @@
+++
title = "Voci"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Come leggere, cercare, copiare, creare, modificare, spostare ed eliminare le voci in HardenedPass, e come generare le password."
weight = 50
draft = true
+++
-Placeholder.
+## Trova una voce
-## First heading
+L'elenco mostra le cartelle e le voci dell'archivio. Tocca una cartella per aprirla,
+oppure scrivi nella barra **Cerca** in alto. **Filtro ricorsivo**, nelle
+[Impostazioni]({{< relref "/hardenedpass/reference/settings" >}}), decide se la ricerca
+guarda anche dentro le cartelle.
-Text.
+## Leggi una voce
+
+Tocca una voce. L'app chiede la passphrase della chiave, decifra il file e ne mostra i
+campi. La chiede ogni volta, a meno che tu non attivi **Memorizza le frasi segrete** nelle
+[Impostazioni]({{< relref "/hardenedpass/reference/settings" >}}).
+
+{{< image src="entry.png" alt="Una voce con i campi password, nome utente e url, ciascuno con il pulsante per copiarlo." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- L'icona dell'occhio mostra o nasconde la password.
+- L'icona di copia accanto a un campo lo copia. Una password copiata viene cancellata
+ dagli appunti dopo 45 secondi di default, e **Timeout copia della password** cambia
+ questo valore.
+- La matita apre l'editor.
+
+## Crea una voce
+
+Tocca **Nuova voce**, poi **Crea nuova password**.
+
+{{< image src="editor.png" alt="L'editor Nuova voce con i campi nome, cartella, password, nome utente e contenuto extra, e due pulsanti OTP." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- **Nome** è il nome del file. Usa l'indirizzo del sito, per esempio `example.org`: è
+ quello che la compilazione automatica cerca e quello che cercherai tu più avanti.
+ Ricorda che il nome non è cifrato.
+- **Cartella** è dove finisce la voce. **Cambia** ne sceglie un'altra.
+- **Password**, **Nome utente** e **Contenuto extra** sono le parti cifrate. Quello che
+ scrivi nel contenuto extra diventa altre righe della voce.
+
+Tocca **Salva**. La voce viene cifrata e registrata con un commit sul telefono. Non
+arriva al server finché non [sincronizzi]({{< relref "/hardenedpass/using/sync" >}}).
+
+**Crea nuova cartella**, nello stesso menu, crea una cartella vuota.
+
+## Genera una password
+
+Nell'editor, tocca l'icona del generatore alla fine del campo **Password**.
+
+{{< image src="generator-random.png" alt="Il pannello del generatore con la scheda Casuale aperta, che mostra le opzioni sui caratteri, la lunghezza e i pulsanti Genera e Usa." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- **Casuale** crea una stringa di caratteri. Scegli i tipi di carattere e la lunghezza.
+- **Diceware** crea una passphrase di parole vere, più facile da digitare a mano. Scegli
+ quante parole e quale separatore mettere tra loro.
+
+**Genera** ne crea una nuova e **Usa** la mette nel campo.
+
+## Modifica una voce
+
+Apri la voce e tocca la matita. Cambia quello che serve e tocca **Salva**.
+
+## Sposta, elimina e altro
+
+Tieni premuta una riga per selezionarla. Tocca altre righe per aggiungerle alla
+selezione.
+
+{{< image src="selection.png" alt="L'elenco in modalità selezione con una voce selezionata e le icone Sposta, Elimina e scorciatoia in alto." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+Le icone in alto spostano la selezione in un'altra cartella o la eliminano. Con una sola
+riga selezionata puoi anche rinominare una cartella, o aggiungere alla schermata Home una
+scorciatoia a una voce.
+
+L'eliminazione rimuove il file e lo registra in git, quindi la vecchia versione resta
+nella cronologia dell'archivio.
diff --git a/content/it/hardenedpass/using/entries/selection.png b/content/it/hardenedpass/using/entries/selection.png
new file mode 100644
index 0000000..fb99785
--- /dev/null
+++ b/content/it/hardenedpass/using/entries/selection.png
Binary files differ
diff --git a/content/it/hardenedpass/using/otp/index.md b/content/it/hardenedpass/using/otp/index.md
index 27a04e4..f70ca9d 100644
--- a/content/it/hardenedpass/using/otp/index.md
+++ b/content/it/hardenedpass/using/otp/index.md
@@ -1,13 +1,38 @@
+++
title = "Codici OTP"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Come HardenedPass salva e mostra i codici monouso (TOTP) per l'accesso a due fattori, e come aggiungerli da un codice QR o a mano."
weight = 60
draft = true
+++
-Placeholder.
+Molti siti offrono l'accesso a due fattori con un codice che cambia ogni 30 secondi,
+quello che mostra un'app di autenticazione. HardenedPass tiene quel segreto dentro la
+voce, come riga `otpauth://`:
-## First heading
+```
+s3cret
+otpauth://totp/example.com:carol?secret=JBSWY3DPEHPK3PXP&issuer=example.com
+```
-Text.
+Pensaci prima di farlo. La password e il secondo fattore finiscono nello stesso file,
+quindi chi apre quella voce li ha entrambi. Se vuoi due fattori davvero separati, tieni i
+codici in un'altra app.
+
+## Aggiungi un codice
+
+Apri la voce nell'editor, o iniziane una nuova. Sotto i campi:
+
+- **OTP da QR** aggiunge il codice dall'immagine QR che ti mostra il sito, con
+ **Scansiona codice QR** o **Scegli un'immagine**.
+- **OTP manuale** prende a mano **Account** e **Segreto**, per i siti che mostrano la
+ chiave anche come testo.
+
+Tocca **Salva**.
+
+## Leggi un codice
+
+Apri la voce. Il codice appare come campo con una barra del conto alla rovescia e si
+aggiorna da solo. L'icona di copia lo copia.
+
+{{< image src="otp.png" alt="Una voce con la password e un codice OTP di sei cifre con il suo conto alla rovescia." class="max-w-sm mx-auto rounded-lg border border-border" />}}
diff --git a/content/it/hardenedpass/using/otp/otp.png b/content/it/hardenedpass/using/otp/otp.png
new file mode 100644
index 0000000..1522069
--- /dev/null
+++ b/content/it/hardenedpass/using/otp/otp.png
Binary files differ
diff --git a/content/it/hardenedpass/using/sync/index.md b/content/it/hardenedpass/using/sync/index.md
index 94ffae1..7a2e1de 100644
--- a/content/it/hardenedpass/using/sync/index.md
+++ b/content/it/hardenedpass/using/sync/index.md
@@ -1,13 +1,67 @@
+++
title = "Sincronizzazione"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Come HardenedPass sincronizza l'archivio con git: quando vengono registrate le modifiche, come fare pull e push, come uscire da un conflitto."
weight = 70
draft = true
+++
-Placeholder.
+Ogni modifica che fai nell'app, come una nuova voce, una correzione o un'eliminazione,
+viene subito registrata con un commit git sul telefono. **Al server non arriva nulla
+finché non sincronizzi.** Fino ad allora, la modifica esiste solo su questo telefono.
-## First heading
+## Sincronizza
-Text.
+Trascina verso il basso l'elenco per sincronizzare. Puoi usare anche i tre puntini nella
+barra di ricerca:
+
+{{< image src="menu.png" alt="Il menu dell'elenco con Sincronizza repository, Pull dal remote, Push sul remote e Impostazioni." class="max-w-sm mx-auto rounded-lg border border-border" />}}
+
+- **Sincronizza repository** scarica le modifiche del server e invia le tue.
+- **Pull dal remote** scarica soltanto.
+- **Push sul remote** invia soltanto.
+
+Quasi sempre vuoi Sincronizza. Per disattivare il gesto, usa **Disattiva la
+sincronizzazione trascinando** nelle
+[Impostazioni]({{< relref "/hardenedpass/reference/settings" >}}).
+
+## Quando due dispositivi cambiano la stessa cosa
+
+Se modifichi la stessa voce sul telefono e su un computer prima di sincronizzare, git non
+può scegliere un vincitore. L'app usa di default un rebase (**Rebase al pull**), e la
+sincronizzazione si ferma con un errore che dice che il pull non è riuscito e che sei in
+detached HEAD. Il tuo lavoro non è perso.
+
+Apri **Impostazioni**, poi **Configurazione Git locale e utilità**. Hai due vie d'uscita:
+
+### Tieni le tue modifiche
+
+**Interrompi il rebase ed esegui il push su un nuovo branch** annulla il rebase e invia
+il tuo lavoro locale su un nuovo branch del server. L'app te ne dice il nome. Poi, su un
+computer:
+
+```bash
+pass git fetch origin
+pass git merge origin/NOME-DEL-BRANCH
+```
+
+Git si ferma sulle voci in conflitto. I file cifrati non si possono unire riga per riga,
+quindi tieni una versione di ciascuno, completa il merge e rimandalo con `pass git push`.
+Sul telefono, chiudi con l'hard reset qui sotto, così il telefono torna uguale al server.
+
+### Butta via le tue modifiche
+
+**Hard reset al remote branch** chiede il nome del branch, poi rende il telefono una
+copia esatta di quel branch.
+
+{{< callout type="warning" >}}
+Un hard reset scarta i commit e le modifiche locali che non sono su quel remote branch.
+Usalo solo quando sei sicuro, o dopo aver messo al sicuro il tuo lavoro con l'opzione qui
+sopra.
+{{< /callout >}}
+
+## Altri strumenti
+
+La stessa schermata imposta il nome e l'email usati per i commit, mostra la cronologia con
+**Mostra registro dei commit** e offre **Esegui la garbage collection** per fare ordine
+nel repository locale.
diff --git a/content/it/hardenedpass/using/sync/menu.png b/content/it/hardenedpass/using/sync/menu.png
new file mode 100644
index 0000000..bf0e86e
--- /dev/null
+++ b/content/it/hardenedpass/using/sync/menu.png
Binary files differ