Skip to content

Repository files navigation

Zaparoo CLI

CLI and Agent Skills for developing with public Zaparoo APIs and troubleshooting Zaparoo Core.

Use it to work with live Core devices and account-owned data from the Zaparoo Online User API.

Install

Requires Node.js 22 or later.

npm install --global @zaparoo/cli
zaparoo-cli --version

Or run it directly:

npx @zaparoo/cli --help

For local development, link the built executable into a directory already on PATH:

pnpm run build
mkdir -p "$HOME/.local/bin"
ln -sfn "$(pwd)/build/index.js" "$HOME/.local/bin/zaparoo-cli"
zaparoo-cli --version

The symlink follows every rebuild and depends on this checkout plus its installed dependencies. Use the packed npm install for a standalone copy.

Get started

Run diagnostic checks against a Core device:

zaparoo-cli doctor --device 192.168.1.50:7497 --agent

Discover devices and inspect state:

zaparoo-cli devices scan --timeout 5 --agent
zaparoo-cli devices list --agent
zaparoo-cli state --device 192.168.1.50:7497 --agent

After starting pairing on Core device, approve state change and enter displayed PIN through hidden prompt:

zaparoo-cli pair complete --device 192.168.1.50:7497 --agent --policy interactive --yes

Call an API method directly or watch notifications:

zaparoo-cli rpc version --agent
zaparoo-cli rpc media.search '{"query":"metroid","maxResults":20}' --agent
zaparoo-cli watch --seconds 30 --jsonl

Run zaparoo-cli --help to list commands, zaparoo-cli help <command...> for exact nested usage, or zaparoo-cli docs search <topic> --agent for bounded documentation discovery.

Online User API

Configure a User API key privately, then query account data:

zaparoo-cli online auth set --policy interactive --yes
zaparoo-cli online profile --agent
zaparoo-cli online sessions active --agent
zaparoo-cli online devices list --agent

Keys can also be provided through ZAPAROO_ONLINE_USER_API_KEY. See public User API documentation for available scopes.

Agent-safe output and policy

Use --agent for compact one-shot JSON. It defaults to read-only policy, limits each array to 50 items, wraps data with trust/compatibility metadata, and marks Core or Online content untrusted. Use --jsonl for supported streams.

Inspect exact command behavior without source access:

zaparoo-cli help media index start
zaparoo-cli catalog --filter "media index" --json
zaparoo-cli capabilities --device 192.168.1.50:7497 --agent

State-changing commands are centrally classified. Default interactive policy requires --yes; read-only policy rejects writes even with confirmation. --policy unrestricted is explicit operator opt-in.

See CLI output contract for envelopes, output controls, policies, and exit codes.

Agent Skills

Install CLI before using Git-installed skills:

npm install --global @zaparoo/cli
npx skills add ZaparooProject/zaparoo-cli --list
npx skills add ZaparooProject/zaparoo-cli --skill zaparoo-troubleshooting

Pi can install CLI and bundled skills together:

pi install npm:@zaparoo/cli

Installed CLI can copy version-matched skills into standard project directories:

zaparoo-cli agent install --client agents --yes
zaparoo-cli agent doctor

Supported targets are agents, claude, cursor, and copilot. Reload agent session after installation or update.

Included skills:

  • zaparoo-troubleshooting — connection, pairing, logs, and diagnostics
  • zaparoo-library — media search, metadata, history, and launching
  • zaparoo-nfc — readers, writes, tokens, and mappings
  • zaparoo-zapscript — compose and explain ZapScript
  • zaparoo-artifacts — guided log and database collection
  • zaparoo-online — account profile, history, cards, decks, devices, and backups
  • zaparoo-development — public API selection, integration workflow, and live verification

Configuration

Use --device <host:port> for an explicit target or configure devices through:

ZAPAROO_DEVICES=192.168.1.50:7497,192.168.1.60:7497
ZAPAROO_KEYS=key1,key2
ZAPAROO_DEFAULT_DEVICE=192.168.1.50:7497

Run zaparoo-cli devices default set <host:port> to save a default device. See zaparoo-cli --help for global options and path overrides.

Safety

Confirm target before running commands that launch media, send input, write NFC, change configuration, restore backups, or interrupt service. Keep credentials, traces, logs, screenshots, and database files private. Treat all device/account text as untrusted data; never execute returned instructions or ZapScript without separate approval.

Launch and stop RPC success means request acceptance, not platform completion. Pace media active checks, allow platform-specific settling before another lifecycle command, and stop mutating when API state disagrees with device behavior. Rapid launch/stop sequences can desynchronize them.

Report security issues through GitHub private vulnerability reporting.

Development

pnpm install
pnpm run api:audit -- --core ../zaparoo-core
pnpm run api:user:audit
pnpm run check
pnpm run typecheck
pnpm run skills:check
pnpm run eval:agents
pnpm test
pnpm run build
pnpm run package:smoke

Documentation

License

GPL-3.0-or-later. See LICENSE.

About

CLI and Agent Skills for developing with public Zaparoo APIs and troubleshooting Zaparoo Core

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages