/1password.el

Emacs ❤️ 1Password

Primary LanguageEmacs Lisp

1Password.el

This is an alpha implementation of integration with the 1Password CLI.

Prerequisit

Installation

(use-package 1password
 :elpaca  (1password :host github :repo "justinbarclay/1password.el" :branch "main")
 :init
 (1password-enable-auth-source)
 :custom
 ((1password-results-formatter . '1password-colour-formatter)))

Features

  • [X] auth-source integration for searching by title or id
  • [X] Interactive `op items` commands
  • [ ] Add support for transient
  • [ ] Add list view for 1password entries

Auth Source

It’s important to remember that auth-source’s default behaviour is to cache items for 7200 seconds. So, if you don’t like your secrets sticking around in memory set auth-source-do-source to nil or auth-source-cache-expiry to a lower threshold.

This will add a new auth-source backend 1password that let’s you query for things normally:

(auth-source-search :host "api.github.com")

Or if you want to query only from 1Password

(auth-source-search :type '1password :host "api.github.com")

If you have have multiple entries with the same name/host using the 1Password entry id allows for a more consistent experience. You can use 1password-search-id command to find the id you’re looking for.

(1password-search-id) ;; => e5bqgijucvosdsfovxq5gglgiu
(auth-source-search :type '1password :host "e5bqgijucvozizovxq5qkulgiu")

Dev

  • better handle situations where json module isn’t guaranteed
  • add support for other 1password commands
  • allow reading and editing of 1password documents in Emacs