{"id":13587102,"url":"https://github.com/doy/rbw","last_synced_at":"2025-04-13T01:58:31.461Z","repository":{"id":39622268,"uuid":"253478097","full_name":"doy/rbw","owner":"doy","description":"unofficial bitwarden cli","archived":false,"fork":false,"pushed_at":"2025-02-09T05:40:13.000Z","size":760,"stargazers_count":748,"open_issues_count":56,"forks_count":102,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-13T01:58:04.984Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://git.tozt.net/rbw","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2020-04-06T11:33:06.000Z","updated_at":"2025-04-08T16:30:47.000Z","dependencies_parsed_at":"2024-01-07T21:22:00.216Z","dependency_job_id":"3689fd21-dbce-469e-b333-b9ffe26a2260","html_url":"https://github.com/doy/rbw","commit_stats":{"total_commits":321,"total_committers":18,"mean_commits":"17.833333333333332","dds":0.06230529595015577,"last_synced_commit":"0509f3070dd66f5e770dd970f7def6878a57ddd8"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doy%2Frbw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doy%2Frbw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doy%2Frbw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doy%2Frbw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doy","download_url":"https://codeload.github.com/doy/rbw/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654048,"owners_count":21140235,"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","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":[],"created_at":"2024-08-01T15:06:01.360Z","updated_at":"2025-04-13T01:58:31.437Z","avatar_url":"https://github.com/doy.png","language":"Rust","funding_links":[],"categories":["Rust","CLI","\u003ca name=\"password-manager\"\u003e\u003c/a\u003ePassword managers"],"sub_categories":[],"readme":"# rbw\n\nThis is an unofficial command line client for\n[Bitwarden](https://bitwarden.com/). Although it does come with its own\n[command line client](https://help.bitwarden.com/article/cli/), this client is\nlimited by being stateless - to use it, you're required to manually lock and\nunlock the client, and pass the temporary keys around in environment variables,\nwhich makes it very difficult to use. This client avoids this problem by\nmaintaining a background process which is able to hold the keys in memory,\nsimilar to the way that `ssh-agent` or `gpg-agent` work. This allows the client\nto be used in a much simpler way, with the background agent taking care of\nmaintaining the necessary state.\n\n## Maintenance\n\nI consider `rbw` to be essentially feature-complete for me at this point. While\nI still use it on a daily basis, and will continue to fix regressions as they\noccur, I am unlikely to spend time implementing new features on my own. If you\nwould like to see new functionality in `rbw`, I am more than happy to review\nand merge pull requests implementing those features.\n\n## Installation\n\n### Arch Linux\n\n`rbw` is available in the [extra\nrepository](https://archlinux.org/packages/extra/x86_64/rbw/).\nAlternatively, you can install\n[`rbw-git`](https://aur.archlinux.org/packages/rbw-git/) from the AUR, which\nwill always build from the latest master commit.\n\n### Debian/Ubuntu\n\nYou can download a Debian package from\n[https://git.tozt.net/rbw/releases/deb/\n](https://git.tozt.net/rbw/releases/deb/). The packages are signed by\n[`minisign`](https://github.com/jedisct1/minisign), and can be verified using\nthe public key `RWTM0AZ5RpROOfAIWx1HvYQ6pw1+FKwN6526UFTKNImP/Hz3ynCFst3r`.\n\n### Fedora/EPEL\n\n`rbw` is available in [Fedora and EPEL 9](https://bodhi.fedoraproject.org/updates/?packages=rust-rbw)\n(for RHEL and compatible distributions).\n\nYou can install it using `sudo dnf install rbw`.\n\n### Homebrew\n\n`rbw` is available in the [Homebrew repository](https://formulae.brew.sh/formula/rbw). You can install it via `brew install rbw`.\n\n### Nix\n\n`rbw` is available in the\n[NixOS repository](https://search.nixos.org/packages?show=rbw). You can try\nit out via `nix-shell -p rbw`.\n\n### Alpine\n\n`rbw` is available in the [testing repository](https://pkgs.alpinelinux.org/packages?name=rbw).\nIf you are not using the `edge` version of alpine you have to [enable the repository manually](https://wiki.alpinelinux.org/wiki/Repositories#Testing).\n\n### Other\n\nWith a working Rust installation, `rbw` can be installed via `cargo install\n--locked rbw`. This requires that the\n[`pinentry`](https://www.gnupg.org/related_software/pinentry/index.en.html)\nprogram is installed (to display password prompts).\n\n## Configuration\n\nConfiguration options are set using the `rbw config` command. Available\nconfiguration options:\n\n* `email`: The email address to use as the account name when logging into the\n  Bitwarden server. Required.\n* `sso_id`: The SSO organization ID. Defaults to regular login process if unset.\n* `base_url`: The URL of the Bitwarden server to use. Defaults to the official\n  server at `https://api.bitwarden.com/` if unset.\n* `identity_url`: The URL of the Bitwarden identity server to use. If unset,\n  will use the `/identity` path on the configured `base_url`, or\n  `https://identity.bitwarden.com/` if no `base_url` is set.\n* `ui_url`: The URL of the Bitwarden UI to use. If unset,\n  will default to `https://vault.bitwarden.com/`.\n* `notifications_url`: The URL of the Bitwarden notifications server to use.\n  If unset, will use the `/notifications` path on the configured `base_url`,\n  or `https://notifications.bitwarden.com/` if no `base_url` is set.\n* `lock_timeout`: The number of seconds to keep the master keys in memory for\n  before requiring the password to be entered again. Defaults to `3600` (one\n  hour).\n* `sync_interval`: `rbw` will automatically sync the database from the server\n  at an interval of this many seconds, while the agent is running. Setting\n  this value to `0` disables this behavior. Defaults to `3600` (one hour).\n* `pinentry`: The\n  [pinentry](https://www.gnupg.org/related_software/pinentry/index.html)\n  executable to use. Defaults to `pinentry`.\n\n### Profiles\n\n`rbw` supports different configuration profiles, which can be switched\nbetween by using the `RBW_PROFILE` environment variable. Setting it to a name\n(for example, `RBW_PROFILE=work` or `RBW_PROFILE=personal`) can be used to\nswitch between several different vaults - each will use its own separate\nconfiguration, local vault, and agent.\n\n## Usage\n\nCommands can generally be used directly, and will handle logging in or\nunlocking as necessary. For instance, running `rbw ls` will run `rbw unlock` to\nunlock the password database before generating the list of entries (but will\nnot attempt to log in to the server), `rbw sync` will automatically run `rbw\nlogin` to log in to the server before downloading the password database (but\nwill not unlock the database), and `rbw add` will do both.\n\nLogging into the server and unlocking the database will only be done as\nnecessary, so running `rbw login` when you are already logged in will do\nnothing, and similarly for `rbw unlock`. If necessary, you can explicitly log\nout by running `rbw purge`, and you can explicitly lock the database by running\n`rbw lock` or `rbw stop-agent`.\n\n`rbw help` can be used to get more information about the available\nfunctionality.\n\nRun `rbw get \u003cname\u003e` to get your passwords. If you also want to get the username\nor the note associated, you can use the flag `--full`. You can also use the flag\n`--field={field}` to get whatever default or custom field you want. The `--raw`\nflag will show the output as JSON. In addition to matching against the name,\nyou can pass a UUID as the name to search for the entry with that id, or a\nURL to search for an entry with a matching website entry.\n\n*Note to users of the official Bitwarden server (at bitwarden.com)*: The\nofficial server has a tendency to detect command line traffic as bot traffic\n(see [this issue](https://github.com/bitwarden/cli/issues/383) for details). In\norder to use `rbw` with the official Bitwarden server, you will need to first\nrun `rbw register` to register each device using `rbw` with the Bitwarden\nserver. This will prompt you for your personal API key which you can find using\nthe instructions [here](https://bitwarden.com/help/article/personal-api-key/).\n\n## Related projects\n\n* [rofi-rbw](https://github.com/fdw/rofi-rbw): A rofi frontend for Bitwarden\n* [bw-ssh](https://framagit.org/Glandos/bw-ssh/): Manage SSH key passphrases in Bitwarden\n* [rbw-menu](https://github.com/rbuchberger/rbw-menu): Tiny menu picker for rbw\n* [ulauncher-rbw](https://0xacab.org/varac-projects/ulauncher-rbw): [Ulauncher](https://ulauncher.io/) rbw extension\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoy%2Frbw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoy%2Frbw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoy%2Frbw/lists"}