Access your 1Password login items within tmux!
This plugin allows you to access you 1Password items within tmux, using 1Password's CLI. It works for personal 1Password accounts, as well as teams accounts.
This plugin relies on the following:
In any tmux mode:
prefix + u
- list login items in a bottom pane.prefix + C
- clear the cache of tmux-1password.
Using Tmux Plugin Manager (recommended)
-
Add plugin to the list of TPM plugins in
.tmux.conf
:set -g @plugin 'yardnsm/tmux-1password'
-
Hit
prefix + I
to fetch the plugin and source it. You should now be able to use the plugin.
-
Clone this repo:
$ git clone https://github.com/yardnsm/tmux-1password ~/some/path
-
Source the plugin in your
.tmux.conf
by adding the following to the bottom of the file:run-shell ~/some/path/plugin.tmux
-
Reload the environment by running:
$ tmux source-file ~/.tmux.conf
First, sign in with 1Password CLI by running the following in your terminal (you only need to do this once):
$ op signin <signinaddress> <emailaddress> <secretkey>
For 1Password personal accounts, <signinaddress>
should be my.1password.com
. If you're using a
team account, configure the @1password-subdomain
option.
From now on, initiate the plugin by using the keybind (prefix + u
by default). A new pane will be
opened in the bottom, listing the appropriate login items. Press <Enter>
to choose a login item,
and its password will automatically be filled.
You may be required to perform a re-login (directly in the opened pane) since the 1Password CLI's sessions expires automatically after 30 minutes of inactivity.
Customize this plugin by setting these options in your .tmux.conf
file. Make sure to reload the
environment afterwards.
set -g @1password-key 'x'
Default: 'u'
set -g @1password-clear-cache-key 'X'
Default: 'C'
set -g @1password-subdomain 'acme'
Default: 'my'
set -g @1password-vault 'work'
Default: ''
(all vaults)
By default, the plugin will use send-keys
to send the selected password to the targeted pane. By
setting the following, the password will be copied to the system's clipboard, which will be cleared
after 30 seconds.
set -g @1password-copy-to-clipboard 'on'
Default: 'off'
The following example will filter only the items that has a tag with a value of some_tag
.
set -g @1password-items-jq-filter '
.[] \
| [select(.overview.tags | map(select(. == "some_tag")) | length == 1)?] \
| map([ .overview.title, .uuid ] \
| join(",")) \
| .[] \
'
The following example will filter only the items that has a website field with the value of
sudolikeaboss://local
, similar to the way
sudolikeaboss used to work.
set -g @1password-items-jq-filter ' \
.[] \
| [select(.overview.URLs | map(select(.u == "sudolikeaboss://local")) | length == 1)?] \
| map([ .overview.title, .uuid ] \
| join(",")) \
| .[] \
'
Also see:
MIT © Yarden Sod-Moriah