The Problem

Cashu ecash wallets are typically operated through interactive CLIs or mobile apps, which makes them inaccessible to autonomous AI agents that need to send, receive, and manage Bitcoin payments programmatically. An agent that wants to pay an invoice or issue a payment token needs a simple, scriptable interface—not a REPL or a GUI.

What This Does

cashu-skill is a Node.js CLI wrapper around the coco-cashu-core library that exposes Cashu wallet operations as discrete, single-purpose commands. The entry point is cli/wallet.mjs, which dispatches to subcommands for balance checks, token sending/receiving, Lightning invoice creation and payment, mint management, and seed-based restoration. State persists to SQLite at ~/.cashu-wallet/wallet.db with a seed file for recovery.

The cli/package.json declares the runtime dependencies and requires Node.js >= 18 with ES modules. The README.md and SKILL.md document the command surface and agent-facing conventions. This is a fork of cashubtc/cashu-skill, which carries 25 stars upstream.

How To Use It

Setup: Clone the repo, then cd cli && npm install. There is no lockfile, so builds are not fully reproducible.

Configuration: No environment variables are required. The wallet seeds itself on first run and stores data in ~/.cashu-wallet. To add a mint:

node cli/wallet.mjs add-mint <mint-url>

Running it: All operations go through the single entry point:

node cli/wallet.mjs balance node cli/wallet.mjs invoice 1000 node cli/wallet.mjs send 500 node cli/wallet.mjs receive <cashu-token> node cli/wallet.mjs pay-invoice <bolt11>

The README documents npm test as a balance check, but there is no test runner configured—that command would fail.

Real-World Use

An AI agent that manages a Lightning node's spending capacity could use this to automate payouts. For example, a customer-support agent that needs to refund an order could invoke node cli/wallet.mjs pay-invoice <bolt11> with the refund invoice, then log the transaction via history. The agent's orchestration layer would parse the CLI's stdout for success/failure and amounts, keeping the wallet logic isolated from the agent's decision-making code.

Code Health & Issues

Med – No tests: The repo has zero test files. The README even admits "No test runner." Payment code with untested paths is a liability. Med – No CI: No .github/ or CI config exists, so nothing gates regressions or dependency changes. Low – No lockfile: cli/package.json declares dependencies but no package-lock.json, so npm install can produce different trees across machines and time. Low – Single-file CLI: Everything lives in cli/wallet.mjs. It works for a small tool, but error handling and command parsing are likely tangled in one file, which will complicate maintenance as commands grow. Low – No license: The repo has a LICENSE file, so this is likely fine—verify it's not an empty placeholder.

The Bottom Line

A practical, minimal wrapper that gives AI agents a clean command interface to Cashu ecash. The design is sound for the use case, but the missing tests and CI are real gaps for anything beyond a personal tool. Suitable for developers who want to prototype agent payments or run a small, self-hosted wallet; not ready for production payment infrastructure without adding test coverage and a proper build pipeline.