remit-cli
Skill MD · Docs · Agent Spec
Command-line interface for Remit — USDC payments for AI agents on Base.
Install
Binary (recommended)
Download from GitHub Releases:
# Linux (x86_64)
&&
# Linux (aarch64)
&&
# macOS (Apple Silicon)
&&
# macOS (Intel)
&&
# Windows (PowerShell)
crates.io
Build from source
Setup
With local signer (default, recommended)
The local signer runs a lightweight HTTP signing server on localhost:7402. Private keys are AES-256-GCM encrypted at rest. Any SDK or language can sign via HTTP — no FFI, no native dependencies.
With OWS
OWS encrypts keys locally and evaluates spending policies before every signature.
# With options
# Add spending limits
With a raw private key (legacy)
# or
Wallet Modes
The CLI supports three wallet modes. It checks them in priority order:
| Priority | Mode | Env Var | Description |
|---|---|---|---|
| 1 | Local signer | REMIT_SIGNER_URL |
HTTP signing server on localhost. Any language, any sandbox. |
| 2 | OWS | OWS_WALLET_ID |
Encrypted local vault with spending policies. Requires OWS binary. |
| 3 | Raw key | REMITMD_KEY |
Private key in environment. Simple but less secure. |
If REMIT_SIGNER_URL is set, the CLI delegates all signing to the local signer server. Otherwise it falls back to OWS, then raw key.
Quickstart
Commands
| Command | Description |
|---|---|
remit init |
Create local signer wallet (default), OWS (--ows), or raw key (--legacy) |
remit wallet list |
List all OWS wallets |
remit wallet fund |
Open fund link in browser |
remit wallet set-policy |
Configure spending limits |
remit status |
Wallet status and balance |
remit balance |
USDC balance |
remit pay <to> <amount> |
One-time payment |
remit tab open/charge/close |
Tab (running balance) |
remit tab get <id> |
Show tab details |
remit tab list |
List open tabs |
remit stream open/close |
Streaming payments |
remit stream list |
List active streams |
remit escrow create/release/cancel/claim-start |
Escrow |
remit escrow list |
List escrows |
remit bounty post/submit/award |
Bounties |
remit bounty list |
List bounties |
remit deposit create |
Deposit address |
remit fund |
Generate fund link |
remit withdraw |
Generate withdraw link |
remit mint <amount> |
Mint testnet USDC (max 2500/hr) |
remit webhook create/list/delete |
Webhook subscriptions |
remit signer init |
Generate new wallet + encrypted key + bearer token |
remit signer start |
Start signing server on localhost:7402 |
remit signer stop |
Stop the signing server |
remit signer status |
Check if signer is running |
remit signer import --key 0x... |
Import an existing private key |
remit signer token create |
Create a new bearer token |
remit signer token list |
List bearer tokens |
remit signer token revoke <name> |
Revoke a bearer token |
remit a2a discover/pay/card |
A2A agent discovery and payments |
remit config set/get/show |
Configuration |
remit completions <shell> |
Shell completions (bash, zsh, fish, powershell) |
Global Flags
| Flag | Description |
|---|---|
--json |
Machine-readable JSON output |
--testnet |
Use Base Sepolia testnet |
init Flags
| Flag | Description |
|---|---|
--name <NAME> |
Wallet name (default: remit-{hostname}) |
--chain <CHAIN> |
base or base-sepolia (default: base) |
--ows |
Use OWS wallet instead of local signer |
--legacy |
Skip signer/OWS, generate a raw private key instead |
--write-env |
(Legacy only) Write key to .env in current directory |
wallet set-policy Flags
| Flag | Description |
|---|---|
--chain <CHAIN> |
base or base-sepolia (default: base) |
--max-tx <USDC> |
Per-transaction spending cap in dollars |
--daily-limit <USDC> |
Daily spending cap in dollars |
wallet fund Flags
| Flag | Description |
|---|---|
--wallet <NAME> |
Wallet name or ID (default: OWS_WALLET_ID env var) |
--amount <USDC> |
Pre-fill fund amount |
pay Flags
| Flag | Description |
|---|---|
--no-permit |
Skip EIP-2612 permit auto-signing (use existing on-chain approval instead) |
--memo <text> |
Attach a memo to the payment |
Auth
Local signer (default, recommended)
Keys are AES-256-GCM encrypted at ~/.remit/keys/. The signer exposes POST /sign and POST /sign-typed-data over localhost HTTP. Any SDK or language can use it — no FFI required.
OWS
# wallet name from init
Keys live in ~/.ows/wallets/ (AES-256-GCM encrypted). Never appear in env vars.
Raw key (legacy)
Or remit init --legacy --write-env to generate and save to .env.
Never commit private keys to git.
Shell Completions
JSON Output
All commands support --json for scripting:
|
|
|
License
MIT