Skip to main content

snaplii-cli

Command-line client for Snaplii Agent-to-Merchant (A2M) payments. It lets AI agents and scripts buy gift cards from 500+ brands, pay bills, and send P2P transfers — all from a prepaid Snaplii Cash balance, with cashback on every purchase and no checkout or card sharing.

Every command prints JSON, so any agent that can run a shell command can use it.

Requirements

  • Python 3.9+
  • A Snaplii account and API key. In the Snaplii app (iOS / Android) go to More → Payment Methods → AI Payment Management → + New API Key, choose a scope, and set a hard spending limit. The key is shown once.

Install

From PyPI, isolated with pipx (recommended):

pipx install snaplii-cli

From a checkout of the repository:

pipx install -e ./snaplii-cli

Plain pip install snaplii-cli also works. OS-specific pipx setup and troubleshooting are in the repository README.

Authenticate

snaplii init

Prompts for your API key with hidden input. The key is exchanged for a session token and never stored; the token is kept in your OS keychain when one is available.

Outside a recognized Muse runtime, a CLI without a working keychain stops with no_persistent_storage rather than keeping a session that the next command could not reuse; explicit SNAPLII_ALLOW_INSECURE=1 opts into a private (mode 0600) plaintext token file. Only a long-lived MCP server may hold a memory-only session. snaplii config show reports the actual storage and has_valid_token, without showing the token or API key. Protected requests require a usable session and are not automatically replayed after authentication errors.

Meta Muse secure credential store

To authenticate with an API key already saved in Muse's secure credential store:

snaplii init --vault-auth
snaplii config show

--agent-id is optional: Snaplii reuses a saved ID or generates one on successful login. Before using Snaplii, check that has_valid_token is true; the status output does not display credentials.

Recognized Muse runtimes select secure authentication by default for snaplii init and automatically keep the session token in a private file for later CLI processes. The API key remains in Muse's secure credential store. The accompanying skill directs Muse to use its native secure input when needed, and to stop on cancellation.

Run snaplii config doctor to check runtime detection and storage without logging in. If the secure path is unavailable, explicitly choose snaplii init --legacy-auth for the original hidden-input flow. --vault-auth and --legacy-auth are mutually exclusive.

For a separate test configuration, set SNAPLII_CONFIG_PATH to a new file path and use that same value for each command. This isolates Snaplii's session, not Muse's stored API key. Prerelease candidate installations keep their CLI and skill versions together; snaplii update will not replace a candidate with a PyPI release.

Usage

# Gift cards
snaplii browse tags                                  # categories and brands for your account's country
snaplii browse brand --id CB...                      # denominations and cashback
snaplii balance --country CA                         # spendable Snaplii Cash (CA=CAD, US=USD)
snaplii quote --item-id CB...-CT... --price 50       # price after voucher/cashback
snaplii purchase --item-id CB...-CT... --price 50    # buy; pays from Snaplii Cash
snaplii giftcard list                                # owned cards

# Bill pay
snaplii billpay payees
snaplii billpay save --payee-code PE... --first-name Alex --last-name Chen --amount 75.25 --account 1234567890
snaplii billpay quote --pay-code PC... --price 75.25
snaplii billpay pay --pay-code PC... --price 75.25

# P2P transfer (API key scope P2P or ALL)
snaplii transfer create --to-phone 4165550006 --amount 12.50
snaplii transfer status --order-no ZZ... --wait --timeout 330
snaplii transfer list
  • --item-id is {cardBrandId}-{cardTemplateId}; both come from snaplii browse brand.
  • Bill pay flow: payees → detail → save (returns payCode) → quote → pay → result.
  • A new transfer stays cancellable (transfer cancel) for about 5 minutes, then sends automatically; transfer finish sends it immediately. transfer status --wait polls for the outcome, but its --timeout defaults to 120s — pass a larger value (e.g. --timeout 330) to poll through the whole cancellable window.
  • snaplii help and snaplii <command> --help list every flag.

Commands

Group Commands
Auth & config init [--agent-id ID] [--vault-auth | --legacy-auth], config show, config doctor, config set --base-url URL, config clear
Catalog browse tags, browse brand --id ID
Balance & quotes balance [--country CA|US], quote --item-id ID --price P
Purchases purchase --item-id ID --price P, giftcard list, giftcard detail --card-no NO
Smart smart cashback --brand-id ID --amount A, smart dashboard
Bill pay billpay payees, billpay detail, billpay save, billpay vouchers, billpay quote, billpay pay, billpay result, billpay history
Transfers transfer create, transfer cancel, transfer finish, transfer status [--wait] [--timeout S], transfer list
Maintenance update, help

Safety model

Spending draws only from the prepaid Snaplii Cash balance and is capped by the per-key limit set in the app. Keys are scoped and can be revoked at any time from the app.

More

License

Apache License 2.0

Metadata

Release files for snaplii-cli 0.17.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snaplii-cli 0.17.0
File Size Uploaded Provenance
snaplii_cli-0.17.0.tar.gz 44.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for snaplii-cli 0.17.0
File Interpreter ABI Platform
snaplii_cli-0.17.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.0 kB

Release files / snaplii_cli-0.17.0.tar.gz

Download URL snaplii_cli-0.17.0.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7c29f6dbb5a6ce60e55fb02cd3c2512a7291c6646772a15f731fe81bb561cab4
BLAKE2b-256 checksum
How to use checksums
f9df25baf5de0e24d206ddff205140c576158e2fcb058e87ce56f460209a4137
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / snaplii_cli-0.17.0-py3-none-any.whl

Download URL snaplii_cli-0.17.0-py3-none-any.whl
Size 54.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1b83e2b3656d803328d4b55352b40eaef8ba68e1ff5782cc4c90173913f5192
BLAKE2b-256 checksum
How to use checksums
000c23783d2e175b7bfc31e78aa7e16a4f09014cb9371997f280e94725c0703a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Security for snaplii-cli 0.17.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for snaplii_cli-0.17.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page