https://github.com/wh1le/qutebrowser-sync
Sync qutebrowser bookmarks, quickmarks, and history across machines via any mounted remote (NFS, SSHFS, Syncthing, DropBox Google Drive, rclone etc.)
https://github.com/wh1le/qutebrowser-sync
linux nextcloud qutebrowser qutebrowser-userscripts rclone sync
Last synced: 5 months ago
JSON representation
Sync qutebrowser bookmarks, quickmarks, and history across machines via any mounted remote (NFS, SSHFS, Syncthing, DropBox Google Drive, rclone etc.)
- Host: GitHub
- URL: https://github.com/wh1le/qutebrowser-sync
- Owner: wh1le
- License: mit
- Created: 2025-12-28T17:51:56.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-12-28T18:23:05.000Z (6 months ago)
- Last Synced: 2025-12-31T08:58:14.424Z (6 months ago)
- Topics: linux, nextcloud, qutebrowser, qutebrowser-userscripts, rclone, sync
- Language: Python
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Qutebrowser Sync
Bidirectional sync for [qutebrowser](https://github.com/qutebrowser/qutebrowser) bookmarks, quickmarks, and browsing history across multiple machines.
## Features
- **Bookmarks & quickmarks sync** — bidirectional merge, deduplicates by URL/key
- **Live history sync** — SQLite merge works in real-time, no browser restart needed
- **Any storage backend** — NFS, SSHFS, Syncthing, Dropbox, Google Drive (rclone), NAS, USB drives
- **Multi-machine, multi-profile** — seamlessly sync between desktop, laptop, work, home
- **Zero dependencies** — pure Python stdlib, single file, just works
## Dependencies
Python 3.6+ (stdlib only, no pip packages required)
## Installation
```bash
curl -o ~/.local/bin/qutebrowser-sync https://raw.githubusercontent.com/wh1le/qutebrowser-sync/main/qutebrowser-sync
chmod +x ~/.local/bin/qutebrowser-sync
```
## Usage
```bash
qutebrowser-sync --remote /mnt/nas/browser-data
qutebrowser-sync --remote /mnt/syncthing --profile work
qutebrowser-sync --remote /mnt/sshfs/server --no-history
```
## Options
| Flag | Description |
| -------------- | --------------------------------------------- |
| `--remote` | Path to mounted remote directory (required) |
| `--profile` | Qutebrowser profile name (default: `default`) |
| `--home` | Override home directory |
| `--no-history` | Skip history sync |
## How it works
1. Checks if remote is mounted (looks for `qutebrowser/` dir)
2. Merges local ↔ remote bookmarks/quickmarks (union, deduplicated)
3. Merges SQLite history both directions (by url+timestamp)
## Automation
```bash
# cron (every 30 min)
*/30 * * * * /home/user/.local/bin/qutebrowser-sync --remote /mnt/nas/browser
# systemd timer, or hook into qutebrowser quit
```
## TODO
- add more flexible support for different profiles
## License
[MIT](LICENSE)