bitwarden / cli

The command line vault (Windows, macOS, & Linux).
https://bitwarden.com
GNU General Public License v3.0
1.62k stars 173 forks source link

Is a command line client planned? #1

Closed fortes closed 6 years ago

fortes commented 7 years ago

Is this just a placeholder repository, or are there actual plans here?

nogweii commented 7 years ago

Another request for more information!

Are you planning on writing the client in a particular language?

nojaf commented 7 years ago

Any updates here?

jamesbvaughan commented 7 years ago

Bump.

I'd love to have a command line client as well! Any updates now?

TheDan64 commented 7 years ago

Rust might be a good choice to write this in; given that it is a memory safe language.

fidiego commented 7 years ago

Bumpiddy bump bump bump

victorjtfranco commented 6 years ago

From https://bitwarden.com/ : image

davekaufman commented 6 years ago

I'd love to switch from LastPass Premium - a command line interface to bitwarden is the only thing stopping me. Please implement!

scotte commented 6 years ago

Lack of a command line keeps me from trying bitwarden, so I'll continue to use a combination of keepassxc and pass (passwordstore.org) for now, I guess. I'd really like to have a unified solution for command line, web, and Android.

jamesbvaughan commented 6 years ago

I really like Bitwarden and wanted to continue to support it, but the lack of a CLI client was pretty frustrating.

If anyone here is in need of a great CLI password manager, I'd highly recommend pass. I reluctantly switched from Bitwarden a while ago after I gave up on getting a CLI client, and it's been really great. I added Bitwarden support to the pass importer so it should be pretty easy to switch.

ghost commented 6 years ago

Any details on the plans for this app? How can we help?

kspearrin commented 6 years ago

All: Yes, a CLI is planned, which is why this repo exists. There is no timeline planned for it yet, other than we plan to build it. Hopefully later this year after we ship the desktop app (being worked on now).

zpeters commented 6 years ago

seems like there is a good deal of interest here. as an end user is there anything we can do to help the process? Wishlist of features. Volunteer work, etc. I can't speak for everyone but I'm willing to donate my personal time and skills to get things moving.

On Jan 26, 2018 1:15 PM, "Kyle Spearrin" notifications@github.com wrote:

All: Yes, a CLI is planned, which is why this repo exists. There is no timeline planned for it yet, other than we plan to build it. Hopefully later this year after we ship the desktop app (being worked on now).

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/bitwarden/cli/issues/1#issuecomment-360877792, or mute the thread https://github.com/notifications/unsubscribe-auth/AACa33SkqOIwJGo_nppaExvkUCi_uE5bks5tOiRbgaJpZM4Mlw5m .

kspearrin commented 6 years ago

@zpeters There is a bit of discovery that needs to be done before we can start working on the CLI app. I have never personally used a CLI for password management (I'm not really a heavy CLI app user all around for that matter) so I will need to "survey the field" to educate myself and see what features our competitors offer, what's good about each, what's not good, etc. Detailed input regarding that would be a good starter.

Technology wise we will likely end up building this with .NET Core (C#) or NodeJS (JavaScript/TypeScript), since these are the two technologies we use across the board for all of our work. They both offer the cross-platform compatibility that we need for the CLI.

schmitmd commented 6 years ago

@kspearrin How would you like that request/wishlist submitted? A gist? I imagine a comment in this issue isn't the best.

kspearrin commented 6 years ago

You can reply here or open a new issue for discussion.

maetthu commented 6 years ago

@kspearrin My primary use case for a CLI would be automated backups/exports. I do like the convenience of a hosted solution, but like to keep my data at a safe place in my control as well. As an alternative, API docs would be really nice - I was thinking about reverse engineering the chrome extension to build a simple backup tool, but it's a bit tedious and would be much easier with API docs. And if someone needs to do other automation tasks (like automatic password changes), it might be even easier/cleaner with an (REST-)API than with a CLI.

scotte commented 6 years ago

I went ahead and paid for premium bitwarden in support of this and the Linux client, and in general towards bitwarden being a future single source of truth for passwords...

zpeters commented 6 years ago

I'm agreeing w/ @maetthu but my use case would be slightly different. I'd like a cli or "easy to use" api access to integrate bitwarden in "alternative" browsers. One i was working on was qutebrowser, but it was a dead-end for me because i didn't have a convenient way to tie in bitwarden.

Thinking out loud here but it might be less effort on the bitwarden teams side to just get the api/api docs up to a good standard and let the community develop the CLI? That might be more manageable from a "community" standpoint. i could imagine different people will want different things out of a cli. Depending on the environment they might need to be particular to the programming language, etc.

Happy to help out & contribute however i can!

Mange commented 6 years ago

Thinking out loud here but it might be less effort on the bitwarden teams side to just get the api/api docs up to a good standard and let the community develop the CLI?

My primary usecase is twofold: Wrapping the CLI in other programs (to quickly connect to some machine over SSH, or to download and install something, writing a small GUI, etc) and to be able to reverse-engineer it to create my own CLI and/or library in a language that I use for my own stuff.

Having good API documentation and a stable API would also help me achieve these goals, so for me that would be sufficient.

NonlinearFruit commented 6 years ago

My main use case for my cli password manager is:

  1. pswd github | yy
  2. [master password]
  3. git push
  4. NonlinearFruit
  5. Ctrl+Shift+V
  6. Done

pswd is the alias for my password manager and yy my alias for xclip

johnolos commented 6 years ago

My two cents: Rust seems like a good alternative to write the CLI with.

Furthermore; I use fzf quite heavily, and being able to wrap my own alias around the use of stdin/stdout with Bitwarden CLI is a must-have feature for me.

Example: https://github.com/junegunn/fzf/wiki/Examples-(fish)#lastpass-cli

birlorg commented 6 years ago

I've written alpha quality CLI client in python3 and rust, the crypto works, the CLI itself is functional, but is very very limited at the moment. On macOS, it implements sudolikeaboss functionality. help making it better is appreciated. source repository links:

fossil-scm: https://fossil.birl.ca/bitwarden-cli/home github mirror: https://github.com/birlorg/bitwarden-cli

@johnolos on macOS the slab functionality is superior IMHO and is implemented in my repo now. Should be trivial to support your method as well, but I'll tackle that tomorrow probably.

maetthu commented 6 years ago

@birlorg A word of caution, given that you are using rust-crypto: This library is more or less abandoned (last release ~2 years ago) and states in its README: "Rust-Crypto has not been thoroughly audited for correctness, so any use where security is important is not recommended at this time.". (I don't know much about rust, so I don't know about better alternatives, I just checked out its crypto support for another project a while back). But thanks for your work, I'll gladly test the python version soon :smiley:

birlorg commented 6 years ago

@maetthu Thanks! I must have missed that. The crypto code needed a serious re-factor anyway ;)

birlorg commented 6 years ago

@johnolos @NonlinearFruit implemented:

bitwarden find example.com -f tsv --no-headers | fzf | cut -f 1 | xargs bitwarden fetch_uuid -p

bitwarden find --help will show details and this example.

even easier now in 0.3.0 release:

bitwarden config slab_location `which fzf`

then to run:

bitwarden slab

and it will launch fzf and everything and spit out the password. it only searches entries with a url sudolikeaboss://local however (and lets you pick from any one with that URI) bitwarden find will work for any URI.

johnolos commented 6 years ago

@birlorg : I'll make sure to check out your rust-version when I have time.

Edit: Regarding crypto-libs in rust: https://github.com/rust-unofficial/awesome-rust#cryptography

birlorg commented 6 years ago

@johnolos That list includes rust-crypto which apparently is dead. hyper, and tokio call out to openssl it seems, so that is probably where I will end-up. Also I'm pretty sure that is where the NPM/nodejs insanity eventually lands which bitwarden proper seems to use.

kspearrin commented 6 years ago

For those interested, I have started working on this project. You can follow along in the master branch.

kspearrin commented 6 years ago

The CLI is now complete and has been released as a public beta test. You can participate in the beta if you like in this issue: https://github.com/bitwarden/cli/issues/3 . A full release will follow the beta test, hopefully sometime next week.

WIP docs about using the CLI: https://help.bitwarden.com/article/cli/

This issue will now be closed.

CLI

kspearrin commented 6 years ago

This CLI is now generally available. See this blog post for the release announcement: https://blog.bitwarden.com/bitwarden-command-line-tool-now-available-e6184407b719