| Crates.io | tempesta |
| lib.rs | tempesta |
| version | 0.0.80 |
| created_at | 2025-02-24 18:21:10.871966+00 |
| updated_at | 2025-06-19 14:46:59.550016+00 |
| description | The lightest and fastest CLI for managing bookmarks, written in Rust |
| homepage | |
| repository | https://github.com/x71c9/tempesta |
| max_upload_size | |
| id | 1567805 |
| size | 74,283 |
The fastest and lightest bookmark manager CLI written in Rust.
[Heavily inspired by pass]
Bookmark management should be simple and follow Unix philosophy.
With Tempesta all bookmarks live in ~/.bookmark-store, and tempesta provides
some intuitive commands for adding, updating, editing and open URLs.
It can also track all the changes using git.
How to use it:
Install
Alias
Combine
Before start using it, run:
tempesta init
This will prompt with questions about the set up.
tempesta add <local-path> <url>
tempesta add search-engines/google "http://google.com/"
tempesta edit <local-path>
tempesta edit search-engines/google
tempesta list <local-path>
tempesta list search-engines/
Without arguments it lists all the bookmarks
tempesta list
List has a parameter that can be passed with the flag --divisor that divides
the path name to the actual url:
tempesta list search-engines/ --divisor=" --- "
This prints:
search-engines/google --- https://google.com/
search-engines/duck --- https://duckduckgo.com/
tempesta move <local-path>
tempesta move search-engines/google query-engines/google
tempesta open <local-path>
tempesta open search-engines/google
tempesta remove <local-path>
tempesta remove search-engines/google
tempesta update <local-path> <url>
tempesta update search-engines/google "https://google.com"
You can use the initial of the methods instead of their full identifier:
[a]dd -- Add a new bookmark
[e]dit -- Edit an existing bookmark
[l]ist -- List bookmarks
[m]ove -- Move a bookmark
[o]pen -- Open a bookmark
[r]emove -- Remove a bookmark
[u]pdate -- Update an existing bookmark
For example
tempesta o search-engines/google
tempesta r search-engines/google
brew install x71c9/x71c9/tempesta
yay -S tempesta
Download the latest compatible binaries for your system and architecture: https://github.com/x71c9/tempesta/releases/latest
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
After installation, ensure your environment is updated (or restart your terminal) so that the cargo and rustc commands are in your PATH.
git clone https://github.com/x71c9/tempesta
cd tempesta
cargo build --release
./target/release/tempesta
If you want to install the CLI tool so that it’s available in your PATH, you can use in the repo directory:
cargo install --path .
source <(tempesta completion bash)
# set up autocomplete in bash into the current shell,
# bash-completion package should be installed first.
echo "source <(tempesta completion bash)" >> ~/.bashrc
# add autocomplete permanently to your bash shell.
source <(tempesta completion zsh)
# set up autocomplete in zsh into the current shell
echo '[[ $commands[tempesta] ]] && source <(tempesta completion zsh)' >> ~/.zshrc
# add autocomplete permanently to your zsh shell
echo 'tempesta completion fish | source' > ~/.config/fish/completions/tempesta.fish && source ~/.config/fish/completions/tempesta.fish
Most likely you will alias the command with
alias t='tempesta'
In order to make completion in bash to work with alias you can add the following:
complete -o default -o nospace -F _tempesta t
where the final t is the name of the alias.
Autocompletion do not work for bash alias but works when using functions, therefore is recommended to use a function instead, for example:
t() {
tempesta "$@"
}
complete -o default -o nospace -F _tempesta t
If you are using fzf you can pipe the result of tempesta list to it:
tempesta list | fzf
And you can use it in combination with tempesta open in order to fuzzy find a
bookmark and open it in the browser
# with AWK
tempesta list | fzf | awk -F ' *:: *' '{print $1}' | xargs tempesta open
# with SED
tempesta list | fzf | sed 's/ *::.*//' | xargs tempesta open
An alias like this might be useful to open bookmarks:
alias tempo="tempesta list | fzf | sed 's/ *::.*//' | xargs tempesta open"
If you are using wofi you can pipe the result of tempesta list to it:
tempesta list | wofi --dmenu --insensitive --width 60% | xargs tempesta open