Skip to main content

A python wrapper for onepassword cli version 2

Project description

OnePassword CLI v2 python wrapper

Simple python wrapper for the 1password cli version 2.

Setup

  • Install the op cli by following these instructions.
  • Make sure you have op in your PATH and that it is not version 1
$ op --version
2.12.0
  • Have your 1password username, password, and signin url handy
  • pip install onepassword2
    or, for a local install
    make local_install

If, for some reason python-Levenshtein fails to compile, skip it

  • pip install fuzzywuzzy && pip install --no-deps onepassword2

Usage

CLI

The op cli tool has a lot of options for managing multiple accounts, profiles, etc. Sessions opened with the cli terminate after 10 minutes, requiring the user to re-authenticate interactively. This is good security. However, if you need long running, non-interactive usage, it's a hindrance. onepassword2 comes with a handy CLI to automagify the signin process.

export OP_ACCOUNT='user@example.com'
export OP_PASSWORD="your password"
export OP_HOSTNAME="my.1password.com"
export OP_SECRET_KEY="JA-EKJHGQ-LKIUHG-12345-12345-12345-32154"

eval $(op-signin)

...

$ op vault list

ID                            NAME
naaizerttzertzefzyhjroeqrq    Private

In python scripts

username = "user@example.com"
password = "your password"
hostname = "yourhost.1password.com"
secret_key = "JA-EKJHGQ-LKIUHG-12345-12345-12345-32154"

from onepassword2 import OP2

o = OP2( username, password, secret_key, hostname)
o.signin()

for v in o.vaults():
    print(v)

List items

for d in o.items():
    print(d)

Get a single item as a python dictionary

item = o.item("my item")
print(item)

Get a single item as an OP2Item object with handy methods to modify fields

from onepassword2 import OP2, OP2Item

item = OP2Item(o, "my item")
item.set("notesPlain", "new value for notes")
item.save()

If more than one item has the same name, you'll get a MultipleMatchesException

from onepassword2 import OP2, OP2Item, MultipleMatchesException

item1 = OP2Item(o)
item1.set("title", "my handy item")
item1.set("notesPlain", "new value for notes")
item1.save()

item2 = OP2Item(o)
item2.set("title", "my handy item")
item2.set("notesPlain", "hahaha same title, different content")
item2.save()

try:
    item = OP2Item(o, "my item")
    print(item)
except MultipleMatchesException:
    for i in o.items("my item"):
        item = OP2Item(o, i["id"])
        ...

Make a new secure note

from onepassword2 import OP2, OP2Item

item = OP2Item(o)
item.set("title", "my note")
item.set("notesPlain", "new value for notes")
item.save()

If you have more than one vault, you'll need to specify which one to save the secure note to:

from onepassword2 import OP2, OP2Item, OP2Vault

v = OP2Vault(o)
v.name("my new vault")
v.save()

item = OP2Item(o)
item.set("title", "my note")
item.set("vault", "my new vault")
item.set("notesPlain", "new value for notes")
item.save()

Example username/password combo:

item = OP2Item(o)
item.set("title", "my account")
item.set('url',  "http://example.com")
item.set('username',  "username@example.com")
item.set('password',  "321657PASKJHKUH")

# urls can also have notes
item.set('notesPlain',  "notes here")

# tags can be set as an array
item.set('tags',  ["tags", "go", "here"])

item.save()

Project details


Download files

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

Source Distribution

onepassword2-1.7.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

onepassword2-1.7-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file onepassword2-1.7.tar.gz.

File metadata

  • Download URL: onepassword2-1.7.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for onepassword2-1.7.tar.gz
Algorithm Hash digest
SHA256 e5ea72319377177fd62c6d117daaa97392f53a083dd402c37a1afd38e31a5184
MD5 3378db98865bec9e0090ad931e7d35de
BLAKE2b-256 20f4e259a1d32a868cd3af77c95aa29538ac558be8d268f4017fbddd6f775d35

See more details on using hashes here.

File details

Details for the file onepassword2-1.7-py3-none-any.whl.

File metadata

  • Download URL: onepassword2-1.7-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for onepassword2-1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a9ede95a75aa44ab9cea64dd424f3a76c98c4a92c98f7ba44a58680b8ab065c0
MD5 da58296c4c087ff170eabd5a4bfeacd5
BLAKE2b-256 f21a24586b2348d47344773ae954e12a240830840ff1609784d3806a536da254

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page