API Patterns
dilolabs/nosia
Builds REST APIs using respondto blocks with Jbuilder templates following the 37signals same-controllers-different-formats philosophy.
Full Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions.
$ npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pockethost/pockethost lemon-squeezy-integration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/lemon-squeezy-integration .claude/skills/lemon-squeezy-integration && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "lemon-squeezy-integration" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integration into .claude/skills/lemon-squeezy-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lemon-squeezy-integration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integrationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pockethost/pockethost lemon-squeezy-integration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/lemon-squeezy-integration .agents/skills/lemon-squeezy-integration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lemon-squeezy-integration" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integration into .agents/skills/lemon-squeezy-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lemon-squeezy-integration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pockethost/pockethost lemon-squeezy-integration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/lemon-squeezy-integration .cursor/skills/lemon-squeezy-integration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lemon-squeezy-integration" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integration into .cursor/skills/lemon-squeezy-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lemon-squeezy-integration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pockethost/pockethost.git --path .cursor/skills/lemon-squeezy-integration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pockethost/pockethost lemon-squeezy-integration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/lemon-squeezy-integration .gemini/skills/lemon-squeezy-integration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lemon-squeezy-integration" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integration into .gemini/skills/lemon-squeezy-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lemon-squeezy-integration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pockethost/pockethost lemon-squeezy-integrationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/lemon-squeezy-integration .github/skills/lemon-squeezy-integration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lemon-squeezy-integration" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integration into .github/skills/lemon-squeezy-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lemon-squeezy-integration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pockethost/pockethost lemon-squeezy-integration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pockethost/pockethost.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/lemon-squeezy-integration .opencode/skills/lemon-squeezy-integration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lemon-squeezy-integration" agent skill from https://github.com/pockethost/pockethost/tree/main/.cursor/skills/lemon-squeezy-integration into .opencode/skills/lemon-squeezy-integration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lemon-squeezy-integration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lemon-squeezy-integrationFull Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions.
Lemon Squeezy Integration is an agent skill from pockethost/pockethost. Full Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions. Use when integrating Lemon Squeezy billing, checkout, webhooks, LS API, Lemon.js, or subscription provisioning into an application.
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `api.md`, `integration-checklist.md` and `lemonjs.md`).
It sits in Backend & APIs, covering Webhooks and REST APIs. The repository describes itself as: Open source multitenant PocketBase server. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 82c9ba3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
store.pockethost.ioAlso links to:
docs.lemonsqueezy.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
LEMONSQUEEZY_API_KEYLEMONSQUEEZY_WEBHOOK_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Lemon Squeezy Integration loads about 1.1k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 417 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pockethost/pockethost at commit 82c9ba3, republished under its MIT licence (© pockethost). 417 words, ~1,105 tokens.
.claude/skills/lemon-squeezy-integration/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Official docs: https://docs.lemonsqueezy.com/
Three layers — use all three for a production SaaS integration:
| Layer | Tool | Runs on |
|---|---|---|
| Checkout UX | Lemon.js + checkout URLs | Browser |
| Admin / dynamic checkout | REST API or @lemonsqueezy/lemonsqueezy.js | Server only |
| Provisioning | Webhooks | Server endpoint |
Never expose LEMONSQUEEZY_API_KEY in client code. The npm SDK is server-only.
Golden rule: Webhooks are the source of truth for granting access. Lemon.js Checkout.Success is UX-only — do not provision solely from client events.
| Need | Use |
|---|---|
| Static pricing page | Dashboard checkout URLs + optional Lemon.js overlay |
| Per-user checkout with custom data | Append checkout[custom][user_id] to URL, or create checkout via API |
| Dynamic pricing / on-demand checkout | Server: createCheckout → open URL with Lemon.js |
| Grant/revoke access after payment | Webhook handler |
| Customer billing portal | subscription.urls.update_payment_method from API + Lemon.js overlay |
| Variable | Purpose |
|---|---|
LEMONSQUEEZY_API_KEY | Server API auth (Settings → API) |
LEMONSQUEEZY_STORE_ID | Store ID for checkout creation |
LEMONSQUEEZY_WEBHOOK_SECRET | Verify incoming webhook X-Signature |
Use test mode keys until production. Docs: https://docs.lemonsqueezy.com/help/getting-started/test-mode
Create products and variants in the LS dashboard (or sync via API). Record store_id, product_id, and variant_id for each plan.
Static URL:
https://[STORE].lemonsqueezy.com/checkout/buy/[VARIANT_ID]With user linking (required for webhook provisioning):
?checkout[custom][user_id]=USER_ID&checkout[email]=user@example.comOverlay: Load Lemon.js, add lemonsqueezy-button class to links, or call LemonSqueezy.Url.Open(url).
Dynamic: Server creates checkout via API/SDK → use data.attributes.url from response.
Share /checkout/buy/ URLs only. Do not share converted /checkout/?cart= URLs — they are single-use per customer.
PocketHost uses custom domain URLs like https://store.pockethost.io/buy/... — see pockethost.md.
X-Signature headermeta.event_name and meta.custom_dataKey events: order_created, subscription_created, subscription_updated, subscription_expired, subscription_cancelled, order_refunded, subscription_payment_refunded
Store at minimum: LS subscription/order id, status, variant_id, renews_at, ends_at, and your internal plan tier mapping.
On refund/expiry/cancel → revoke or decrement access.
checkout[custom][user_id]){product_id}-{variant_id} to webhook allowlist and product handler mapmeta.custom_data.user_id was passed at checkout@lemonsqueezy/lemonsqueezy.js© pockethost, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files in .cursor/skills/lemon-squeezy-integration of pockethost/pockethost.
Open the folder on GitHubat commit 82c9ba3
Lemon Squeezy Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lemon Squeezy Integration this skillpockethost/pockethost | 1.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| API Patternsdilolabs/nosia | 213 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Loops APIopeninary/openinary | 412 | — | ~1.1k | Automated safety check: Pass | AGPL-3.0 | |
| Verifygregluffy/HomeLabInfo | 103 | — | ~424 | Automated safety check: Pass | GPL-3.0 | |
| Bigcommerce APIqdhenry/Claude-Command-Suite | 1.3k | — | ~1.5k | Automated safety check: Pass | None | |
| DiscordOpenHands/extensions | 161 | — | ~1.1k | Automated safety check: Pass | MIT |
dilolabs/nosia
Builds REST APIs using respondto blocks with Jbuilder templates following the 37signals same-controllers-different-formats philosophy.
openinary/openinary
A skill your agent uses whenever the user wants to integrate Loops from application code, backend services, webhook handlers, or server-side automation.
gregluffy/HomeLabInfo
Build, run, and drive the HomeLabInfo backend to verify changes at its real surfaces (REST API, UDP DHCP listener, outgoing webhooks).
qdhenry/Claude-Command-Suite
BigCommerce API expert for building integrations, apps, headless storefronts, and automations.
OpenHands/extensions
Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).
waynesutton/builder-skills
Adds HTTP endpoints in convex/http.ts: webhook receivers with signature checks, REST style routes, CORS, auth headers, streaming responses, and file uploads over HTTP.
pockethost/pockethost
Write PocketHost blog posts in Ben Allfree's voice (@cap'n).
pockethost/pockethost
Run pnpm check:push (lint, types, tests) before git push or PR-ready work.
pockethost/pockethost
Create scoped git commits from the current conversation (e.g.
pockethost/pockethost
Ship user-facing PocketHost features with a blog post instead of semver release notes.
pockethost/pockethost
Models PocketBase backends: collections, relations, auth, API rules, migrations, and architecture.
pockethost/pockethost
Builds PocketBase superuser admin UI extensions (admin plugins) on PB ≥0.37: ServeEvent.uiExtensions, client main.js, window.app SPA hooks, Shablon UI, reactive stores, CSP, SSE/realtime topics.
Categories
Full Lemon Squeezy integration — REST API, @lemonsqueezy/lemonsqueezy.js server SDK, Lemon.js checkout overlays, webhooks, customdata, and subscriptions. Lemon Squeezy Integration is an agent skill from pockethost/pockethost.js checkout overlays, webhooks, customdata, and subscriptions.
Lemon Squeezy Integration fits situations like: integrating Lemon Squeezy billing; subscription provisioning into an application.
Run `npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a claude-code`. Or copy the skill folder (.cursor/skills/lemon-squeezy-integration in pockethost/pockethost) into .claude/skills/lemon-squeezy-integration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a codex`. Or copy the skill folder (.cursor/skills/lemon-squeezy-integration in pockethost/pockethost) into .agents/skills/lemon-squeezy-integration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pockethost/pockethost --skill lemon-squeezy-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lemon-squeezy-integration, .gemini/skills/lemon-squeezy-integration, .github/skills/lemon-squeezy-integration and .opencode/skills/lemon-squeezy-integration in your project.
Going by SKILL.md and its folder, Lemon Squeezy Integration needs credentials named LEMONSQUEEZY_API_KEY and LEMONSQUEEZY_WEBHOOK_SECRET. Our summary lists: A credential in LEMONSQUEEZY_API_KEY; A credential in LEMONSQUEEZY_WEBHOOK_SECRET.
SKILL.md names 2 domains. In commands or code: store.pockethost.io; the agent is likely to contact it when it follows the instructions. As links in the text: docs.lemonsqueezy.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Lemon Squeezy Integration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Lemon Squeezy Integration: API Patterns (dilolabs/nosia, 213 stars), Loops API (openinary/openinary, 412 stars), Verify (gregluffy/HomeLabInfo, 103 stars) and Bigcommerce API (qdhenry/Claude-Command-Suite, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pockethost (a GitHub organization) maintains it in pockethost/pockethost, which has 1,444 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 28, 2026.
Source: pockethost/pockethost on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.