Bookmarks

Bookmarks in your filesystem.

dkdc-io/bookmarks

Bookmarks #

GitHub Release PyPI crates.io CI License: MIT

Bookmarks in your filesystem.

bookmarks.toml
(filesystem config)
       |
       v
bookmarks-core
(config + storage + open)
       |
       +--> bookmarks CLI
       |       +--> opens names, aliases, groups
       |       +--> --webapp starts Axum webapp
       |       +--> --app starts Tauri desktop app
       |
       +--> bookmarks-webapp
       |    (Axum UI/routes on localhost:1414)
       |
       +--> bookmarks-app
            (Tauri shell)
              |
              v
       127.0.0.1:0 loopback webapp
              |
              v
       Tauri WebView
              |
              +--> local app routes stay in the WebView
              +--> bookmark URLs open in the OS/browser

Screenshot of the web/desktop app:

Bookmarks web and desktop application

Web & desktop application.

Install #

Recommended:

curl -LsSf https://dkdc.sh/bookmarks/install.sh | sh

Pre-built binaries are available for Linux and macOS via Python (uv). Windows users should install via cargo or use macOS/Linux.

uv:

uv tool install dkdc-bookmarks

cargo:

cargo install dkdc-bookmarks --features app,webapp

Verify installation:

bookmarks --version

You can use uvx to run it without installing:

uvx --from dkdc-bookmarks bookmarks

Usage #

bookmarks [OPTIONS] [URLS]...

Configuration #

Bookmarks looks for a config file in this order:

  1. --bookmarks-file / -f flag (explicit path)
  2. --local / -l flag (creates ./bookmarks.toml if missing)
  3. bookmarks.toml in the current directory (must exist)
  4. $HOME/.config/bookmarks/bookmarks.toml (global, auto-created)

Example:

[urls]
dkdc-bookmarks = "https://github.com/dkdc-io/bookmarks"
github = { url = "https://github.com", aliases = ["gh"] }

[urls.linkedin]
url = "https://linkedin.com"
aliases = ["li"]

[groups]
socials = ["gh", "linkedin"]

URLs can be plain strings, inline tables with aliases, or expanded tables. Groups reference url names or aliases.

Use --config to edit the configuration file in $EDITOR, or use --app / --webapp for the local GUI.

Open urls #

Open urls by name, alias, or group:

bookmarks github
bookmarks gh linkedin
bookmarks socials

You can input multiple url names, aliases, or groups at once. They will be opened in the order they are provided.

Options #

Available options:

FlagShortDescription
--bookmarks-file <PATH>-fUse a specific bookmarks file
--global-gUse global config, ignore local bookmarks.toml
--local-lUse local config (./bookmarks.toml), create if missing
--config-cOpen active bookmarks file in $EDITOR (use -gc for global)
--app-aOpen Tauri desktop app (requires app feature, which includes webapp)
--webapp-wOpen the web app in browser (requires webapp feature)
--help-hPrint help
--version-VPrint version