Ritrovare una pagina letta settimane prima risulta spesso davvero completo complicato. La cronologia del browser aiuta soltanto fino a un certo punto: ricordare il sito, una porzione del titolo o il giorno della visita può bastare, ma è sufficiente che il titolo sia poco significativo o che l’informazione cercata risulti nascosta nel corpo del documento per rendere la ricerca frustrante. Hister prova a risolvere il problema trasformando pagine web, file e cronologia personale in un vero motore di ricerca privato, installabile su un PC o su un server controllato dall’utente.
L’idea richiama strumenti di personal knowledge management e applicazioni che archiviano bookmark, ma l’approccio di Hister è differente. L’applicazione non registra soltanto indirizzo e titolo: estrae il contenuto dei documenti, lo indicizza e può conservarne una copia utilizzabile per la consultazione successiva. Il risultato è una sorta di memoria ricercabile delle informazioni incontrate durante il lavoro quotidiano, accessibile dal browser, dal terminale, tramite API HTTP e perfino da applicazioni AI compatibili con Model Context Protocol (MCP).
Il progetto Hister è un software libero distribuito con licenza AGPLv3 e lo sviluppo procede spedito: tra marzo e luglio 2026 sono arrivati indicizzazione dei file locali, supporto multiutente, crawler web, ricerca semantica, autenticazione OAuth/OIDC, versioning dei documenti, modalità di ricerca pubblica e un sistema unificato per importare materiale proveniente da altre applicazioni. Non siamo quindi davanti a una semplice estensione sperimentale per il browser, ma a un software che sta assumendo le caratteristiche di un motore di ricerca personale piuttosto completo.

Hister crea un motore di ricerca partendo dai contenuti che abbiamo già visto
Il principio alla base di Hister è semplice: invece di interrogare continuamente le risorse pubblicate sul web, il software cerca all’interno di una raccolta costruita dall’utente. Una pagina web visitata con l’estensione Hipster attiva (installata e abilitata nel browser) può finire automaticamente nell’indice; allo stesso archivio si possono aggiungere file locali (ad esempio documenti scaricati o generati/gestiti in locale), vecchia cronologia del browser, pagine recuperate da un crawler e documenti importati attraverso altri strumenti.
La differenza rispetto a un bookmark manager emerge quando si esegue una ricerca. Hister lavora sul testo completo dei documenti, non soltanto sul titolo o sull’URL.
Se mesi prima abbiamo letto una guida nella quale compariva un determinato comando PowerShell ma non ricordiamo né il sito né il nome dell’articolo, una ricerca sulle parole presenti nel comando può riportare direttamente al documento interessato.
Il server conserva inoltre informazioni come URL, dominio, lingua, data di aggiunta e aggiornamento, numero di visite e altri metadati. Il motore consente quindi di restringere progressivamente le interrogazioni anziché affidarsi alla sola corrispondenza testuale.
Sul Web siamo abituati a demandare la memoria a Google o ad altri motori di ricerca (più di recente anche ai chatbot AI); il problema è che una ricerca pubblica tenta di ricostruire ciò che potrebbe interessarci tra miliardi di documenti, mentre Hister conosce una raccolta molto più piccola composta proprio dai contenuti che abbiamo scelto o consultato.
L’estensione Chrome e Firefox cattura le pagine mentre vengono visitate
Il metodo più immediato per alimentare l’indice consiste nell’installare l’estensione Hister disponibile per Chrome, browser Chromium, Edge e Firefox. È supportato anche Firefox per Android. Durante la navigazione l’estensione acquisisce il contenuto della pagina già caricata dal browser e lo invia all’istanza Hister configurata.
L’estensione non contatta direttamente i server web dei siti visitati per recuperare nuovamente le pagine: lavora su ciò che il browser ha già caricato. L’eccezione indicata dagli sviluppatori riguarda il recupero delle favicon.
Non tutto deve necessariamente finire nell’indice. Hister supporta regole di esclusione che permettono, ad esempio, di ignorare specifici domini o URL. Le regole utilizzano espressioni regolari in sintassi Go e lavorano sull’indirizzo completo. Esistono anche regole di priorità, utili per spingere determinati risultati verso le prime posizioni, e regole di versioning per conservare le modifiche apportate nel tempo a documenti selezionati.
Indicizzare automaticamente tutto ciò che appare nel browser non è sempre desiderabile: webmail, pannelli amministrativi, applicazioni aziendali o pagine contenenti informazioni riservate possono richiedere politiche molto più restrittive.
Come installare e usare Hister in locale
Dopo aver scaricato il file appropriato, su Linux e macOS basta avviare hister listen; su Windows il comando equivalente da PowerShell è .\hister.exe listen. Nella configurazione predefinita il servizio ascolta sulla porta 4433 sull’indirizzo 127.0.0.1 (per maggiori informazioni si può fare riferimento al paragrafo Quickstart su GitHub).
Per default, quindi, il modulo server di Hister risponde solamente alle connessioni provenienti dallo stesso computer: digitando 127.0.0.1:4433 nella barra degli indirizzi del browser si accede all’interfaccia web dell’applicazione.
Chi volesse raggiungere la stessa installazione da più dispositivi deve configurare correttamente URL pubblico, autenticazione e HTTPS. A questo proposito, va osservato come gli sviluppatori di Hister specifichino che i documenti archiviati sul server non sono cifrati dall’applicazione. Se il PC contenesse materiale personale o riservato conviene quindi proteggere l’unità con la cifratura del disco, limitare l’accesso al servizio e non pubblicare la porta su Internet senza TLS e autenticazione adeguata.
Per impostazione predefinita Hister usa SQLite e salva il database in un file denominato db.sqlite3 all’interno della directory dell’applicazione. È una soluzione sensata per un motore personale: non richiede l’installazione né la manutenzione di un database separato.
Chi realizza un’installazione condivisa può passare a PostgreSQL. La scelta avviene attraverso il parametro server.database: se il valore assume la forma di una stringa DSN PostgreSQL, Hister utilizza quel backend; diversamente interpreta il valore come percorso del database SQLite.
Ricerca documenti molto articolata e versatile
Uno dei punti più interessanti del progetto è il linguaggio delle query. Una ricerca semplice verifica la presenza dei termini nel titolo, nel testo, nell’URL e nel dominio: per ricerche più precise si possono usare frasi esatte, filtri per campo, wildcard, negazioni, intervalli temporali e criteri di ordinamento.
Per esempio, è possibile limitare una ricerca al dominio github.com, cercare soltanto nei documenti locali oppure filtrare le pagine aggiunte o modificate in un certo periodo. Esistono campi dedicati anche alla lingua, alle etichette, ai metadati e al numero di visite.
Il sistema accetta inoltre alias delle query. Un alias può trasformare una parola breve in un’espressione complessa: chi consulta frequentemente repository GitHub, documentazione interna e file locali può costruire scorciatoie che evitano di riscrivere ogni volta gli stessi filtri.
È un vantaggio enorme rispetto alla classica cronologia del browser: l’obiettivo non è mostrare un elenco cronologico di URL, ma consentire interrogazioni abbastanza sofisticate su una raccolta personale potenzialmente molto ampia.
La ricerca semantica è opzionale e usa un endpoint per gli embedding
Hister supporta anche la ricerca semantica: in questo caso non si cerca soltanto la presenza letterale delle parole: il programma converte documenti e query in vettori numerici (in un altro articolo illustravamo il concetto legato uso dei vettori nel campo dell’AI) e prova a individuare i contenuti semanticamente più vicini alla richiesta.
Durante l’indicizzazione il testo è suddiviso in porzioni parzialmente sovrapposte. Hister genera inoltre un vettore dei metadati considerando informazioni come titolo, URL, lingua, autore, descrizione e argomenti. Ogni frammento passa quindi a un modello di embedding configurato dall’amministratore.
I vettori usati nella ricerca semantica sono sequenze di numeri in virgola mobile generate da un modello di embedding addestrato su grandi quantità di testo. Durante l’addestramento il modello impara che parole, frasi e concetti che ricorrono in contesti simili tendono ad avere rappresentazioni numeriche vicine: per esempio “SSD”, “unità a stato solido” e “memoria flash” finiranno in regioni dello spazio vettoriale più vicine rispetto a termini semanticamente estranei.

Quando Hister indicizza un documento, il modello trasforma il testo – spesso suddiviso in porzioni – in un vettore con centinaia o migliaia di dimensioni, dove ogni coordinata non corrisponde direttamente a una parola o a un concetto leggibile dall’uomo, ma contribuisce alla rappresentazione complessiva del significato. Al momento della ricerca viene creato allo stesso modo il vettore della query e il sistema misura quanto è vicino ai vettori già memorizzati: i frammenti con rappresentazioni più simili vengono considerati semanticamente pertinenti anche se usano parole diverse.
Configurazione di un modello AI per la ricerca semantica
La documentazione di Hister propone, ad esempio, l’uso di nomic-embed-text attraverso Ollama: 768 dimensioni, finestra di 512 token, sovrapposizione di 50 token e batch di otto elementi. Non è però obbligatorio usare Ollama: l’endpoint AI è configurabile liberamente e può puntare anche a un servizio remoto compatibile.
Il motore Hister non richiede un cloud proprietario, ma se l’amministratore configura un servizio esterno per generare gli embedding, il testo necessario alla ricerca semantica raggiunge quel provider. Chi vuole mantenere realmente tutto all’interno della propria macchina può utilizzare un modello locale.
Hister può diventare la memoria privata di un assistente AI tramite MCP
L’integrazione con MCP estende di molto i possibili campi applicativi: un client AI compatibile con MCP può interrogare Hister e recuperare documenti o anteprime dall’archivio personale.
È una forma di retrieval documentale applicata alla propria cronologia digitale. Immaginiamo un archivio con documentazione tecnica, issue GitHub, pagine di manuali, appunti e file locali accumulati durante mesi di lavoro. Una domanda posta all’assistente può innescare una ricerca nell’indice Hister e restituire materiale pertinente che altrimenti dovremmo recuperare manualmente.
Gli sviluppatori affrontano anche il tema della tecnica prompt injection nei documenti: il server di Hister rimuove alcuni caratteri di controllo invisibili e tratta i dati recuperati come contenuto non attendibile. La documentazione sottolinea però che queste misure non garantiscono che il modello a valle ignori ogni istruzione malevola eventualmente presente nelle pagine indicizzate.
Un client MCP dovrebbe quindi mantenere separate le operazioni di lettura dalle azioni potenzialmente pericolose e richiedere conferma prima di concedere al modello accesso a shell, file, posta elettronica, browser o altre funzioni capaci di modificare dati. Hister può fornire la memoria; non elimina i rischi tipici degli agenti AI.
Il crawler permette di indicizzare anche interi siti
Tra le funzionalità aggiuntive di Hister, citiamo anche la presenza di un crawler capace di recuperare URL singoli oppure seguire ricorsivamente i collegamenti di un sito. I processi di scansione persistenti mantengono la coda nel database, quindi una scansione lunga può interrompersi e riprendere successivamente.
Il comando di indicizzazione può lavorare in varie modalità: URL singoli, scansione ricorsiva, elenco di indirizzi proveniente da file oppure ripresa di un job precedentemente salvato. Sono previste limitazioni per dominio, pattern URL e profondità della scansione; il progetto supporta inoltre più backend per il recupero delle pagine.
È una funzione che avvicina Hister a un vero motore di ricerca verticale. Un amministratore potrebbe, ad esempio, indicizzare tutta la documentazione di un prodotto, un wiki interno o un insieme ristretto di siti tecnici e successivamente interrogare quella raccolta separatamente dal web pubblico.
Il Garante Privacy ha a suo tempo chiarito quali attività di web scraping sono legali e quali non lo sono. In ogni caso, quando si utilizza un crawler su risorse di proprietà di soggetti terzi, è bene agire sempre con il massimo rispetto limitandosi a scansioni brevi, lente e non troppo estese.
Le pagine possono essere conservate per intero, ma c’è un costo
Per impostazione predefinita Hister mantiene anche il contenuto HTML delle pagine indicizzate e lo mostra in un pannello di anteprima affiancato ai risultati. È utile quando una pagina cambia o non è più disponibile: la copia archiviata conserva almeno parte dell’informazione originariamente consultata.
Tutte queste informazioni, una volta archiviate in locale, tuttavia, tendono a occupare spazio.
L’opzione disable_previews permette di disattivare completamente l’archiviazione dell’HTML. In tal caso restano conservati testo estratto, titolo, URL, dominio, lingua e favicon; eseguendo una reindicizzazione con l’opzione attiva, Hister elimina anche le vecchie copie HTML precedentemente memorizzate.
Il progetto non impone una scadenza automatica ai documenti né una quota di spazio complessiva, almeno non per impostazione predefinita.
Chi costruisce archivi molto grandi deve quindi pianificare spazio, backup e politiche di conservazione. È il rovescio della medaglia del controllo locale: nessun provider decide per noi quanto conservare, ma nessun soggetto si impegna neppure a prendersi carico della manutenzione.
Multiutente, token e OAuth: quando il server non è più solo personale
Hister nasce bene come servizio locale, ma può servire più utenti. Attivando la gestione degli account, ogni persona dispone di credenziali, documenti, risultati di ricerca, regole e token API separati. I documenti appartengono all’utente che li ha indicizzati e il motore applica automaticamente il filtro durante le ricerche.
L’autenticazione web utilizza sessioni con cookie HTTP-only; il flag Secure entra in funzione quando l’URL del server usa HTTPS.
Sono supportati anche GitHub, Google e provider generici OpenID Connect. Per API, CLI, estensione del browser e MCP sono disponibili token personali trasmessi tramite header Authorization Bearer oppure X-Access-Token.
Privacy e dati personali: il confronto con Microsoft Recall è inevitabile
Un archivio capace di ricordare pagine visitate, documenti e ricerche costruisce inevitabilmente una rappresentazione molto dettagliata dell’attività dell’utente.
Da questo punto di vista Hister richiama alla mente Microsoft Recall, la funzione per i Copilot+ PC che crea periodicamente snapshot dello schermo e li rende ricercabili anche semanticamente: al debutto, Recall attirò forti critiche proprio perché una memoria così estesa può contenere conversazioni, documenti, credenziali e altre informazioni sensibili.
Microsoft ha poi rivisto profondamente l’architettura: oggi Recall richiede l’attivazione esplicita, mantiene snapshot e database vettoriale in locale, cifra i dati e protegge le chiavi tramite TPM, Windows Hello ESS e VBS Enclave. Tutto a posto? Non proprio.
Hister affronta lo stesso problema da una direzione diversa: non registra automaticamente immagini dello schermo, ma indicizza i contenuti che l’utente decide di raccogliere e non usa telemetria né un servizio cloud Hister.
Il controllo rimane quindi nelle mani di chi gestisce il server, ma c’è una differenza tecnica da non trascurare: Hister non cifra autonomamente i documenti archiviati. Gli sviluppatori raccomandano perciò l’attivazione della cifratura dell’unità e HTTPS quando il server comunica attraverso reti non fidate.
Il modello self-hosted riduce la dipendenza da un fornitore esterno, ma trasferisce sull’amministratore la responsabilità di proteggere database, backup, credenziali e copie dei contenuti indicizzati.