← All posts

wispctl 1.3.1

Making wispctl's auth more ergonomic to use

@nekomimi.pet
releasecli

wispctl 1.3.1 is a small version upgrade that makes using the cli across CWDs more ergonomic, so you and your agent can more easily push to wisp without reauthing often.

log in once

wispctl
$ wispctl login alice.bsky.social ◇ opening browser for authentication... ✓ authenticated as alice.bsky.social $ cd ~/code/my-site $ wispctl deploy --path ./dist --site my-site

OAuth sessions are keyed by DID and reused across directories. When a command succeeds, wispctl links the current directory to that account, so future bare commands there reuse the same identity. Otherwise, it uses your default account, or your only stored account if there is exactly one; if multiple accounts remain possible, it asks instead of guessing.

account commands

the new accounts command shows what wispctl knows and why an account will be used:

wispctl accounts
$ wispctl accounts alice.bsky.social (oauth, default, this directory) did:plc:examplealice work.example (app password) did:plc:examplework

app passwords without argv

--password still exists for compatibility, but command arguments can be visible in a process list. 1.3.1 also reads WISPCTL_APP_PASSWORD, which is the better choice for ci and headless machines:

bash
export WISPCTL_APP_PASSWORD="$ATPROTO_APP_PASSWORD"
wispctl deploy alice.bsky.social --path ./dist --site docs

the same environment variable can save an app password into your system credential store:

bash
WISPCTL_APP_PASSWORD="$ATPROTO_APP_PASSWORD" \
  wispctl login alice.bsky.social

upgrading

bash
npm install -g wispctl@1.3.1