explaingit

jarun/buku

7,127PythonAudience · developerComplexity · 2/5Setup · easy

TLDR

Buku is a command-line bookmark manager that keeps all your saved URLs in a local SQLite database you fully control, with powerful search, browser import/export, and an optional web UI called Bukuserver.

Mindmap

mindmap
  root((repo))
    What it does
      Local bookmark manager
      SQLite storage
      No cloud required
    Features
      Browser import export
      Multi-mode search
      Wayback Machine check
    Interfaces
      Command line
      Bukuserver web UI
      Python library
    Formats
      Firefox Chrome import
      HTML Markdown export
      Optional encryption
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Import all your Firefox or Chrome bookmarks into buku and search them by keyword, tag, or URL from the terminal.

USE CASE 2

Replace a cloud bookmark service with a local, private database you sync with your own tools like rsync or Git.

USE CASE 3

Check which saved links are broken and look up archived copies on the Wayback Machine, all from the command line.

USE CASE 4

Run the Bukuserver web UI locally to manage bookmarks through a browser interface instead of typing commands.

Tech stack

PythonSQLite

Getting it running

Difficulty · easy Time to first run · 5min
The explanation does not specify the license terms.

In plain English

Buku is a command-line bookmark manager that stores all your saved URLs in a local SQLite database. Instead of relying on a browser account or a cloud service, you keep your bookmarks in a portable file on your own computer that you can copy, merge, and sync however you like. The database has no tracking, no analytics, and no external connections beyond what you explicitly ask it to do. When you add a URL, buku can automatically fetch the page title, description, and suggested tags from the web so you do not have to type them in. You can also import existing bookmarks from Firefox, Chrome, Chromium, Vivaldi, Brave, and Edge, or export to and from HTML, Markdown, and several other formats. The tool integrates with your text editor so you can write and update bookmark records in whatever editor you already use. Searching is a main focus. Buku supports multiple search modes including substring matching, regular expressions, and a deep scan mode that searches within URLs themselves. You can run searches interactively and switch between search modes on the fly without re-entering your query. Broken links can be checked against the Wayback Machine archive to see if an older copy of the page exists. For those who prefer a visual interface, a companion web application called Bukuserver ships with the project. It runs as a local server on your own machine and provides a browser-based interface for managing bookmarks through point-and-click rather than typed commands. The database supports optional manual encryption for situations where you want the file protected at rest. Shell completion scripts for Bash, Fish, and Zsh are included, as is a full man page with examples. Buku is also usable as a Python library, and a browser extension exists as a related project for adding bookmarks directly from the browser to your buku database.

Copy-paste prompts

Prompt 1
I just imported my Chrome bookmarks into buku. Show me how to search for all bookmarks tagged 'python' and open one in my browser from the terminal.
Prompt 2
How do I add a bookmark with buku, auto-fetch its title and description from the web, and assign custom tags to it?
Prompt 3
Write a shell script that uses buku to export all bookmarks to Markdown and commit the file to a Git repository each week.
Prompt 4
How do I enable encryption on my buku database and unlock it at the start of a terminal session?
Open on GitHub → Explain another repo

← jarun on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.