Buku Bookmark Manager

Bookmarks have been the bane of my existence.

If you've read my previous article on automating android for saving bookmarks, you may already know that I was foolish enough to browse the internet on phone [1]. Luckily I moved everything off of it now, and all of my archived bookmarks are spread across several text files, URLs separated by newline chars. There easily 2000 in total (perhaps more).

Luckily in May I discovered a program called Buku which stores your bookmarks in an SQLite database. Each bookmark has four sub-entries: the website title, URL, category tags, and comments (description). The title and comments are grabbed automatically when the URL is added, however tags are for the user to decide. They are much powerful than the usual folder structure because a single website page is maybe relevant to several categories. I find this spider-web like structure is a better way of visualising the user's database of bookmarks (although not in its entirety, just sections).

The Git repo for the buku program can be found in [2]. The documentation covers a lot of features, so give it a read before using!

To date (7th June), I have added 766 bookmarks. Each day it grows more and more, although the SQLite database scales fairly well (currently 264KiB). Now it's at 2228 bookmarks, 728K (9th September), and a lot of those are new as well! One thing I'm glad for however, is that this experience has made me a lot more cognisant of my browsing. Also found a lot of cool individual websites.

In addition to Buku, I also created a local Git repo to synchronise my bookmark database across several computers. By default however, Buku stores the database in $HOME/.local/share/Buku/bookmarks.db. So to work with Git, the actual database is stored in $HOME/buku/bookmarks.db (where buku is the Git repo). A symbolic link is then created to point to $HOME/.local/share/Buku/bookmarks.db, and Buku is none the wiser ;).

Bookmarks can be added, edited, and finally pushed to the Git repo. No "cloud" services required!

As was in the process of adding bookmarks, I noticed that the commands can be put into shell scripts. So I did just that. Recently I setup a Gitlab account and uploaded my scripts to a public repo, where you can have a look and use the scripts for yourselves (if you wish) [3]. The scripts are by no means the best, but they serve my needs.


  1. My blog post on Android screen automator.
  2. Main Github repo for the Buku program.
  3. My Gitlab repo for the Buku helper shell scripts.