{ "info": { "author": "Birl.org developers", "author_email": "bitwarden@birl.org", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "Cross Platform Bitwarden library and CLI with sudolikeaboss functionality.\n\nThis repo houses both python and rust versions.\n\nsource repo lives @ https://fossil.birl.ca/bitwarden-cli/home \nBut is mirrored to github: \n\thttps://github.com/birlorg/bitwarden-cli\n\nDocumentation: https://fossil.birl.ca/bitwarden-cli/doc/trunk/docs/build/html/index.html\n\nHistoric fun fact: all crypto code had to be written and stored outside \nof the USA at one time.\n\n------------------------------------------------------------ \nEXAMPLE USAGE: \n\nALIAS bw=bitwarden\n\nGET HELP:\n---------\n\n$ bitwarden --help\nUsage: bitwarden [OPTIONS] COMMAND [ARGS]...\n\n Bitwarden CLI program.\n\nOptions:\n --url TEXT\n --identurl TEXT\n --debug / --no-debug\n --db TEXT\n --help Show this message and exit.\n\nCommands:\n deletedb ***THIS ERASES DATA*** Flush and empty the...\n fetch_name fetch by name.\n fetch_uuid fetch by UUID.\n find find query in username,uri this does a simpe...\n login login to server.\n logout logout from server, stop agent and forget all...\n pull pull all records from server, updating local...\n register register a new account on server.\n slab run in slab mode.\n sql query the local data store using SQL.\n status Show various statistics.\n\n$ bitwarden find --help\nUsage: bitwarden find [OPTIONS] QUERY\n\n find query in username,uri\n\n this does a simpe python string find i.e.:\n\n if query in username:\n\n but searches against username and first url\n\n You can export it in almost any format you wish with -f\n\n to get the password once you found an entry use fetch_uuid\n\n complicated example:\n\n bw find example.com -f tsv --no-headers | fzf | cut -f 1 | xargs bitwarden fetch_uuid -p\n\n which means: find all entries with example.com in them, use fzf to select\n a record and return only the password.\n\nOptions:\n -f, --format [csv|tsv|json|yaml|html|xls|xlsx|dbf|latex|ods]\n --headers / --no-headers\n --help Show this message and exit.\n\n---- USAGE:\n\nlogin:\n\tbw login nobody@example.com\n\nit will prompt you for a password. if you are\na moron, you can specify it with --password but don't be a\nmoron.\n\n\nSLAB mode: \"sudolikeaboss is a simple application that aims to make your life as\na dev, ops, or just a random person who likes to ssh and sudo into boxes much,\nmuch easier by allowing you to access your bitwarden passwords on the terminal.\nAll you need is iterm2, bitwarden, a mac, and a dream.\" - from:\nhttps://github.com/ravenac95/sudolikeaboss\n\nslab command for iTerm2: \n\nexport LANG=en_CA.UTF-8;export LOCALE=en_CA.UTF-8; /usr/local/bin/bitwarden slab\n\nif you speak a different language, change the LOCALE and LANG settings above.\n\nWe support self-hosted installations just pass --url and --identurl The url will\nbe saved indefinitely, you do not need to set it every time (not even when you\nlogin again, it will be remembered) see bw login --help for details.\n\n-----------------------------------------------------------------------\nSECURITY:\n\nBitwarden works by having a \"master key\" that is computed from your email and\npassword. This needs to be kept \"safe\", but this is a CLI program. We could\nstore the master key on disk somewhere, but that's a bad idea.\n\nThe way we do this is with an in-memory 'agent' that listens on a 127.0.0.1 port\n(configurable, but defaults to 6277) see: python/bitwarden/agent.py for all the\ndetails. Bonus if you figure out why that port # :). Ideally on POSIX platforms\nit would use a socket on disk somewhere to communicate, but I wanted this to\nwork on Windows, so this is what we can do.. :) patches welcoome to fix this up\non POSIX.\n\nwhen you login, it starts up the agent, with a timeout set to the login\naccess_token timeout in seconds, since we do not currently support re-freshing\nthe token. At the end of the token lease, the agent will kill itself and stop\nrunning. (this is configurable, but not exported to the CLI yet -- patches\nwelcome)\n\nThe agent requires a token to get the master key from it's in-memory store.\nThis is currently 16 bytes of os.urandom() on startup and is stored on disk, but\nchanges every time a new agent runs.details are in python/bitwarden/db.py\n\nThis should mostly function fine on Windows, but is currently untested. bug\nreports and patches welcome.\n\n-----------------------------------------------------------------------\nINSTALLATION\n\nNOTE: the rust and python are 2 different implementations that are not\n(currently) tied together. you need not install both, just install one (the\npythone one currently if you want it to work)..\n\nrust installation:\n\tclone the repo (either fossil or git)\n\tcd rust cargo build --release\n\tcp target/release/bitwarden /usr/local/bin/bitwarden\n\tthen follow DB setup instructions below.\n\npython installation:\n\tclone the repo (either fossil or git)\n\tcd python\n\tpython3 setup.py install\n\tthen follow DB setup instructions below.\n\n\tor better yet, use pipenv.\n\nCommon to both, the DB setup:\nIf you have liquibase and the sqlite JDBC driver,\nrun tools/lb.sh Otherwise copy over the blank DB (with schema installed) I\ninclude in the tools/ dir the directory it belongs in is platform dependent, run\nbitwarden and it will tell you. Alternatively you can put the DB wherever you\nlike and always prepend --db to your commands (not recommended)\n\n\n-------------------------------------------------------------------\nTROUBLESHOOTING:\nexport DEBUG=true and then run bitwarden. or bitwarden --debug \n\nIt will output LOTS\nof stuff, some of it is security sensitive, so be careful when you copy/paste\nthe logs.\n\neither email or reach out via fossil or github tickets.\n\n\n--------------------------------\nTODO planned(code welcome):\n\n * Finish off minimal implementation(MVP) of the python version (add, etc)\n * Build and release executables for mac and windows. build Makefile to automate\n this.\n * Finish off rust crypto and agent, port python version to use rust crypto and\n agent\n * Add server support (i.e. can also act like a server, so you could for\n instance have your local browser and desktop talk locally and work 100%\n off-line)\n * Fix up documentation in\n HTML(http://fossil-scm.org/index.html/doc/trunk/www/embeddeddoc.wiki) and\n make prettier.\n\n\nGoals:\n * be a useful bitwarden tool that works on openBSD, debian, macOS and windows\n since these are the platforms I spend most of my time on. UI is abysmal,\n thanks to @kspearrin for doing that slog, go pay him, I do.\n * Be able to work off-line completely if you wish. This mostly works now.\n\nNon-Goals:\n * GUI's because writing them is misery. @kspearrin has this well-handled! YAY!\n\n\nThe idea behind the CLI here is to think of the server as a place to push / pull\nagaint. The local copy of the DB should be resilient and not erase anything\never without explicitly saying so, so that full historic backups are possible.\nthink more like revision control. This is not fully fleshed out, at the time\nof this writing..\n\n\n-----------\n\nContributing:\n\nIf you use fossil, just send me a place to pull from or setup a login and\nemail/contact me and I will give you push rights. if you refuse to use fossil,\nyou can email me patches. Or you can use github and pull-requests, I guess.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you shall be dual licensed as above, without any\nadditional terms or conditions.\n\nLicense\n\nLicensed under either of\n\n Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)\n MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.\n\nemail: bitwarden @at@ birl.ca\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://fossil.birl.ca/bitwarden-cli/doc/trunk/README.txt", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bitwarden", "package_url": "https://pypi.org/project/bitwarden/", "platform": "", "project_url": "https://pypi.org/project/bitwarden/", "project_urls": { "Homepage": "https://fossil.birl.ca/bitwarden-cli/doc/trunk/README.txt" }, "release_url": "https://pypi.org/project/bitwarden/0.4.0/", "requires_dist": [ "attrs (==17.4.0)", "certifi (==2018.1.18)", "click (==6.7)", "click-log (==0.2.1)", "cryptography (==2.2.2)", "psutil (==5.4.3)", "pystandardpaths (==0.3.2)", "python-daemon (==2.1.2)", "records (==0.5.2)", "requests (==2.18.4)", "tablib (==0.12.1)", "web.py (==0.40.dev1)" ], "requires_python": "", "summary": "Cross Platform Bitwarden library and CLI with sudolikeaboss.", "version": "0.4.0" }, "last_serial": 3769552, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "f7a3ee5b6351c8338bdc66d48f53b2f3", "sha256": "fa0a3c8463ea9a803c95628400d5eed8c7dfe64fda6a7aaa7062fd274eaa0b88" }, "downloads": -1, "filename": "bitwarden-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f7a3ee5b6351c8338bdc66d48f53b2f3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18701, "upload_time": "2018-04-08T22:30:56", "url": "https://files.pythonhosted.org/packages/d5/1f/add092bac53f4ea73bc17ae7e37fd07da08bc51363e977108366a7f83d4d/bitwarden-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "afcde0e4f7b88085548deb4e81edaedf", "sha256": "fedd5d17ffa1ccaab31d07d396e34858e5de9280ee792ff61bbf3aef7fb68d84" }, "downloads": -1, "filename": "bitwarden-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "afcde0e4f7b88085548deb4e81edaedf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18696, "upload_time": "2018-04-08T22:30:58", "url": "https://files.pythonhosted.org/packages/c8/83/ba7aecc9a99a05e2ef08e88596a80128288bd20f005afbb9ea1615c4791d/bitwarden-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35475de8a6922961eb11e56a98608a7e", "sha256": "e8c92c7cd61a7c949e68992c6d7c660a67e890e456e000a401e39327fbb279a1" }, "downloads": -1, "filename": "bitwarden-0.2.1.tar.gz", "has_sig": false, "md5_digest": "35475de8a6922961eb11e56a98608a7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18925, "upload_time": "2018-04-08T22:30:59", "url": "https://files.pythonhosted.org/packages/7c/9d/592407a157e4aaec4831887486e0a6249e97dd784d120f4e6c4789d15864/bitwarden-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9cb1ce8178820f844cd35b2c34a469f8", "sha256": "66dd72f27d294fa1a70e06c8ee8d54d9e9a9c145524647e7fa5b5ddb5c02195d" }, "downloads": -1, "filename": "bitwarden-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9cb1ce8178820f844cd35b2c34a469f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19883, "upload_time": "2018-04-09T16:26:17", "url": "https://files.pythonhosted.org/packages/f0/8e/107991f1e56a81259827fb3a4542a26bd2628da15a96917ad3464a47d03d/bitwarden-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77a5a39ec91e0e452cf1ef92c91b4fa4", "sha256": "34c85da48fc703911fb75fe47e27545be112bb7e1884fcd82e4f6415c21108a5" }, "downloads": -1, "filename": "bitwarden-0.2.2.tar.gz", "has_sig": false, "md5_digest": "77a5a39ec91e0e452cf1ef92c91b4fa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20668, "upload_time": "2018-04-09T16:26:19", "url": "https://files.pythonhosted.org/packages/0e/34/7662fc34505b8fb2ca4160e08b81dcad47a25c5cad7f82e596ab38af6879/bitwarden-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "de48a305040d472df043aa75838d74cb", "sha256": "bbf9a74d5690c3cc66e6edf3fe4cbb608adffc5317d13d1d88b3539c73f8368e" }, "downloads": -1, "filename": "bitwarden-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "de48a305040d472df043aa75838d74cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20354, "upload_time": "2018-04-10T18:56:43", "url": "https://files.pythonhosted.org/packages/09/39/6e104388b91ec505fbfe2d3f98d4ec1edda7bc39313e5c110abf35f4b461/bitwarden-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dc2b7132b91d8bedd508b06ad9a037c", "sha256": "0b45921e63fdd1d0b440120dd313142ac7dbace4ce06bb63b790b58f5a2589e5" }, "downloads": -1, "filename": "bitwarden-0.2.3.tar.gz", "has_sig": false, "md5_digest": "2dc2b7132b91d8bedd508b06ad9a037c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21152, "upload_time": "2018-04-10T18:56:45", "url": "https://files.pythonhosted.org/packages/d5/79/61cc3be491db48d9b3a1fe5223854e6fed0d2838a1d45d1c084c37721ac0/bitwarden-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "e4f4e1948fcc33fec6cd046f0e302e64", "sha256": "48922a6dad08580acb739b32be3a2e118fd4f34065f160be697f0e1f007223a6" }, "downloads": -1, "filename": "bitwarden-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e4f4e1948fcc33fec6cd046f0e302e64", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20377, "upload_time": "2018-04-10T19:01:27", "url": "https://files.pythonhosted.org/packages/d6/d2/d57bfb792ebdd431d61e79da98aeb3e42d98dbc1d2b774cf995c6c2aae4f/bitwarden-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f514d1c0fc172a8d4ae1acca0ca3f1e8", "sha256": "c1b1005971a1c8f2ca9452d8541d5fdbbd6feba5ff4bd8abfedab37637685236" }, "downloads": -1, "filename": "bitwarden-0.2.4.tar.gz", "has_sig": false, "md5_digest": "f514d1c0fc172a8d4ae1acca0ca3f1e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21168, "upload_time": "2018-04-10T19:01:29", "url": "https://files.pythonhosted.org/packages/53/fc/a67d01a4d501bcfb7ca6bf38146314507fcfd3f80bdbbdf1fea2321d9e58/bitwarden-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f0515421b7da7af7e8f3ee58c7827b9c", "sha256": "8ce41f8ffc5f1b19bd01cecd247b143ee5a3ad7e9b21f53411f279032b974f7f" }, "downloads": -1, "filename": "bitwarden-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f0515421b7da7af7e8f3ee58c7827b9c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21777, "upload_time": "2018-04-11T19:37:56", "url": "https://files.pythonhosted.org/packages/e9/51/3162e3c2699ccf482cad58803fa59ac435b85ce3dd235071e40a3ee7b7aa/bitwarden-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70c2771907609df857d2c6b3db5007ad", "sha256": "f54cd4b353bb90a4dfcdeca28c1be2f692e26d0296346d1548c01ecbafaf2414" }, "downloads": -1, "filename": "bitwarden-0.3.0.tar.gz", "has_sig": false, "md5_digest": "70c2771907609df857d2c6b3db5007ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22512, "upload_time": "2018-04-11T19:37:57", "url": "https://files.pythonhosted.org/packages/28/de/c771e089c7a10541030d61e9c6e122aab7e238f178d29c8ffc989047a2ba/bitwarden-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "64afef35c59fc0872741dcdb59d3b159", "sha256": "2c2e1dafc6e5046ac085c0151404e4547151cbee14c07faa0f901ad6928b3018" }, "downloads": -1, "filename": "bitwarden-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "64afef35c59fc0872741dcdb59d3b159", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22034, "upload_time": "2018-04-12T00:38:08", "url": "https://files.pythonhosted.org/packages/4e/8d/3b0e5ea3f59b7d1f4919b2ace8750418e93bb12081bb1e424bdf0de445e4/bitwarden-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f322505d4f8cf5a4ba44e970aeecb09", "sha256": "bf3e64da799892cbdb6caeb0d7e3e3239de34ccc9d3537b8b6dad898bdba2123" }, "downloads": -1, "filename": "bitwarden-0.3.1.tar.gz", "has_sig": false, "md5_digest": "8f322505d4f8cf5a4ba44e970aeecb09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22696, "upload_time": "2018-04-12T00:38:10", "url": "https://files.pythonhosted.org/packages/5c/86/459e7772546025fc8480aef0f744ac6d0a1e27cb4d9c322ac4d48256af10/bitwarden-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6475ac5084c436922ddc4b643feaac20", "sha256": "6d77a2ba062da9175ab2e6e86e3ccab5861759768ac2cd6175ac003868ab9d9c" }, "downloads": -1, "filename": "bitwarden-0.4.0-py3-none-any.whl", "has_sig": true, "md5_digest": "6475ac5084c436922ddc4b643feaac20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23362, "upload_time": "2018-04-16T15:06:16", "url": "https://files.pythonhosted.org/packages/f0/27/07a141d81c7f1b8e0b44e7b9b6476f59498051b4bd1ee5c87265142970bd/bitwarden-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ca14816bafc2902bfb7982b91997ce0", "sha256": "ef5b06809d3ecc883133b115c3e6c22a1aa76492f46efbe20e0a3f3093c5d902" }, "downloads": -1, "filename": "bitwarden-0.4.0.tar.gz", "has_sig": true, "md5_digest": "6ca14816bafc2902bfb7982b91997ce0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23748, "upload_time": "2018-04-16T15:06:18", "url": "https://files.pythonhosted.org/packages/80/40/fea3195de0d7440499690a5d41423f21f7e07cfad5c3cd5791decc3611cb/bitwarden-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6475ac5084c436922ddc4b643feaac20", "sha256": "6d77a2ba062da9175ab2e6e86e3ccab5861759768ac2cd6175ac003868ab9d9c" }, "downloads": -1, "filename": "bitwarden-0.4.0-py3-none-any.whl", "has_sig": true, "md5_digest": "6475ac5084c436922ddc4b643feaac20", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23362, "upload_time": "2018-04-16T15:06:16", "url": "https://files.pythonhosted.org/packages/f0/27/07a141d81c7f1b8e0b44e7b9b6476f59498051b4bd1ee5c87265142970bd/bitwarden-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ca14816bafc2902bfb7982b91997ce0", "sha256": "ef5b06809d3ecc883133b115c3e6c22a1aa76492f46efbe20e0a3f3093c5d902" }, "downloads": -1, "filename": "bitwarden-0.4.0.tar.gz", "has_sig": true, "md5_digest": "6ca14816bafc2902bfb7982b91997ce0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23748, "upload_time": "2018-04-16T15:06:18", "url": "https://files.pythonhosted.org/packages/80/40/fea3195de0d7440499690a5d41423f21f7e07cfad5c3cd5791decc3611cb/bitwarden-0.4.0.tar.gz" } ] }