npm package: @snapfi/cli
Description: CLI for Snap — single-use virtual cards for AI agents.
Author: Snap
Latest version: 0.2.1

# @snapfi/cli

Command-line interface for [Snap](https://snapfi.dev) — single-use
virtual cards for AI agents.

> Snap is in private beta. Run `snap signup` to join the waitlist.

## Install

```bash
npm install -g @snapfi/cli
```

This installs both `snap` and `snapfi` as global commands. Use whichever
you prefer — they're the same binary.

## Quickstart

```bash
# 1. Join the private beta waitlist.
snap signup

# 2. Once you receive your CLI key, log in.
snap login

# 3. Issue a single-use virtual card for your agent.
snap card create \
  --merchant amazon.com \
  --amount 42.10 \
  --ttl 5m
```

## Commands

The CLI follows a `noun verb` pattern (`snap card create`, `snap agent
list`, etc.) modeled on `gh`, `vercel`, and `stripe`. Run any command
with `--help` to see its options.

### Top-level

| Command | Description |
|---|---|
| `snap signup` | Join the private beta waitlist |
| `snap login` | Authenticate with your CLI key |
| `snap logout` | Sign out |
| `snap upgrade` | Update to the latest version |
| `snap --help` | Show usage |
| `snap --version` | Show CLI version |

### `snap card` — single-use virtual cards

| Command | Description |
|---|---|
| `snap card create` | Issue a new single-use virtual card |
| `snap card list` | List your recent cards |
| `snap card show <id>` | Show details for a card |
| `snap card revoke <id>` | Revoke a card before it's used |

### `snap agent` — per-agent API keys

| Command | Description |
|---|---|
| `snap agent create` | Issue a new agent API key |
| `snap agent list` | List your agent keys |
| `snap agent show <id>` | Show details for an agent key |
| `snap agent revoke <id>` | Revoke an agent key |

### `snap transaction` (alias: `tx`) — transaction history

| Command | Description |
|---|---|
| `snap transaction list` | List recent transactions |
| `snap transaction show <id>` | Show details for a transaction |

### `snap account` — account, balance, and limits

| Command | Description |
|---|---|
| `snap account balance` | Show available and reserved balance |
| `snap account info` | Show account info and limits |

## Configuration

The CLI stores its config in your OS-appropriate config directory
(`~/Library/Preferences/snapfi/` on macOS, `$XDG_CONFIG_HOME/snapfi/`
on Linux, `%APPDATA%/snapfi/` on Windows).

| Env var | Default | Description |
|---|---|---|
| `SNAP_API_URL` | `https://api.snapfi.dev/v1` | Override the API base URL |
| `SNAP_NO_UPDATE_CHECK` | unset | Set to `1` to skip the update notifier (e.g. in CI) |

## Requirements

- **Node.js 18 or later** (uses native `fetch`)
- **A Snap account** — request access at [snapfi.dev](https://snapfi.dev)

## Why Snap?

Snap issues single-use virtual payment cards designed to be spent by AI
agents at any merchant. The product is built around safety primitives
designed for autonomous decision-making:

- **Single-use cards** that die after one charge
- **Network-enforced spending limits** declined at the rails before they
  ever clear
- **Per-merchant locks** so a wrong-merchant authorization fails at the
  network
- **Per-agent API key isolation** with revocation in real time
- **Sentinel** — an optional LLM that reviews each charge against the
  agent's task brief and blocks anything off-context

Learn more at [snapfi.dev](https://snapfi.dev).

## License

MIT