Skip to main content

A universal password manager interface, powered by Rofi

Project description

This project was heavily inspired by and builds on top of the ideas in bitwarden-rofi. Be sure to check it out!

Jimpass (alpha) - The unified password management interface

Build Status PyPI version

Jimsort, but for passwords.


A backend-agnostic credential launcher/manager. Powered by Rofi.

There 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.

The people behind bitwarden-rofi nailed it by bridging this UX gap for Bitwarden 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.


  • Auto-type: For those too busy to paste the selected password, fill-in username/passwords automatically.

    :warning: Introducing Danger mode: end by typing in <Return> automatically :warning:

  • TOTP support: Copy the TOTP of the selected entry to your clipboard

  • Sync: Force the local databases to sync up with the remote backend

  • Custom keybindings: Define your own keybindings for different actions supported at runtime

  • Custom item display: Choose how and what is displayed in Rofi for each password manager using {}. Eg. "Work(lastpass): {name} -- {username} ({email})"

  • Lock timeout(bitwarden only): Set a timer before having to re-enter your Master Password. Can be disabled.

  • Clipboard timeout: Set a timeout after which the keyboard is cleared

Supported Managers

The architecture allows anyone to extend Jim to use their password manager, provided there's a CLI for it. See the currently implemented ones


Jim communicates with each password manager through specific CLIs. Only install and configure those you use.


Using pip:

pip install Jimpass


git clone
cd jimpass
pip install .
# or
python install


In order to use Jimpass efficiently, bind the jp or jimpass command to a key combination of your choice. The command comes with these options, which will override their counterpart in the configuration

Usage: <jp|jimpass> [OPTIONS]

  CLI Entrypoint

  -c, --config FILENAME           Path to the config file. Defaults to
                                  $HOME/.jimpass.yaml or
  --auto-lock                     Incompatible with --no-auto-lock
  --no-auto-lock                  Incompatible with --auto-lock
  --lock-timer INTEGER RANGE      Lock the database after RANGE seconds,
                                  ignored if --no-auto-lock
  --clipboard-timeout INTEGER RANGE
                                  RANGE seconds before clearing up the
                                  clipboard after copying
  --copy-command [xclip|xset|wayland]
                                  Utility to use when copying
  --danger-mode                   Automatically press Return after auto-type
  --help                          Show this message and exit.


Jimpass requires at least a minimal configuration. This is due to the fact it wishes to load only the backend modules it needs. Configuration files can be specified through the CLI, or by placing them under $HOME/.jimpass.yaml or $XDG_CONFIG_HOME/jimpass/config.yaml

Minimal for Bitwarden users

  - bitwarden
  template_str: 'bw: {name}: user {username}'

Minimal for Lastpass users

  - lastpass
  username: ''
  template_str: 'lp: {name}: {username} at {url}'

Complete with defaults

managers: # REQUIRED. List all password managers to be loaded
  - bitwarden
  - lastpass
auto_lock: True
lock_timer: 500 # Ignored if auto_lock: False
clipboard_timeout: 5
copy_command: xclip # Command to use when copying [xclip|xsel|wayland]
danger_mode: False # After auto-typing a password, immediately presses Return
  # pressing Return copies the password under the selected entry.
  type_all: 'alt+1'
  type_user: 'alt+2'
  type_pass: 'alt+3'
  copy_totp: 'alt+t'
  sync: 'alt+r'
  template_str: 'bw: {name}: user {username}'
  # available templated params include:
  # - id
  # - name
  # - username
  username: ''
  template_str: 'lp: {name}: {username} at {url}'
  # available templated params include:
  # - id
  # - fullname
  # - name
  # - username
  # - url
  # - group
  # - note
  # - last_modified
  # - last_touch


  • <input type="checkbox" checked="" disabled="" /> Customizable keybindings --- For actions such as copy_username, type_password, etc
  • <input type="checkbox" checked="" disabled="" /> Templated item display --- Choose how Rofi displays items. Eg "Bitwarden: {name} {username}"
  • <input type="checkbox" checked="" disabled="" /> Better testing and CI
  • <input type="checkbox" disabled="" /> Context based management --- Manage more credential aspects.
  • <input type="checkbox" disabled="" /> Encrypted in-memory storage -- Will allow to add other features such as caching of frequently and last used for even faster launches.


Instructions on how to integrate your own password manager coming soon... In the meantime you can get inspired by the current implementations


Released under the GNU General Public License, version 3. See LICENSE file.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for Jimpass, version 0.0.4
Filename, size File type Python version Upload date Hashes
Filename, size Jimpass-0.0.4.tar.gz (1.1 MB) File type Source Python version None Upload date Hashes View
Filename, size Jimpass-0.0.4-py2.py3-none-any.whl (26.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page