{"id":31750575,"url":"https://github.com/x71c9/tempesta","last_synced_at":"2025-12-28T16:47:02.583Z","repository":{"id":279464237,"uuid":"907751244","full_name":"x71c9/tempesta","owner":"x71c9","description":"The lightest and most efficient Rust-based CLI bookmark manager, inspired by \"pass\" and built for Git integration, intuitive usage, and Unix-style simplicity.","archived":false,"fork":false,"pushed_at":"2025-10-07T16:13:13.000Z","size":145,"stargazers_count":8,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-07T16:15:10.158Z","etag":null,"topics":["bookmarks","bookmarks-manager","cli","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/x71c9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-24T09:50:59.000Z","updated_at":"2025-08-27T13:34:35.000Z","dependencies_parsed_at":"2025-02-25T18:34:49.501Z","dependency_job_id":"3b455cdc-4ad0-4961-b424-26206d645fa2","html_url":"https://github.com/x71c9/tempesta","commit_stats":null,"previous_names":["x71c9/tempesta"],"tags_count":76,"template":false,"template_full_name":null,"purl":"pkg:github/x71c9/tempesta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x71c9%2Ftempesta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x71c9%2Ftempesta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x71c9%2Ftempesta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x71c9%2Ftempesta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/x71c9","download_url":"https://codeload.github.com/x71c9/tempesta/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x71c9%2Ftempesta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278989445,"owners_count":26081257,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bookmarks","bookmarks-manager","cli","rust"],"created_at":"2025-10-09T15:53:34.179Z","updated_at":"2025-12-28T16:47:02.575Z","avatar_url":"https://github.com/x71c9.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tempesta\n\nThe fastest and lightest bookmark manager CLI written in Rust.\\\n[Heavily inspired by [`pass`](https://www.passwordstore.org/)]\n\nBookmark management should be simple and follow [Unix philosophy](https://en.wikipedia.org/wiki/Unix_philosophy).\n\nWith Tempesta all bookmarks live in `~/.bookmark-store`, and `tempesta` provides\nsome intuitive commands for adding, updating, editing and open URLs.\n\nIt can also track all the changes using `git`.\n\n## Table of content\n\nHow to use it:\n\n- [Init](#init)\n- [Add a bookmark](#add-a-bookmark)\n- [Edit a bookmark](#edit-a-bookmark)\n- [Get a bookmark](#get-a-bookmark)\n- [Show configuration](#show-configuration)\n- [List bookmarks](#list-bookmarks)\n- [Move a bookmark](#move-a-bookmark)\n- [Open the URL in the browser](#open-the-url-in-the-browser)\n- [Remove a bookmark](#remove-a-bookmark)\n- [Update a bookmark](#update-a-bookmark)\n- [Shortcut](#shortcut)\n\nInstall\n\n- [NixOS/Nix (NUR)](#nixosnix-aur)\n- [Arch Linux (AUR)](#arch-linux-aur)\n- [MacOS (Homebrew)](#macos-homebrew)\n- [Download binaries](#download-binaries)\n- [Build from source](#build-from-source)\n- [Shell completion](#shell-completion)\n\nAlias\n\n- [ZSH Alias](#zsh-alias)\n- [Bash Alias](#bash-alias)\n\nCombine\n\n- [fzf](#fzf)\n- [wofi](#wofi)\n\n## How to use it\n\n### Init\n\nBefore start using it, run:\n\n```bash\ntempesta init\n```\n\nThis will prompt with questions about the set up.\n\n## Configuration\n\nTempesta's configuration file (`tempesta.toml`) is typically located at `~/.config/tempesta/tempesta.toml`.\n\nYou can specify a custom configuration file path using the `--config` or `-c` global flag. This flag can be placed anywhere in the command line:\n\n```bash\ntempesta --config /path/to/your/custom/tempesta.toml init\ntempesta -c /path/to/another/config.toml list\n```\n\nIf the `--config` flag is not provided, Tempesta will check for the `TEMPESTA_CONFIG` environment variable. If set, its value will be used as the configuration file path.\n\nThe `--config` flag takes precedence over the `TEMPESTA_CONFIG` environment variable. If neither is provided, Tempesta defaults to `~/.config/tempesta/tempesta.toml`.\n\nAvailable configuration options are documented in the table below:\n| Option           | Type   | Explanation    |\n| ---------------- | -------| -------------- |\n| git              | bool   | Set to `true` to enable git backend for storing bookmarks |\n| pull_before_push | bool   | Requires the `git` backend enabled, used to pull remote before any push to update |\n| rebase_on_pull   | bool   | Requires `git` \u0026 `rebase_on_pull` enabled, use rebase instead of fast-forward strategy for git pull  |\n| remote           | string | Git https/git url for repository to store bookmarks. |\n| dir              | string | Directory path in local filesystem for bookmark-store |\n\n### Add a bookmark\n\n```bash\ntempesta add \u003clocal-path\u003e \u003curl\u003e\n\ntempesta add search-engines/google \"http://google.com/\"\n```\n\n#### Edit a bookmark in your editor (it check $EDITOR variable)\n\n```bash\ntempesta edit \u003clocal-path\u003e\n\ntempesta edit search-engines/google\n```\n\n#### Get a bookmark\n\nIt prints the URL of the bookmark\n\n```bash\ntempesta get \u003clocal-path\u003e\n\ntempesta get search-engines/google\n```\n\n#### Show configuration\n\nIt prints the current configuration\n\n```bash\ntempesta config\n```\n\n#### List bookmarks\n\n```bash\ntempesta list \u003clocal-path\u003e\n\ntempesta list search-engines/\n```\n\nWithout arguments it lists all the bookmarks\n\n```bash\ntempesta list\n```\n\nList has a parameter that can be passed with the flag `--divisor` that divides\nthe path name to the actual url:\n\n```bash\ntempesta list search-engines/ --divisor=\" --- \"\n```\n\nThis prints:\n\n```bash\nsearch-engines/google --- https://google.com/\nsearch-engines/duck --- https://duckduckgo.com/\n```\n\n#### Move a bookmark\n\n```bash\ntempesta move \u003clocal-path\u003e\n\ntempesta move search-engines/google query-engines/google\n```\n\n#### Open the URL in the browser\n\n```bash\ntempesta open \u003clocal-path\u003e\n\ntempesta open search-engines/google\n```\n\n#### Remove a bookmark\n\n```bash\ntempesta remove \u003clocal-path\u003e\n\ntempesta remove search-engines/google\n```\n\n#### Update a bookmark\n\n```bash\ntempesta update \u003clocal-path\u003e \u003curl\u003e\n\ntempesta update search-engines/google \"https://google.com\"\n```\n\n## Shortcut\n\nYou can use the initial of the methods instead of their full identifier:\n\n```bash\n[a]dd     -- Add a new bookmark\n[c]onfig  -- Show the current configuration\n[e]dit    -- Edit an existing bookmark\n[g]et     -- Get an existing bookmark\n[i]nit    -- Init the bookmark store\n[l]ist    -- List bookmarks\n[m]ove    -- Move a bookmark\n[o]pen    -- Open a bookmark\n[r]emove  -- Remove a bookmark\n[u]pdate  -- Update an existing bookmark\n```\n\nFor example\n\n```bash\ntempesta o search-engines/google\n\ntempesta r search-engines/google\n```\n\n## Install\n\n### NixOS/Nix (NUR)\n\n```bash\n# Direct install\nnix-env -iA nur.repos.x71c9.tempesta -f '\u003cnixpkgs\u003e'\n\n# NixOS configuration\nenvironment.systemPackages = [ nur.repos.x71c9.tempesta ];\n\n# Home Manager\nhome.packages = [ pkgs.nur.repos.x71c9.tempesta ];\n```\n\nThe NUR package includes configurable shell completion support. See [NUR documentation](https://github.com/x71c9/nur-packages/blob/master/pkgs/tempesta/README.md) for completion configuration options.\n\n### Arch Linux (AUR)\n\n```bash\nyay -S tempesta\n```\n\n---\n\n### MacOS (Homebrew)\n\n```bash\nbrew install x71c9/x71c9/tempesta\n```\n\n---\n\n### Download binaries\n\nDownload the latest compatible binaries for your system and architecture:\n[https://github.com/x71c9/tempesta/releases/latest](https://github.com/x71c9/tempesta/releases/latest)\n\n---\n\n### Build from source\n\n#### Install Rust\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\nAfter installation, ensure your environment is updated (or restart your\nterminal) so that the cargo and rustc commands are in your PATH.\n\n```bash\ngit clone https://github.com/x71c9/tempesta\ncd tempesta\ncargo build --release\n\n./target/release/tempesta\n```\n\nIf you want to install the CLI tool so that it’s available in your PATH,\nyou can use in the repo directory:\n\n```bash\ncargo install --path .\n```\n\n### Shell completion\n\n#### BASH\n\n```bash\nsource \u003c(tempesta completion bash)\n# set up autocomplete in bash into the current shell,\n# bash-completion package should be installed first.\necho \"source \u003c(tempesta completion bash)\" \u003e\u003e ~/.bashrc\n# add autocomplete permanently to your bash shell.\n```\n\n#### ZSH\n\n```bash\nsource \u003c(tempesta completion zsh)\n# set up autocomplete in zsh into the current shell\necho '[[ $commands[tempesta] ]] \u0026\u0026 source \u003c(tempesta completion zsh)' \u003e\u003e ~/.zshrc\n# add autocomplete permanently to your zsh shell\n```\n\n#### FISH\n\n```bash\necho 'tempesta completion fish | source' \u003e ~/.config/fish/completions/tempesta.fish \u0026\u0026 source ~/.config/fish/completions/tempesta.fish\n```\n\n### Alias\n\n#### ZSH Alias\n\nMost likely you will alias the command with\n\n```bash\nalias t='tempesta'\n```\n\nIn order to make completion in bash to work with alias you can add the following:\n\n```bash\ncomplete -o default -o nospace -F _tempesta t\n```\n\nwhere the final `t` is the name of the alias.\n\n#### Bash Alias\n\nAutocompletion do not work for bash alias but works when using functions,\ntherefore is recommended to use a function instead, for example:\n\n```bash\nt() {\n  tempesta \"$@\"\n}\ncomplete -o default -o nospace -F _tempesta t\n```\n\n## fzf\n\nIf you are using `fzf` you can pipe the result of `tempesta list` to it:\n\n```bash\ntempesta list | fzf\n```\n\nAnd you can use it in combination with `tempesta open` in order to fuzzy find a\nbookmark and open it in the browser\n\n```bash\n# with AWK\ntempesta list | fzf | awk -F ' *:: *' '{print $1}' | xargs tempesta open\n# with SED\ntempesta list | fzf | sed 's/ *::.*//' | xargs tempesta open\n```\n\nAn alias like this might be useful to open bookmarks:\n\n```bash\nalias tempo=\"tempesta list | fzf | sed 's/ *::.*//' | xargs tempesta open\"\n```\n\n## wofi\n\nIf you are using `wofi` you can pipe the result of `tempesta list` to it:\n\n```bash\ntempesta list | wofi --dmenu --insensitive | xargs tempesta open\n```\n\n## rofi\n\nIf you are using `rofi` you can pipe the result of `tempesta list` to it:\n\n```bash\ntempesta list | rofi -dmenu -i -p \"tempesta\" | xargs tempesta open\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fx71c9%2Ftempesta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fx71c9%2Ftempesta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fx71c9%2Ftempesta/lists"}