agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
Run Stripe webhook smoke tests and billing lifecycle simulations for stripe
$ npx -y skills add humanlayer/humanlayer --skill stripe-billing-verification --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/stripe-billing-verificationContext preview
The summary Claude sees to decide when to auto-load this skill.
Run Stripe webhook smoke tests and billing lifecycle simulations for stripe
name: stripe-billing-verification description: Run Stripe webhook smoke tests and billing lifecycle simulations for stripe
Default to Stripe CLI forwarding for local work. Use ngrok only when the user specifically needs Stripe to deliver to a public HTTPS endpoint.
export STRIPE_WEBHOOK_SECRET="$(stripe listen --print-secret | tr -d '\r\n')" LISTENER_LOG=/tmp/stripe-billing-verification/stripe-listen.log mkdir -p "$(dirname "$LISTENER_LOG")" stripe listen --forward-to http://localhost:8700/webhooks/stripe \ 2>&1 | tee "$LISTENER_LOG" stripe trigger payment_intent.succeeded stripe trigger customer.subscription.created
curl -i http://localhost:8700/webhooks/stripe \
-X POST \
-H 'content-type: application/json' \
-d '{}'stripe test_helpers test_clocks create --frozen-time <unix-ts> stripe test_helpers test_clocks advance <clock-id> --frozen-time <unix-ts>
1. Ensure local `riptide-api` is running on `http://localhost:8700` 2. Capture the CLI forwarding secret with `stripe listen --print-secret` 3. Export that value as `STRIPE_WEBHOOK_SECRET` 4. Start a separate `stripe listen --forward-to http://localhost:8700/webhooks/stripe` process and tee its output to a file so the initial readiness output is preserved even though the process stays attached by design 5. Trigger smoke-test events with `stripe trigger ...` 6. For lifecycle validation, create a fresh Test Clock, attach a fresh customer, advance the clock, and wait for readiness before asserting results
`stripe listen --print-secret` is the preferred non-interactive way to capture the local forwarding secret because it prints only the secret and exits. It does not keep the listener running.
When starting the long-running Stripe listener, always tee its output to a file so you keep the immediate readiness lines and forwarded event feedback:
LISTENER_LOG=/tmp/stripe-billing-verification/stripe-listen.log mkdir -p "$(dirname "$LISTENER_LOG")" stripe listen --forward-to http://localhost:8700/webhooks/stripe \ 2>&1 | tee "$LISTENER_LOG"
Riptide dev logs live in:
~/.humanlayer/riptide/logs/
To list recent dev logs:
ls -tr -la ~/.humanlayer/riptide/logs/ | tail -n 10
1. Export the CLI forwarding secret:
export STRIPE_WEBHOOK_SECRET="$(stripe listen --print-secret | tr -d '\r\n')"
2. Start forwarding in a separate terminal:
LISTENER_LOG=/tmp/stripe-billing-verification/stripe-listen.log mkdir -p "$(dirname "$LISTENER_LOG")" stripe listen --forward-to http://localhost:8700/webhooks/stripe \ 2>&1 | tee "$LISTENER_LOG"
3. Confirm unsigned traffic fails with `400`:
curl -i http://localhost:8700/webhooks/stripe \
-X POST \
-H 'content-type: application/json' \
-d '{}'4. Trigger one or more smoke events:
stripe trigger payment_intent.succeeded stripe trigger customer.subscription.created stripe trigger customer.subscription.updated
5. Verify that the route returns `2xx` for valid signed events and that logs include event id and type.
If you need to confirm the webhook made it through the rest of the local stack, also check the latest files in `~/.humanlayer/riptide/logs/`.
Use Test Clocks for time-based billing scenarios in Stripe test mode.
Important constraints:
Safe to automate:
Keep manual or human-confirmed:
Check whether:
That is expec
HumanLayer runs coding agents (Claude Code, Codex, OpenCode, Pi) on your machines and lets your team steer them from one place: tasks, sessions, plans, and reviews, synced between a desktop app, a web app, and a daemon on each host. This repo holds all of it.
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
Rewrites ambiguous English into ASD-STE100 style — one meaning per word, active voice, simple tense, short sentences. Use when…
Use for 1) inspecting PR state, 2) reading review threads, or 3) debugging CI failures. Otherwise use the gh CLI.
Bump the base version of one or more packages (riptide-native, cli, linear-cli, rpi-plugin) on a PR - updates every synced file,…
Diff call stacks across git commits for agentic code review (22 languages). Run `calldiff --help` for usage details.
Use this to skill to write shell scripts or run shell commands to automate tasks in the browser or otherwise use Chrome DevTools…