English · 日本語 · 繁體中文 · Deutsch · Français
Securely collect browsing history across browsers.
Here is the getting started guide.
Firstly, clone the repository and change to the directory.
$ git clone https://github.com/didvc/visited && cd visited
Then install the Node packages.
$ npm install
Next, generate a client program for the browser. Run the following.
$ node visited.js --generate
✔ Port number? [default: 5555] …
File generated: ./visited.user.js
Now that you have the visited.user.js file generated, copy and paste the file content as a new userscript into your favorite userscript manager, e.g. Tampermonkey.
Also note that you can paste the same into your other browsers and Chrome profiles, and virtually integrate their browsing history in one place.
Next, start the server. Use -s or --server. Also note that --quiet is for running in the background, and --port is for specifying the port number.
$ node visited.js --server
Now you're ready. Try going to any website, let's say youtube.com, and reload the page (or just visit it from the omnibox).
You can see the server detect your visit and automatically save the URL, host and date to the database visited.db.
$ node visited.js --server
server started...
message: {"url":"https://www.youtube.com/","host":"www.youtube.com"}
Now you can use an SQLite client such as DB Browser for SQLite, or the built-in search options, just like the following.
$ node visited.js --search --host youtube.com
[
{
"id": 1,
"url": "https://www.youtube.com/",
"host": "www.youtube.com",
"date": "6/23/2021, 3:52:02 PM",
"timestamp": 1624431122
}
]
The search term is regex compatible. This shows the same result as above.
$ node visited.js --search --url 'you.*be\.com'
git
build-essential
node
sqlite3-pcre (for searching)
$ node visited.js
Usage: visited [options]
Options:
-s, --server set command type: server
-p, --port <port> (server) specify port number (default: 5555)
-t, --timezone <timezone> (server) specify timezone (default: "Asia/Tokyo")
-q, --quiet (server) disable log
-S, --search set command type: search
-r, --regex (search) enable regex extension for search (default: true)
-u, --url <url> (search) search by url (default: ".")
--host <host> (search) search by host (default: ".")
--order <order> (search) set order for search [desc, asc] (default: "desc")
--limit <number> (search) set limit for search (default: -1)
-F, --format <format> (search) output format [json, url] (default: "json")
--pcre-path <file> set sqlite3 pcre file path for search (default: "/usr/lib/sqlite3/pcre.so")
-d, --database <file> specify database file for index/search (default: "./visited.db")
--generate generates client side userScript file
--delete-database delete database
-y, --yes no confirmation prompt
-h, --help display help for command
- histbak: Scheduled, compressed, optionally encrypted backups of your browsing history, plus a viewer that makes it readable. Local only, no network access. Chrome + Firefox, MV3.
- better-tab-session-manager: Tab Session Manager fork with scheduled, incremental session export to disk (hourly/daily/weekly). Upstream only backs up once at browser startup.
- better-super-simple-highlighter: Super Simple Highlighter, the text highlighter Chrome extension, super enhanced.
- astro-html-editor: Self-hosted HTML editor with live preview. Astro SSR + plain JavaScript, server-side file persistence.
- chatnote: Self-hosted note-to-self chatrooms. Privacy-first by design, infinite rooms, Markdown, ephemeral/incognito room types, image uploads, tags, JSON import/export. Astro SSR + SQLite.