@useveil/cli
v1.1.0
Published
Command-line interface for Veil — crypto-to-fiat offramp for developers and AI agents.
Readme
@useveil/cli
Command-line interface for Veil.
Install
npm install -g @useveil/cliQuick start
# Pair this machine via browser (opens a tab, stores keys in OS keychain)
veil login
# Check API health
veil health
# Show current user and paired mode status
veil whoami
# Manage wallets
veil wallets list
veil wallets create --name "primary"
# Create an offramp (interactive — prompts for a 6-digit email OTP to confirm)
veil offramp create --wallet-id <wallet-id> --amount 100 --token USDC
# Send to another Veil user by @handle
veil offramp create --wallet-id <wallet-id> --amount 50 --token USDC --beneficiary-username alice
# Skip the pre-send confirmation prompt (OTP is still required)
veil offramp create --wallet-id <wallet-id> --amount 100 --token USDC --yesAuto-settle rules
Configure a wallet to automatically offramp deposits from a specific sender address:
# List all auto-settle rules
veil rules list
# Create (or replace) an auto-settle rule on a wallet
veil rules create --wallet-id <id> --source-address <address> [--bank-account-id <id>]
# Remove the auto-settle rule from a wallet
veil rules remove --wallet-id <id> [--yes]Switching modes
Veil has two modes: sandbox (test with fake funds) and live (real transfers). After pairing, the CLI defaults to the first mode that was unlocked at pairing time.
# Show the active mode
veil mode
# Switch to live mode (requires live KYC to be complete)
veil mode live
# Switch back to sandbox
veil mode sandbox
# Override the active mode for a single command
veil wallets list --liveMode precedence (highest to lowest):
--liveflag — overrides the stored pointer for one command.- Stored
activeMode— flipped byveil mode sandbox|live.
Platform support
| Platform | Keychain backend | Status |
|---|---|---|
| macOS | Keychain | Works out of the box |
| Windows | Credential Manager | Works out of the box |
| Linux | libsecret / gnome-keyring | Works when libsecret is installed and a session keyring is unlocked |
Contributing
The CLI is part of the flooz-link/veil monorepo. Local dev:
pnpm install
pnpm --filter @useveil/cli build # produces dist/cli.js
pnpm --filter @useveil/cli test # 21 files, 126 unit tests
node packages/cli/dist/cli.js --help # run the local buildIf your PR changes user-visible behavior (a new flag, a fixed bug, a removed command), drop a Changesets entry before requesting review:
pnpm changesetPick @useveil/cli, choose the bump (patch / minor / major), and write one line of changelog. The tool creates .changeset/<random-id>.md. Commit it with the rest of your PR.
Refactors that don't change behavior, doc-only PRs, and CI-only changes don't need a changeset.
For the full release pipeline (how the bump becomes a published npm version), see docs/RELEASING.md.
