Work with Square: list locations and payments, create orders, push Terminal checkouts, charge payment sources, and refund payments. Trigger phrases: square, square terminal, process payment, refund payment, point of sale.
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill square
Work with a Square seller account: list locations and payments, create orders, push a checkout to a physical Square Terminal for in-person payment, charge a payment source directly, cancel a pending Terminal checkout, and refund a payment. Reach for this when the user needs to take or return money through Square.
All commands go through bin/square.py. Sandbox is the default (--env sandbox); sandbox never moves real money. Add --env prod for production:
bin/square.py auth # verify the token (sandbox)
bin/square.py locations # list seller locations
bin/square.py payments --limit 10 # list payments
bin/square.py payment-get --payment-id PAY_ID # one payment
bin/square.py order-create --file order.json # create an order (moves no money)
bin/square.py checkout-create --device-id DEV_ID \
--amount-cents 1200 --currency USD \
--confirm "present $12.00 USD charge on terminal DEV_ID" # push charge to a Terminal
bin/square.py checkout-get --checkout-id CO_ID # Terminal checkout status
bin/square.py checkout-cancel --checkout-id CO_ID \
--confirm "cancel terminal checkout CO_ID" # cancel a pending checkout
bin/square.py charge --source-id SRC_ID \
--amount-cents 1200 --currency USD \
--confirm "charge $12.00 USD to payment source SRC_ID" # charge a payment source
bin/square.py refund --payment-id PAY_ID \
--amount-cents 1200 --currency USD \
--confirm "refund $12.00 USD on payment PAY_ID" # send money back
Amounts are in the currency's smallest unit (--amount-cents 1200 is $12.00). order-create takes a Square order object in JSON and creates an order record only; no money moves until a payment is attached.
square (credential is collected as custom.square)credentials.request_api_access) for third-party apps, or a personal access token for a single account; the runtime performs the token exchange/refresh and hands the CLI a fresh Bearer token, same pattern as the slack and x connectorsAuthorization: Bearer <token> on every requestconnect.squareup.com, connect.squareupsandbox.comhttps://connect.squareupsandbox.com. Switch to production only with --env prod on the command and a production credential stored.bin/square.py auth--env prod. Confirm the flow works in sandbox, then switch.POST /v2/terminals/checkouts presents a charge on a physical Terminal; a customer tapping or inserting a card captures real funds. POST /v2/payments charges a payment source immediately. Both require --confirm with the exact string the CLI echoes (it names the amount, the currency and the target) on every call, in sandbox and in production. Missing or mismatched confirmation refuses the call.POST /v2/refunds requires --confirm with the exact echoed string on every call (this is stricter than the standing first-use-only rule, chosen because a mistaken refund is hard to take back).--confirm every time; it has no effect once the payment completed.bin/square.py). Do not print, log, or transmit the token.Draft: written from Square's public API docs; not yet live-tested end-to-end.
Take anil-matcha/square from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.