{"slug": "rbw", "name": "rbw", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 3, "commenters": 8, "warners": 1, "score": 2.926, "rising": 0.35, "first": "2026-01-14", "latest": "2026-10-10", "why": "I personally switched to rbw (https://github.com/doy/rbw) and its day and night.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 4, "compare": 0, "warn": 1}, "spark": [0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1], "listed": true, "loved": [], "caveat": "", "short_quote": "I personally switched to rbw (https://github.com/doy/rbw) and its day and night.", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/doy/rbw", "official_url": "https://github.com/doy/rbw", "pricing": "", "aliases": ["rbw"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 800594033, "item_id": 50037127, "url": "https://news.ycombinator.com/item?id=50037127", "by": "jttnr", "date": "2026-10-10", "version": null, "stance": "recommend", "quote": "I personally switched to rbw (https://github.com/doy/rbw) and its day and night.", "excerpt": "Same goes for the bitwarden cli (`bw`). Its super slow and if you use it in scripts to pull multiple values (username, password), it takes ages. I personally switched to rbw (https://github.com/doy/rbw) and its day and night.", "context": "", "use_case": "Bitwarden CLI client", "switched_from": "Bitwarden CLI", "story": "Bitwarden Dual License Model"}, {"id": 766037985, "item_id": 47877374, "url": "https://news.ycombinator.com/item?id=47877374", "by": "zie", "date": "2026-04-23", "version": null, "stance": "recommend", "quote": "much better maintained", "excerpt": "It's typescript and pretty sure all of the Official Bitwarden clients are written in it. I wrote a version in Python and then rust back before the official CLI was released. Now you can use https://github.com/doy/rbw instead, much better maintained (since I don't use Bitwarden anymore).", "context": "", "use_case": "", "switched_from": "Bitwarden", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}, {"id": 766034288, "item_id": 47877143, "url": "https://news.ycombinator.com/item?id=47877143", "by": "ruuda", "date": "2026-04-23", "version": null, "stance": "recommend", "quote": "https://github.com/doy/rbw is a Rust alternative to the Bitwarden CLI.", "excerpt": "https://github.com/doy/rbw is a Rust alternative to the Bitwarden CLI. Although the Rust ecosystem is moving in NPM's direction (very large and very deep dependency trees), you still need to trust far fewer authors in your dependency tree than what is common for Javascript.", "context": "", "use_case": "Bitwarden CLI alternative", "switched_from": "", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 766038464, "item_id": 47877404, "url": "https://news.ycombinator.com/item?id=47877404", "by": "pregnenolone", "date": "2026-04-23", "version": null, "stance": "warn", "quote": "You're still pulling a lot of dependencies.", "excerpt": "Well.. https://github.com/doy/rbw/blob/main/Cargo.toml#L16 You're still pulling a lot of dependencies. At least they're pinned though.", "context": "", "use_case": "", "switched_from": "", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}]}], "who": [], "tags": [], "use_cases": ["bitwarden cli client", "bitwarden cli on server", "bitwarden cli alternative", "fetching secrets in shell"], "compared": [{"slug": "bitwarden", "name": "Bitwarden", "co": 4, "switched_from": 2, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=47876043", "title": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=46554774", "title": "Handling secrets (somewhat) securely in shells", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50033407", "title": "Bitwarden Dual License Model", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48163389", "title": "The Quiet Renovation at Bitwarden", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47983687", "title": "I Do Not Recommend Bitwarden", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"neutral": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"recommend": 2, "warn": 1, "neutral": 1}, "2026-05": {"neutral": 2}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {"recommend": 1}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 800594033, "item_id": 50037127, "url": "https://news.ycombinator.com/item?id=50037127", "by": "jttnr", "date": "2026-10-10", "version": null, "stance": "recommend", "quote": "I personally switched to rbw (https://github.com/doy/rbw) and its day and night.", "excerpt": "Same goes for the bitwarden cli (`bw`). Its super slow and if you use it in scripts to pull multiple values (username, password), it takes ages. I personally switched to rbw (https://github.com/doy/rbw) and its day and night.", "context": "", "use_case": "Bitwarden CLI client", "switched_from": "Bitwarden CLI", "story": "Bitwarden Dual License Model"}, {"id": 770988032, "item_id": 48186752, "url": "https://news.ycombinator.com/item?id=48186752", "by": "void-star", "date": "2026-05-18", "version": null, "stance": "neutral", "quote": "https://github.com/doy/rbw Is an alternative Bitwarden cli front end.", "excerpt": "https://github.com/doy/rbw Is an alternative Bitwarden cli front end. Probably has plenty of scaffolding to build a GUI frontend based on it. Edit: Just a bit of googling turned up these as well. https://github.com/AChep/keyguard-app https://github.com/sgolub/bitclient", "context": "", "use_case": "Bitwarden CLI client", "switched_from": "", "story": "The Quiet Renovation at Bitwarden"}, {"id": 767748513, "item_id": 47984282, "url": "https://news.ycombinator.com/item?id=47984282", "by": "wrxd", "date": "2026-05-02", "version": null, "stance": "neutral", "quote": "Maybe I don\u2019t need rbw (the rust reimplementation of bitwarden CLI) in my server", "excerpt": "I use Vaultwarden because I need something cross-platform (macOS and Linux) and with support for passkeys. The idea of using different storage methods for different categories of passwords is very interesting. Maybe I don\u2019t need rbw (the rust reimplementation of bitwarden CLI) in my server and something simpler/different could do the job", "context": "", "use_case": "Bitwarden CLI on server", "switched_from": "", "story": "I Do Not Recommend Bitwarden"}, {"id": 766040912, "item_id": 47877557, "url": "https://news.ycombinator.com/item?id=47877557", "by": "mayama", "date": "2026-04-23", "version": null, "stance": "neutral", "quote": "Including all the dependency tree is 785k LOC", "excerpt": "That's just direct dependencies. Including all the dependency tree is 785k LOC according to lib.rs. Most rust libraries include tons of others. https://lib.rs/crates/rbw", "context": "", "use_case": "", "switched_from": "", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}, {"id": 766038464, "item_id": 47877404, "url": "https://news.ycombinator.com/item?id=47877404", "by": "pregnenolone", "date": "2026-04-23", "version": null, "stance": "warn", "quote": "You're still pulling a lot of dependencies.", "excerpt": "Well.. https://github.com/doy/rbw/blob/main/Cargo.toml#L16 You're still pulling a lot of dependencies. At least they're pinned though.", "context": "", "use_case": "", "switched_from": "", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}, {"id": 766037985, "item_id": 47877374, "url": "https://news.ycombinator.com/item?id=47877374", "by": "zie", "date": "2026-04-23", "version": null, "stance": "recommend", "quote": "much better maintained", "excerpt": "It's typescript and pretty sure all of the Official Bitwarden clients are written in it. I wrote a version in Python and then rust back before the official CLI was released. Now you can use https://github.com/doy/rbw instead, much better maintained (since I don't use Bitwarden anymore).", "context": "", "use_case": "", "switched_from": "Bitwarden", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}, {"id": 766034288, "item_id": 47877143, "url": "https://news.ycombinator.com/item?id=47877143", "by": "ruuda", "date": "2026-04-23", "version": null, "stance": "recommend", "quote": "https://github.com/doy/rbw is a Rust alternative to the Bitwarden CLI.", "excerpt": "https://github.com/doy/rbw is a Rust alternative to the Bitwarden CLI. Although the Rust ecosystem is moving in NPM's direction (very large and very deep dependency trees), you still need to trust far fewer authors in your dependency tree than what is common for Javascript.", "context": "", "use_case": "Bitwarden CLI alternative", "switched_from": "", "story": "Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain"}, {"id": 745822880, "item_id": 46613930, "url": "https://news.ycombinator.com/item?id=46613930", "by": "linuxhackerman", "date": "2026-01-14", "version": null, "stance": "neutral", "quote": "curl -H @<(rbw get gitlab-access-token | sed 's/^/Authorization: Bearer/') https://gitlab.example.com/api/v4/projects", "excerpt": "Process substitution (the `<(echo ...)` approach I used in the post) is practically equivalent to this, creating a path that can be read by the shell and its child processes (and, at least as expanded, _only_ by them) just like a named FIFO -- but without the race condition mentioned by SoftTalker. What you've hinted at and what I didn't mention in the post is that this is indeed a good way to avoid even having the s", "context": "", "use_case": "fetching secrets in shell", "switched_from": "", "story": "Handling secrets (somewhat) securely in shells"}, {"id": 745821425, "item_id": 46613839, "url": "https://news.ycombinator.com/item?id=46613839", "by": "linuxhackerman", "date": "2026-01-14", "version": null, "stance": "neutral", "quote": "it would only be able to replace the `rbw` example", "excerpt": "It's definitely a powerful approach; I don't think it's particularly viable for the sort of use cases where you're throwing secrets around in a shell: - It's not supported natively by most software (if I wanted to use it with `curl` for example, it would only be able to replace the `rbw` example since I still need to pass the secret to curl somehow); - I don't think it's likely to gain widespread adoption, due to bei", "context": "", "use_case": "", "switched_from": "", "story": "Handling secrets (somewhat) securely in shells"}]}