Posthog SDK Patterns
jeremylongshore/tons-of-skills-marketplace
Implement typed, lifecycle-safe PostHog SDK adapters for browser, Node.js, React, Next.js, or Python.
Spiceflow is a super simple, fast, and type-safe API and React Server Components framework for TypeScript.
$ npx skills add remorses/spiceflow --skill spiceflow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install remorses/spiceflow spiceflow --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/remorses/spiceflow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spiceflow .claude/skills/spiceflow && 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 "spiceflow" agent skill from https://github.com/remorses/spiceflow/tree/main/skills/spiceflow into .claude/skills/spiceflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spiceflow", 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/remorses/spiceflow/tree/main/skills/spiceflowType 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 remorses/spiceflow --skill spiceflow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install remorses/spiceflow spiceflow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/remorses/spiceflow.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spiceflow .agents/skills/spiceflow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spiceflow" agent skill from https://github.com/remorses/spiceflow/tree/main/skills/spiceflow into .agents/skills/spiceflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spiceflow", 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 remorses/spiceflow --skill spiceflow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install remorses/spiceflow spiceflow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/remorses/spiceflow.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spiceflow .cursor/skills/spiceflow && 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 "spiceflow" agent skill from https://github.com/remorses/spiceflow/tree/main/skills/spiceflow into .cursor/skills/spiceflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spiceflow", 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/remorses/spiceflow.git --path skills/spiceflow--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 remorses/spiceflow --skill spiceflow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install remorses/spiceflow spiceflow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/remorses/spiceflow.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spiceflow .gemini/skills/spiceflow && 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 "spiceflow" agent skill from https://github.com/remorses/spiceflow/tree/main/skills/spiceflow into .gemini/skills/spiceflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spiceflow", 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 remorses/spiceflow spiceflowInstalls 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 remorses/spiceflow --skill spiceflow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/remorses/spiceflow.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spiceflow .github/skills/spiceflow && 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 "spiceflow" agent skill from https://github.com/remorses/spiceflow/tree/main/skills/spiceflow into .github/skills/spiceflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spiceflow", 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 remorses/spiceflow --skill spiceflow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install remorses/spiceflow spiceflow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/remorses/spiceflow.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spiceflow .opencode/skills/spiceflow && 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 "spiceflow" agent skill from https://github.com/remorses/spiceflow/tree/main/skills/spiceflow into .opencode/skills/spiceflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spiceflow", 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.
spiceflowSpiceflow is a super simple, fast, and type-safe API and React Server Components framework for TypeScript.
Spiceflow is an agent skill from remorses/spiceflow. Spiceflow is a super simple, fast, and type-safe API and React Server Components framework for TypeScript. Works on Node.js, Bun, and Cloudflare Workers. ALWAYS load this skill BEFORE writing or editing ANY spiceflow code, including one-line changes: routes, pages, layouts, loaders, server actions, forms, ErrorBoundary, redirects, cookies, navigation, Link, router, ProgressBar, the typed fetch client, middleware, and OpenAPI. A project uses spiceflow if anything imports from "spiceflow" or "spiceflow/react", or…
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering OpenAPI specifications and Type safety. It works with React, Next.js, OpenAPI and Cloudflare Workers. The repository describes itself as: Minimal API & React framework, fully type safe, OpenAPI, RSC, MCP, type safe client, streaming with SSE. The licence is MIT.
Read from SKILL.md and the folder at commit 24643b8. 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.
Shell commands in SKILL.md call:
curlpnpmnpmbunFrom 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:
getspiceflow.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spiceflow loads about 1.9k tokens when it runs. Until then it costs about 182 tokens; SKILL.md has 710 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 remorses/spiceflow at commit 24643b8, republished under its MIT licence (© remorses). 710 words, ~1,943 tokens.
.claude/skills/spiceflow/SKILL.md (or your agent's skills folder).A project uses spiceflow if anything imports from spiceflow or spiceflow/react, or constructs new Spiceflow(). The API surface is small but very opinionated, and the opinions are NOT guessable. Every framework has its own answer for forms, pending state, error display, and redirects; spiceflow's answers are frequently different from Next.js and from React defaults. Writing spiceflow code from memory, or from what "looks like Next.js", produces wrong code every time.
Documentation lives at https://getspiceflow.com. Append .md to any page URL to get raw markdown. Fetch the docs index first if you have not read it this session:
curl -s https://getspiceflow.com/llms.txthttps://getspiceflow.com/llms-full.txt contains every doc in one file, and https://getspiceflow.com/docs.zip downloads all markdown files for local grepping.
Read every fetched doc completely, with no truncation. Never pipe to head, tail, or sed. Source code and runnable examples (example-* folders) live in the repo: https://github.com/remorses/spiceflow — read the code there when the docs are not enough.
Before touching code for a feature, fetch its doc in full. One page per branch:
| Task | Fetch |
|---|---|
API routes, Zod validation, json(), typed errors, middleware, serveStatic, CORS, streaming/SSE, .onError(), listen(), Node adapters, Next.js mount, waitUntil, base path, class instances | https://getspiceflow.com/api.md |
Typed fetch client (createSpiceflowFetch), WebMCP | https://getspiceflow.com/fetch-client.md |
| OpenAPI generation | https://getspiceflow.com/openapi.md |
| MCP tools | https://getspiceflow.com/mcp.md |
| Tracing / OpenTelemetry | https://getspiceflow.com/tracing.md (Strada projects: https://getspiceflow.com/strada.md) |
Custom serialization (Date, Map, Set, BigInt) | https://getspiceflow.com/custom-serialization.md |
RSC setup, Tailwind, shadcn, app entry, layouts, <Head> SEO, query params, "use client" components, code splitting, router, Link, redirects, ProgressBar, 404 pages | https://getspiceflow.com/react.md |
Loaders, useLoaderData, streaming with use(), forms, server actions, parseFormData, useActionState, ErrorBoundary | https://getspiceflow.com/react-data.md |
SpiceflowRegister, knownPaths, multi-app workspaces, circular TS7022 errors | https://getspiceflow.com/type-safety.md |
| Federation / remote components | https://getspiceflow.com/federation.md |
| Auth middleware, proxying, cookies, graceful shutdown | https://getspiceflow.com/middleware-patterns.md |
| Securing actions and routes | https://getspiceflow.com/security.md |
| Migrating from Remix / React Router | https://getspiceflow.com/migrate-from-remix.md |
| Cloudflare Workers (setup, bindings, KV caching, edge cache) | https://getspiceflow.com/cloudflare.md |
| Deploy skew, cross-deployment behavior | https://getspiceflow.com/deployment-skew.md |
| Service bindings | https://getspiceflow.com/service-bindings.md |
| Docker | https://getspiceflow.com/docker.md |
Dependency crashes with useState is undefined at startup | https://github.com/remorses/spiceflow/blob/main/docs/use-client-trap.md |
Before writing any vitest tests for a spiceflow app, ALWAYS read the testing guide first:
curl -s https://getspiceflow.com/testing.mdReference examples: example-vitest (API routes, pages, actions, DI, tracing spans) and example-vitest-cloudflare (tests inside workerd with D1 and KV).
These are the landmines that break apps when guessed. Each links to its full doc.
Link from spiceflow/react, never raw <a>, for links. Link auto-prepends the Vite base path; never prepend it manually. Raw fetch() and Response.redirect() still need manual base handling. → navigation<Head> is server-only. It records children during the RSC render; a 'use client' module never runs there, so a <Head> inside one contributes nothing (and importing it fails the build). Put <Head> in .page() / .layout() handlers. Use document.title in an effect for client-side title changes. → pages & layoutsthrow redirect(...), never return redirect(...). Applies to .page(), .layout(), .loader(), .get(), .post(), server actions, and middleware. → navigationrouter.refresh() after a server action. Successful actions already re-run loaders and reconcile the page. All navigation and refresh methods are fire-and-forget; never await a navigation commit inside a React form action (it can deadlock). → forms & actionsgetActionRequest(). → security:param paths with a params object (never interpolate IDs), return plain objects or json(...) from handlers (never return new Response(...)), pass body as a plain object, and check results with instanceof Error. → fetch clientnew Spiceflow({ tracer })) so handlers get span and tracer on the context. → tracingTypes have separate declarations of a private property. Fix with pnpm update -r spiceflow then pnpm dedupe (or npm update spiceflow --workspaces / bun update -r spiceflow). → fetch clientSpiceflowRegister-typed API (router.href(), createSpiceflowFetch(), useLoaderData()) appears in a handler return value in the app entry. JSX, throw, event handlers, and separate files are always safe. → type safetywww to the apex in one hop on new custom-domain sites. Point www.example.com at the same Cloudflare worker (custom_domain). Redirect www → https://example.com + path + query with status 301. Never leave www on Vercel/Pages. Never use 307. Never chain http://www → https://www → apex..use(({ request }, next) => {
const url = new URL(request.url)
if (!url.hostname.startsWith('www.')) return next()
url.hostname = url.hostname.slice('www.'.length)
url.protocol = 'https:'
throw redirect(url.toString(), { status: 301 })
})© remorses, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/spiceflow of remorses/spiceflow.
Open the folder on GitHubat commit 24643b8
Spiceflow 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 |
|---|---|---|---|---|---|---|
| Spiceflow this skillremorses/spiceflow | 167 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Posthog SDK Patternsjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Typescriptericrisco/rsc-harness | 167 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Api2clialexknowshtml/api2cli | 455 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Javascript SDKaiskillstore/marketplace | 430 | 1 repos | ~3.3k | Automated safety check: Pass | None | |
| Workos Widgetsusenotra/notra | 256 | — | ~2k | Automated safety check: Pass | AGPL-3.0 |
jeremylongshore/tons-of-skills-marketplace
Implement typed, lifecycle-safe PostHog SDK adapters for browser, Node.js, React, Next.js, or Python.
ericrisco/rsc-harness
A skill your agent uses when writing or fixing TypeScript type code (.ts/.tsx/.d.ts), modeling data with generics/unions/branded types, diagnosing narrowing failures, or configuring tsconfig and the…
alexknowshtml/api2cli
Generate a working CLI from any API, then wrap it in a Claude Code skill.
aiskillstore/marketplace
JavaScript/TypeScript SDK for inference.sh - run AI apps, build agents, integrate with all models.
usenotra/notra
A skill your agent uses when the user is implementing, embedding, or debugging a WorkOS Widget — specifically the User Management, User Profile, Admin Portal SSO Connection, or Admin Portal Domain…
idavidov13/agentic-playwright
TypeScript type safety conventions for the Playwright scaffold — the "no any" rule, Zod 4 schema patterns (z.strictObject, top-level validators like z.uuid / z.email / z.url / z.int / z.enum)…
Categories
Spiceflow is a super simple, fast, and type-safe API and React Server Components framework for TypeScript. Spiceflow is an agent skill from remorses/spiceflow. Spiceflow is a super simple, fast, and type-safe API and React Server Components framework for TypeScript.
Spiceflow fits situations like: tasks that involve OpenAPI specifications; tasks that involve Type safety.
Run `npx skills add remorses/spiceflow --skill spiceflow -a claude-code`. Or copy the skill folder (skills/spiceflow in remorses/spiceflow) into .claude/skills/spiceflow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add remorses/spiceflow --skill spiceflow -a codex`. Or copy the skill folder (skills/spiceflow in remorses/spiceflow) into .agents/skills/spiceflow 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 remorses/spiceflow --skill spiceflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spiceflow, .gemini/skills/spiceflow, .github/skills/spiceflow and .opencode/skills/spiceflow in your project.
Going by SKILL.md and its folder, Spiceflow needs the command-line tools its instructions call (curl, pnpm, npm and bun). Our summary lists: Node.js; Docker.
SKILL.md names 1 domain. In commands or code: getspiceflow.com; the agent is likely to contact it when it follows the instructions. 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.
Spiceflow 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.9k tokens (SKILL.md is roughly 7.8k 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 Spiceflow: Posthog SDK Patterns (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Typescript (ericrisco/rsc-harness, 167 stars), Api2cli (alexknowshtml/api2cli, 455 stars) and Javascript SDK (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
remorses (a GitHub user) maintains it in remorses/spiceflow, which has 167 GitHub stars. The repository was last updated on October 6, 2026.
Source: remorses/spiceflow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.