Install
install.tryulysses.com, verifies SHA-256 and the release signature, then puts ulysses-cli on your PATH.
Sign up
New accounts start with a personal workspace. Signup emails a browser setup link—you never pass a password on the CLI.--first-name, --last-name, and --env (production default, staging, or local).
Finish the link in the browser to create the workspace, then run auth login. Until that link is completed, there is no tenant to sign into.
A success response means the auth host accepted the request. It does not confirm that a workspace was created, and it does not reveal whether the email is already registered. Local responses may include a
setupUrl; deployed responses do not.auth login.
Sign in
--env production (default), staging, or local. Named profiles: --profile <name>. Switch workspaces with auth contexts and auth use <tenant-id>.
Tokens live in the OS keychain when available; profile metadata is in ~/.ulysses/config. Revoke with auth logout or from Settings → Devices in the app.
Invoke
--output must come before the subcommand. A terminal defaults to human output; pipes default to JSON. Bare ulysses-cli prints the command tree.
Commands
Authentication
Portfolio
Take show IDs from a list result. Do not invent them.
Agents and scripts
Prefer JSON and treat the envelope as the contract:ok: true and result. Failures include ok: false, error, and often next_actions. Stop on failure. Prefer reads unless the user asked for a write. Do not print access or refresh tokens.