bm: open bookmarks and queries from the command line

[ library, mit, program, utils ] [ Propose Tags ]

This package provides a command-line utility that opens bookmarks and queries. Please see the README on GitHub at

[Skip to Readme]


[Index] [Quick Jump]


Automatic Flags

write .hie files


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,
Change log
Dependencies aeson (>=1.4 && <2.2), ansi-wl-pprint (>=0.6 && <0.7), base (>=4.7 && <5), bm, directory (>=1.3 && <1.4), dlist (>=0.8 && <1.1), filepath (>=1.4 && <1.5), network-uri (>=2.6 && <2.7), optparse-applicative (>=0.14 && <0.18), scientific (>=0.3 && <0.4), text (>=1.2.3 && <2.1), transformers (>=0.5.6 && <0.7), typed-process (>=0.2.6 && <0.3), vector (>=0.12 && <0.14), yaml (>=0.11 && <0.12) [details]
License MIT
Copyright Copyright (c) 2021-2022 Travis Cardwell
Author Travis Cardwell <>
Maintainer Travis Cardwell <>
Revised Revision 3 made by TravisCardwell at 2022-07-29T21:09:37Z
Category Utils
Home page
Bug tracker
Source repo head: git clone
Uploaded by TravisCardwell at 2022-03-02T04:11:40Z
Distributions LTSHaskell:, NixOS:, Stackage:
Executables bm
Downloads 183 total (16 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-03-02 [all 1 reports]

Readme for bm-

[back to package description]


Project Status: Active – The project has reached a stable, usable state and is being actively developed. GitHub CI Hackage Stackage LTS Stackage Nightly


bm is a utility for opening bookmarks and queries from the command line. The bookmarks and queries are configured hierarchically in YAML, and they are referenced using keyword prefixes. It allows you to quickly open bookmarks and perform search queries in your browser using only your keyboard.



bm is designed to work on any operating system, but it has only been tested on Linux.


.deb Package Installation

Check the Releases page for .deb packages.

.rpm Package Installation

Check the Releases page for .rpm packages.

Installation From Hackage

Install bm from Hackage using Cabal as follows:

$ cabal v2-install bm

Installation From Stackage

Install bm from Stackage using Stack as follows:

$ stack install bm


Bookmarks and search queries are configured using a hierarchy of keywords in a YAML configuration file. They are selected using keyword prefixes as command-line arguments. Command-line completion is available for Bash. See the bm man page for details.

Note that the command used to open bookmarks and queries can be customized in the configuration file. Specifying the command for your specific browser can make links open considerably faster than with the default (generic) command.


An example configuration file is available in the config directory on GitHub (example for the latest release: bm.yaml). The following are example commands using this configuration file.

Open a bookmark link by specifying keywords. The Nix homepage can be opened with the following command:

$ bm nix

The nixpkgs manual can be opened using the following command:

$ bm nix pkgs manual

Keyword prefixes can also be used. The following command also opens the nixpkgs manual:

$ bm n p m

When more than one keyword has the same prefix, the first is selected. If a selected bookmark does not specify a URL, the first child is processed.

The / keyword defines a bookmark with a URL as well as a query. When no query is specified, the URL is opened, allowing you to search with suggestions using the search field. Open a query by specifying keywords followed by the query.

$ bm / LinearTypes

When multiple query arguments are provided, they are joined with a space.



All releases are tagged in the main branch. Release tags are signed using the GPG key.


Issues and feature requests are tracked on GitHub:

Issues may also be submitted via email to


This project is released under the MIT License as specified in the LICENSE file.