A Raycast extension that runs the zbdw CLI and renders structured wallet results directly in Raycast.
- Full top-level command parity with
zbdw - JSON-first result rendering for deterministic UX
- Structured error mapping from CLI envelopes
- Secure API key handling through Raycast
passwordpreferences - Contract verification to prevent command drift
This extension includes all top-level zbdw command groups:
initinfobalancereceivesendpaymentspaymentpaylinkwithdrawonchainfetch
The extension is intentionally thin:
- Collect user input in Raycast forms
- Execute
zbdwas a subprocess (array args, no shell) - Parse JSON stdout
- Render success/error payloads as formatted JSON
Business logic stays in @zbdpay/agent-wallet (zbdw) so behavior remains aligned with the CLI contract.
Configure these in Raycast extension preferences:
apiKey(required, password)cliPath(optional absolute path override forzbdw)apiBaseUrl(optionalZBD_API_BASE_URLoverride)aiBaseUrl(optionalZBD_AI_BASE_URLoverride)
- macOS + Raycast installed
- Node.js 22+
- One of the following available at runtime:
zbdwin PATH- bundled local
@zbdpay/agent-walletdependency (installed with this extension)
npm install
npm run test
npm run verify:contracts
npm run devnpm run buildnpm run test- unit/integration checks for runner + contractsnpm run verify:contracts- manifest contract parity checksnpm run lint- Raycast lint pipelinenpm run build- production extension build
assets/
scripts/
src/
components/
lib/
*.tsx commands
test/
- Contract checks support simulation flags for failure-path testing:
--simulate-missing-field <field>--simulate-command-mismatch <command>
- Runtime execution order:
- use explicit
cliPathif configured - try
zbdwfrom PATH - fallback to bundled local
@zbdpay/agent-walletCLI
- use explicit
- If
ray lintfails on author validation, setpackage.json.authorto your real Raycast handle.
MIT