{ "info": { "author": "Remy Rojas", "author_email": "remy.rojas@pm.me", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: Unix", "Programming Language :: Python :: 3" ], "description": "This project was **heavily** inspired by and builds on top of the ideas in [bitwarden-rofi](https://github.com/mattydebie/bitwarden-rofi). Be sure to check it out!\n\n# Jimpass (alpha) - The unified password management interface\n\n[![Build Status](https://travis-ci.com/remyrd/jimpass.svg?branch=master)](https://travis-ci.com/remyrd/jimpass) [![PyPI version](https://badge.fury.io/py/Jimpass.svg)](https://badge.fury.io/py/Jimpass)\n\n[Jimsort](https://cmpwn.com/@sir/102220283470088263), but for passwords.\n\n---\n- [Jimpass (alpha) - The unified password management interface](#jimpass---the-unified-password-management-interface)\n * [Features](#features)\n * [Supported Managers](#supported-managers)\n * [Dependencies](#dependencies)\n * [Installation](#installation)\n * [Usage](#usage)\n * [Configuration](#configuration)\n * [Roadmap](#roadmap)\n * [Extending](#extending)\n * [License](#license)\n\n---\n\nA backend-agnostic credential launcher/manager. Powered by [Rofi](https://github.com/davatorium/rofi).\n\n---\n\nThere is no doubt password managers make security online better and easier, yet their use involves a lot of moving, searching and clicking. This is tedious at best, and depending on the context, they'll require additional software just to do some good old copy/pasting. In my experience it's really hard to convince someone to switch from their universal 8 year old muscle-memory-typed password, over to installing 2 apps and a browser extension which require a different search and click choreography to get similar results.\n\nThe people behind [bitwarden-rofi](https://github.com/mattydebie/bitwarden-rofi) nailed it by bridging this UX gap for [*Bitwarden*](https://bitwarden.com/) users. But, what if I don't use Bitwarden, or even worse, what if I need to use **multiple** managers? That's where Jim comes into play.\n\n## Features\n\n- __Auto-type__: For those too busy to paste the selected password, fill-in username/passwords automatically. \n\n :warning: Introducing __Danger mode__: end by typing in `` automatically :warning:\n\n- __TOTP support__: Copy the TOTP of the selected entry to your clipboard\n- __Sync__: Force the local databases to sync up with the remote backend\n- __Custom keybindings__: Define your own keybindings for different actions supported at runtime\n- __Custom item display__: Choose how and what is displayed in Rofi for each password manager using `{}`. Eg. `\"Work(lastpass): {name} -- {username} ({email})\"`\n- __Lock timeout(bitwarden only)__: Set a timer before having to re-enter your Master Password. Can be disabled.\n- __Clipboard timeout__: Set a timeout after which the keyboard is cleared\n\n## Supported Managers\n\n- [Bitwarden](https://bitwarden.com/)\n- [LastPass](https://www.lastpass.com/)\n\nThe architecture allows anyone to extend Jim to use their password manager, provided there's a CLI for it.\nSee the [currently implemented ones](jimpass/managers)\n\n## Dependencies\n\n- [python3.6+](https://www.python.org/)\n- [rofi](https://github.com/davatorium/rofi)\n- [xdotool](https://www.semicomplete.com/projects/xdotool/)\n- `xclip` / `wl-copy` / `xsel`\n\nJim communicates with each password manager through specific CLIs.\nOnly install and configure those you use.\n- [Bitwarden](https://github.com/bitwarden/cli)\n- [LastPass](https://github.com/lastpass/lastpass-cli)\n\n\n## Installation\n\nUsing pip:\n\n```bash\npip install Jimpass\n```\n\nLocally:\n\n```bash\ngit clone https://github.com/remyrd/jimpass\ncd jimpass\npip install .\n# or\npython setup.py install\n```\n\n## Usage\n\nIn order to use Jimpass efficiently, bind the `jp` or `jimpass` command to a key combination of your choice.\nThe command comes with these options, which will override their counterpart in the [configuration](#configuration)\n\n```\nUsage: [OPTIONS]\n\n CLI Entrypoint\n\nOptions:\n -c, --config FILENAME Path to the config file. Defaults to\n $HOME/.jimpass.yaml or\n $XDG_CONFIG_HOME/jimpass/config.yaml\n --auto-lock Incompatible with --no-auto-lock\n --no-auto-lock Incompatible with --auto-lock\n --lock-timer INTEGER RANGE Lock the database after RANGE seconds,\n ignored if --no-auto-lock\n --clipboard-timeout INTEGER RANGE\n RANGE seconds before clearing up the\n clipboard after copying\n --copy-command [xclip|xset|wayland]\n Utility to use when copying\n --danger-mode Automatically press Return after auto-type\n --help Show this message and exit.\n\n```\n\n\n## Configuration\n\nJimpass requires at least a minimal configuration. This is due to the fact it wishes to load only the backend modules it needs.\nConfiguration files can be specified through the CLI, or by placing them under `$HOME/.jimpass.yaml` or `$XDG_CONFIG_HOME/jimpass/config.yaml`\n\n### Minimal for Bitwarden users\n\n```yaml\nmanagers:\n - bitwarden\nbitwarden:\n template_str: 'bw: {name}: user {username}'\n```\n\n### Minimal for Lastpass users\n\n```yaml\nmanagers:\n - lastpass\nlastpass:\n username: 'example@mail.box'\n template_str: 'lp: {name}: {username} at {url}'\n```\n\n### Complete with defaults\n\n```yaml\nmanagers: # REQUIRED. List all password managers to be loaded\n - bitwarden\n - lastpass\nauto_lock: True\nlock_timer: 500 # Ignored if auto_lock: False\nclipboard_timeout: 5\ncopy_command: xclip # Command to use when copying [xclip|xsel|wayland]\ndanger_mode: False # After auto-typing a password, immediately presses Return\nkeybindings:\n # pressing Return copies the password under the selected entry.\n type_all: 'alt+1'\n type_user: 'alt+2'\n type_pass: 'alt+3'\n copy_totp: 'alt+t'\n sync: 'alt+r'\nbitwarden:\n template_str: 'bw: {name}: user {username}'\n # available templated params include:\n # - id\n # - name\n # - username\nlastpass:\n username: 'example@mail.box'\n template_str: 'lp: {name}: {username} at {url}'\n # available templated params include:\n # - id\n # - fullname\n # - name\n # - username\n # - url\n # - group\n # - note\n # - last_modified\n # - last_touch\n```\n\n## Roadmap\n\n- [x] **Customizable keybindings** --- For actions such as `copy_username`, `type_password`, etc\n- [x] **Templated item display** --- Choose how *Rofi* displays items. Eg `\"Bitwarden: {name} {username}\"`\n- [x] **Better testing and CI**\n- [ ] **Context based management** --- Manage more credential aspects.\n- [ ] **Encrypted in-memory storage** -- Will allow to add other features such as caching of frequently and last used for even faster launches.\n\n\n## Extending\n\nInstructions on how to integrate your own password manager coming soon... \nIn the meantime you can get inspired by the [current implementations](jimpass/managers)\n\n## License\n\nReleased under the GNU General Public License, version 3. See `LICENSE` file.\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/remyrd/jimpass", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "Jimpass", "package_url": "https://pypi.org/project/Jimpass/", "platform": "", "project_url": "https://pypi.org/project/Jimpass/", "project_urls": { "Homepage": "https://github.com/remyrd/jimpass" }, "release_url": "https://pypi.org/project/Jimpass/0.0.3/", "requires_dist": [ "Click", "Pyaml", "Parse", "Deepdiff" ], "requires_python": "", "summary": "A universal password manager interface, powered by Rofi", "version": "0.0.3" }, "last_serial": 5441783, "releases": { "0.0.1a0": [ { "comment_text": "", "digests": { "md5": "fa45c19439a375069b261d168b7ee569", "sha256": "e11e8553621a344a5f2a88906bfee994b3ef54ec9dde0e381b4e10b9c895cef5" }, "downloads": -1, "filename": "Jimpass-0.0.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "fa45c19439a375069b261d168b7ee569", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24813, "upload_time": "2019-06-19T07:54:26", "url": "https://files.pythonhosted.org/packages/77/67/5cd40ee85e2b2c174100d24e4269ece029eb590212d9453eb34b0502a025/Jimpass-0.0.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "998ea9e7bfc3b67751c37aa39654b7d5", "sha256": "e75bdb5c8774d2214b61f733be1b0bc82b33d776d3289dbcc734a827ebf7a97c" }, "downloads": -1, "filename": "Jimpass-0.0.1a0.tar.gz", "has_sig": false, "md5_digest": "998ea9e7bfc3b67751c37aa39654b7d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11990, "upload_time": "2019-06-19T07:54:28", "url": "https://files.pythonhosted.org/packages/6b/9b/f71fdc1417e679c33fd1602c9f55d6238f2d82335ced7befa4332a1c5b73/Jimpass-0.0.1a0.tar.gz" } ], "0.0.2.dev1": [ { "comment_text": "", "digests": { "md5": "d406adc273636ce2360ac3abe30872b1", "sha256": "eb63d7ffdc2e6fb480a2b69efa2e1255fda516f551f99ad5f387e5593ab449cb" }, "downloads": -1, "filename": "Jimpass-0.0.2.dev1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d406adc273636ce2360ac3abe30872b1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25755, "upload_time": "2019-06-23T11:51:51", "url": "https://files.pythonhosted.org/packages/2e/9f/ef3990f2e7a5bf296a36d8bd9397932c77d3510bfe0824c96f12e47f3fc9/Jimpass-0.0.2.dev1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb5f35dc8b16b1e466f60a7e9bb726fd", "sha256": "0b7af7c47902a33bfffde6a907d59a2805c9b5554a63b36e578e353891d1c1c3" }, "downloads": -1, "filename": "Jimpass-0.0.2.dev1.tar.gz", "has_sig": false, "md5_digest": "fb5f35dc8b16b1e466f60a7e9bb726fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27231, "upload_time": "2019-06-23T11:51:52", "url": "https://files.pythonhosted.org/packages/90/58/c5a4be335cd0463f448304dc4b83ce2236e579adb25b798d39b9cfca51c1/Jimpass-0.0.2.dev1.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1d705fb77c4923c2ddd8f05a80aa94f5", "sha256": "b99b7ab18399a0ef6602396b3013439cb9a3cacefeb98b11fcc6925d3621d66b" }, "downloads": -1, "filename": "Jimpass-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d705fb77c4923c2ddd8f05a80aa94f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26264, "upload_time": "2019-06-24T17:32:53", "url": "https://files.pythonhosted.org/packages/84/6b/3737a039582dad304b1e26698b695fbeeecdd6626e2a944d704b02975850/Jimpass-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91ad4e21432f32b2ab4581bb5e3ca397", "sha256": "ce9b4751c0c6749e82423e48b88374054ea69ee5edad929508ce1f86b842e6e4" }, "downloads": -1, "filename": "Jimpass-0.0.3.tar.gz", "has_sig": false, "md5_digest": "91ad4e21432f32b2ab4581bb5e3ca397", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30442, "upload_time": "2019-06-24T17:32:54", "url": "https://files.pythonhosted.org/packages/66/e0/f637b00b78c259f8f4b8397fb513af9f853eab435e73c49b5197a94d62ea/Jimpass-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1d705fb77c4923c2ddd8f05a80aa94f5", "sha256": "b99b7ab18399a0ef6602396b3013439cb9a3cacefeb98b11fcc6925d3621d66b" }, "downloads": -1, "filename": "Jimpass-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1d705fb77c4923c2ddd8f05a80aa94f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26264, "upload_time": "2019-06-24T17:32:53", "url": "https://files.pythonhosted.org/packages/84/6b/3737a039582dad304b1e26698b695fbeeecdd6626e2a944d704b02975850/Jimpass-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91ad4e21432f32b2ab4581bb5e3ca397", "sha256": "ce9b4751c0c6749e82423e48b88374054ea69ee5edad929508ce1f86b842e6e4" }, "downloads": -1, "filename": "Jimpass-0.0.3.tar.gz", "has_sig": false, "md5_digest": "91ad4e21432f32b2ab4581bb5e3ca397", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30442, "upload_time": "2019-06-24T17:32:54", "url": "https://files.pythonhosted.org/packages/66/e0/f637b00b78c259f8f4b8397fb513af9f853eab435e73c49b5197a94d62ea/Jimpass-0.0.3.tar.gz" } ] }