remorses
- 59 skills
- 0 followers
- 11 hours ago last updated
- ▌ Playwright CLI · remorses bundleAutomates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
- ▌
- ▌ Holocron · remorsesHolocron is a Mintlify-compatible docs site generator and Vite plugin. Use this skill when creating, migrating, customizing, or deploying a Holocron documentation site. Also load when writing index.mdx, page titles, hideTitle, Above heroes, or homepage SEO for Google brand ranking.
- ▌ Bump Holocron Consumers · remorsesBump @holocron.so/vite and @holocron.so/cli in Tommy's other GitHub repos. Use when asked to update holocron versions across remorses consumer sites, find repos that depend on holocron.so/vite or holocron.so/cli, or sync docs-site packages after a holocron release.
- ▌ New Skill · remorsesBest practices for creating a SKILL.md file. Covers file structure, frontmatter, writing style, and where to place skills in a repository. Use when the user wants to create a new skill, update an existing skill, write a SKILL.md, or asks how skills work.
- ▌ NPM Package · remorsesOpinionated TypeScript npm package template for ESM packages. Enforces src→dist builds with tsc, strict TypeScript defaults, explicit exports, and publish-safe package metadata. Relative source imports must use .ts or .tsx (never .js); tsc rewrites them via rewriteRelativeImportExtensions. Use this when creating or updating any npm package in this repo.
- ▌ Whatfontis · remorsesIdentify fonts from images using the WhatFontIs API (990K+ font catalog). Use when the user wants to identify a font from a screenshot, image file, or image URL. Covers base64 upload and URL-based requests via curl.
- ▌ X Articles · remorsesEdit x.com (Twitter) long-form article drafts reliably. Use this for markdown imports, bulk formatting, code blocks, headings, lists, and repeated inline styling. Inspect and validate with Playwriter, but prefer x.com (Twitter) article GraphQL mutations for deterministic updates.
- ▌ Egaki Angled Screen · remorsesTurn a flat screenshot or video into a cinematic angled product shot with true depth-of-field bokeh via egaki <AngledScreen>. Use when the user wants an angled screen mockup, tilted UI photo look, product marketing still, cinematic DOF on a screenshot, or to export an image/video with the angled screen effect. ALWAYS load this skill for those tasks.
- ▌ Obs · remorsesControl OBS Studio via CLI using obs-cmd and obs-websocket v5. Covers streaming, recording, window/screen capture, audio control, scene management, and RTMP configuration on macOS. Load this skill when automating OBS, setting up live streams, or controlling OBS from scripts or agents.
- ▌
- ▌ Napi · remorsesBuild native Node.js addons in Rust with napi-rs. Covers the napi config, #[napi] attributes, ThreadsafeFunction callbacks, what `napi build` generates and which inputs control it, cross-compiling, the multi-platform publish pipeline, and the loader contract. ALWAYS load this skill when a repo has a build.rs calling napi_build::setup(), a "napi" key in package.json, a @napi-rs/cli dependency, or any .node binary. Load it before editing Cargo.toml, package.json, or CI for a native addon, and before debugging why a binding fails to load or why the published package is huge.
- ▌ Pnpm · remorsesUse to debug why a specific package has duplicate dependencies in a pnpm project's node_modules, which can cause type-checking and bundler errors or duplicate singleton instances such as React contexts. Also use for pnpm workspace dependency updates. NEVER use package.json overrides to update or align versions; use `pnpm update -r <package>` instead.
- ▌ Jitter · remorses bundleControl Jitter (jitter.video) for exporting animations, replacing assets, modifying text, and rendering frames at specific times programmatically via Playwriter.
- ▌ Ray So · remorsesGenerate beautiful code snippet images using ray.so and Playwriter. Builds a URL with code, theme, and settings encoded in the hash fragment, navigates to it in Chrome, and exports the image via Cmd+C clipboard copy. Use this skill when the user asks to create a code image, code screenshot, or code snippet image.
- ▌ Stripe · remorsesStripe billing patterns for spiceflow + Drizzle apps. Covers creating products and prices via the Stripe CLI with stable lookup keys, multi-currency USD+EUR pricing, monthly/yearly subscriptions, type-safe Checkout and Billing Portal integration in spiceflow routes, webhook handling, and the rules for preventing double customers and double subscriptions in the database. Load this skill whenever adding, modifying, or debugging any Stripe code (prices, checkout sessions, portal sessions, webhooks, subscription logic).
- ▌ Doppler · remorsesDoppler CLI workflows for secrets management in this workspace. Covers creating projects non-interactively (agent-friendly), renaming the default envs to development/preview/production, uploading secrets, type-safe env access in TypeScript apps, CI integration via GitHub Actions, and syncing secrets to Cloudflare Workers (wrangler) and Fly.io (flyctl). Use this skill whenever a task involves `doppler run`, `DOPPLER_TOKEN`, creating or renaming Doppler projects/configs, adding `.env` secrets to Doppler, syncing Doppler secrets to a deployment target, or wiring Doppler into a new service or CI workflow.
- ▌ Drizzle · remorses bundleDrizzle ORM conventions and best practices for TypeScript projects. Covers namespace imports, Prisma-like query API, object-style where filters, schema design (ULIDs, cascade deletes, indexes, enums over bools), Zod schema generation, type inference, transactions, migrations, and driver setup for Cloudflare Durable Objects (via sqlite-proxy), libSQL/Turso, Postgres via Hyperdrive, and Cloudflare D1. ALWAYS load this skill when a repo uses drizzle-orm.
- ▌ Proxyman · remorsesReverse-engineer HTTP APIs using Proxyman for macOS. Intercept, record, and export network traffic from CLI tools and apps (Node.js, Python, Ruby, Go, curl). Export as HAR (JSON) and analyze with jq. Use this skill when the user wants to capture, inspect, or reverse-engineer HTTP traffic from macOS applications. NEVER load this skill unless the user explicitly asks for it. Never use unprompted. Proxyman intercepts all network traffic and will break internet connectivity if activated unexpectedly.
- ▌ Tailwind · remorses bundleTailwind CSS v4 conventions, dark mode with @variant dark, and CSS-based configuration (no tailwind.config.js). ALWAYS load this skill before editing any Tailwind styles, markup, or CSS in a Tailwind project.
- ▌ React PDF · remorses bundleGenerate professional PDF reports using @react-pdf/renderer in Node.js scripts. Produces clean, document-style output similar to academic papers or business reports. Covers headings, paragraphs, lists, images, page numbers, and the Node API (renderToFile, renderToBuffer). Use this skill when the user asks to generate, create, or build PDF reports from TypeScript/Node scripts.
- ▌ Changesets · remorsesChangeset-based versioning workflow. Manually add .changeset/*.md files to describe changes instead of editing CHANGELOG.md directly. Changesets are consumed at publish time to bump versions and generate changelogs. ALWAYS load this skill when a repo has a .changeset/ folder. In such a repo, ALWAYS add a changeset file for every commit before creating the commit.
- ▌ Better Auth · remorses bundleAuthentication and authorization with better-auth in Spiceflow and TypeScript apps. Covers server config with Drizzle adapter (Postgres and SQLite), Spiceflow middleware for forwarding auth requests, client setup, session middleware, social and email/password auth, server-side session checks, and React client hooks (useSession, signIn, signOut, signUp). Also covers device authorization (CLI device flow), bearer token auth, server actions with auth, and SQLite Durable Objects (betterAuth inside the DO, getCookieCache in the Worker). ALWAYS load this skill when a project uses better-auth. Load durable-objects.md when auth tables live in a Durable Object.
- ▌ Searching X · remorsesSearch X (Twitter) for posts, users, and threads using the grok CLI's native X search tools. Use when the user wants to find tweets, search for what people are saying about a topic, look up X users, or read full threads. Covers x_keyword_search, x_semantic_search, x_user_search, and x_thread_fetch with precise prompt templates and the full set of X search operators.
- ▌ Agent Device · remorsesSet up and control physical iPhones from a Mac with the agent-device CLI. Use for device pairing, Xcode signing, app navigation, reading screens, screenshots, accessibility-hang recovery, and multiple connected phones.
- ▌ Composio CLI · remorses bundleHelp users operate the published Composio CLI to find the right tool, connect accounts, inspect schemas, execute tools, subscribe to trigger events with `composio listen`, script workflows with `composio run`, and call authenticated app APIs with `composio proxy`. Use when the user asks how to do something with `composio`, wants to run a known tool slug, needs to discover a slug with `composio search`, fix a missing connection with `composio link`, inspect tool inputs with `--get-schema` or `--dry-run`, troubleshoot top-level CLI flows, or explicitly needs `composio dev` guidance.
- ▌ Grok Imagine · remorses bundleGenerate images on grok.com/imagine with the signed-in Grok session. Use when the user wants Grok Imagine, a landscape image, or to replay a recorded Imagine prompt. Prefer the in-page network API, not UI clicks.
- ▌ Shift Commits · remorses bundleRewrite git commit timestamps to shift weekday before-5PM commits to after 5 PM. Use when the user wants to shift, rewrite, or adjust commit times so they appear to be made after working hours. Supports dry-run preview, date range filtering, and deterministic per-commit hour assignment.
- ▌ Tommy X Posts · remorsesWrite and publish X posts for Tommy (@__morse) in his voice. Use when asked to draft, plan, or post a tweet or long-form X post, especially product/launch posts for his projects. Covers voice rules, structure, fact gathering from real code, and publishing via the akarso CLI.
- ▌ Wrangler Login · remorsesNon-interactive wrangler OAuth login using playwriter to automate the Cloudflare consent flow in the user's browser. Use when wrangler auth is expired ("Failed to fetch auth token: 400 Bad Request") or when `wrangler whoami` fails. Delegate to a subagent Task to save context.
- ▌ Emil Design Eng · remorsesThis skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
- ▌ Reading X Posts · remorsesRead tweets and threads from X (Twitter). Use when the user shares an x.com or twitter.com URL and wants to read a post or thread. Covers single-tweet extraction via oEmbed (no auth, instant) and full thread reading via Playwriter.
- ▌ Stripe Disputes · remorsesStripe dispute and chargeback evidence workflow. Covers listing open disputes via CLI, collecting evidence from databases and APIs, generating evidence PDFs with react-pdf, capturing screenshots with Playwriter, rendering email images, and submitting evidence via Stripe CLI. Includes best practices for winning disputes on SaaS and digital products, Visa CE 3.0 prior undisputed transactions, per-reason-code evidence strategies, and file formatting rules. Load this skill when handling Stripe disputes, chargebacks, or generating evidence documents.
- ▌ Zod JSON Schema · remorsesBest practices for generating JSON Schema from Zod v4 schemas using z.toJSONSchema(). Covers target versions, metadata registries, override callbacks, io modes, transform handling, regen-check tests, and serving schemas as HTTP routes. Load this skill when converting Zod schemas to JSON Schema or building schema generation scripts.
- ▌ Data Graph Image · remorsesGenerate branded chart, graph, analytics, KPI, and data infographic images with Egaki and ChatGPT Image. Use when a user asks for a graph image, usage graphic, metric card, social data visualization, or branded chart.
- ▌ Song Recognition · remorses bundleIdentify songs from audio files using ShazamIO. Use when the user asks to recognize a song, identify music from an audio file, find what song is playing, or Shazam an audio clip.
- ▌ Cloudflare Workers · remorses bundleCloudflare Workers and Durable Objects conventions for TypeScript projects. Covers wrangler.jsonc configuration, type-safe env via `wrangler types` and `import { env } from 'cloudflare:workers'`, secrets.required for typed secrets, custom_domain for routing, preview/production environments, deploy scripts, Durable Objects with SQLite, Spiceflow as the web framework with Vite, WebSocket close codes on Durable Objects (1006 isolate kill, always reconnect), and Durable Object OOM detection (exceededMemory vs scriptThrewException, clientDisconnected, responseStreamDisconnected) plus heap profiling. ALWAYS load this skill when a project uses wrangler, Cloudflare Workers, Durable Objects, or deploys to Cloudflare. Load it before writing any wrangler config, worker code, deploy scripts, or Durable Object WebSocket clients. Load durable-object-memory.md when counting OOMs, splitting DO invocation errors, taking heap snapshots, or reducing isolate RSS.
- ▌ Transactional Email · remorsesHow to write and send transactional emails (welcome, first-deploy, notifications) from Cloudflare Workers. Covers the preferred personal writing style (no headings, Gmail-default look, dark mode), building HTML with plain template strings, the send_email wrangler binding, previewing in light/dark mode with Playwriter, test-sending real emails via a temp worker without deploying, and one-off scripts that email specific users via the cloudflare SDK (plan changes, bug notices). ALWAYS load this skill when adding, editing, testing, or sending transactional emails in a project.
- ▌ Event Sourcing State · remorsesEvent-sourced application state pattern for TypeScript apps. Prefer bounded event logs plus pure derivation functions over mirrored mutable lifecycle flags. Use when state transitions are driven by events and bugs can be reproduced from a saved event stream.
- ▌ Vercel Deploy Button · remorsesVercel Deploy Button for one-click project deployment from a Git template. Covers all URL parameters, environment variable pre-filling, redirect callbacks, deploy hooks, demo cards, integrations, and the pattern for associating a deployed GitHub repo with your own backend resource via pre-filled env vars and Vercel system env vars. Load this skill when adding a "Deploy with Vercel" button, customizing deploy button URLs, or building a deploy-from-template flow that connects back to your API.
- ▌ Diffusionstudio Watch · remorses bundleWatch and understand footage with Diffusion Studio via the `dapi` CLI: answer questions about a video or audio file, summarize it, find scenes and moments, pull quotes, and describe what happens and when. Use whenever the user asks what's in a piece of footage, wants a summary or recap, wants to locate a moment ("where does X happen", "find the scene where..."), or needs a claim about a video or audio file checked.
- ▌ Diffusionstudio Editor · remorses bundleUnderstand, generate, and edit footage with Diffusion Studio via the `dapi` CLI: analyze video/audio/images, generate them with AI, and compose video compositions. Use for any media analysis, media generation, or video editing task.
- ▌ Cloudflare Deploy Button · remorses"Deploy to Cloudflare" button for self-hostable Workers apps. Covers wrangler.jsonc setup, D1 migrations in deploy script, secret descriptions, .dev.vars.example, monorepo handling, custom domains, and the cloudflare field in package.json. Load this skill when adding a deploy button to a Cloudflare Workers project or making an app easy to self-host on Cloudflare.
- ▌ Zustand Centralized State · remorsesCentralized state management pattern using Zustand vanilla stores. One immutable state atom, functional transitions via setState(), and a single subscribe() for all reactive side effects. Based on Rich Hickey's "Simple Made Easy" principles: prefer values over mutable state, derive instead of cache, centralize transitions, and push side effects to the edges. Resource co-location in the same store is also valid when lifecycle management is safer that way. Also covers state encapsulation: keeping state local to its owner (closures, plugins, factory functions) so it doesn't leak across the app, reducing the blast radius of mutations. Also covers event sourcing: keeping a bounded event buffer and deriving state with pure functions instead of mutable flags, making event handlers easy to test and reason about. Use this skill when building any stateful TypeScript application (servers, extensions, CLIs, relays) to keep state simple, testable, and easy to reason about. ALWAYS read this skill when a project uses zustan
- ▌ Strada · remorsesStrada is an open-source OpenTelemetry observability platform (error tracking, tracing, logs, metrics, browser analytics, health checks) that stores data in ClickHouse/Tinybird. ALWAYS load this skill when you need to interface with the Strada CLI, read or debug a project issue via OpenTelemetry data collected by Strada, or set up and configure a project that uses Strada for OpenTelemetry data ingestion.
- ▌ Termcast · remorses bundleBuild TUIs with a Raycast-like React API using termcast. Implements @raycast/api components (List, Detail, Form, Action) rendered to the terminal via opentui.
- ▌ Tuistory · remorsestmux for AI agents. Run dev servers and TUIs in named background sessions that agents can read, wait on, snapshot, and type into. Replaces tmux with reactive waiting instead of blind `sleep`. Projects wrap their dev script with tuistory (`"dev": "tuistory -- next dev"`) so agents get a background session and humans get auto-attached. Use tuistory when you need to: - Run background dev servers or long-lived processes - Control interactive CLIs and TUIs (type, press keys, click, wait, snapshot) - Write Playwright-style tests for terminal apps **CLI** (`tuistory`) for background sessions. **JS/TS API** (`launchTerminal`) for programmatic control and tests.
- ▌ Usecomputer · remorsesDesktop automation CLI for AI agents (macOS, Linux, Windows). Screenshot, click, type, scroll, drag with native Zig backend. Use this skill when automating desktop apps with computer use models (GPT-5.4, Claude). Covers the screenshot-action feedback loop, coord-map workflow, window-scoped screenshots, and system prompts for accurate clicking.
- ▌ Zele · remorseszele is a multi-account email and calendar CLI for Gmail, IMAP/SMTP (Fastmail, Outlook, any provider), and Google Calendar. It reads, searches, sends, replies, forwards, archives, stars, and trashes emails, manages drafts, labels, attachments, and Gmail filters, and creates, updates, and deletes calendar events with RSVP and free/busy support. Output is YAML so commands can be piped through yq and xargs. ALWAYS load this skill when the user asks to check email, read/send messages, reply or forward, archive or trash threads, manage drafts or labels, download attachments, schedule meetings, check their calendar, RSVP to events, or when they run any `zele` command. Load it before writing any code or shell commands that touch zele so you know the correct subcommand structure, the Google vs IMAP feature matrix, the headless login flow, and the agent-specific rules.
- ▌ Critique · remorsesGit diff viewer. Renders diffs as web pages, images, and PDFs with syntax highlighting. Use this skill when working with critique for showing diffs, generating diff URLs, or selective hunk staging.
- ▌ Egaki · remorsesAI image and video generation CLI and MDX-to-video framework built on Remotion. Use this skill to install egaki, configure auth, generate images/videos, create MDX video projects with animation primitives (Opacity, Scale, TranslateX, Blur), easing presets (EASE, springFromDuration, dspring, cubicBezier), LayoutTransition, captions, voice cloning, TTS, Server components, and media components. ALWAYS load this skill when the user mentions egaki, runs egaki commands, edits egaki MDX video files, or works in a project with an egaki vite plugin.
- ▌ Errore · remorsesGo-style error handling for TypeScript: return errors as a plain `Error | T` union instead of throwing. `instanceof Error` narrows the type — no Result wrapper. The gist: ```ts class NotFoundError extends errore.createTaggedError({ name: 'NotFoundError', message: 'User $id not found', }) {} async function getUser(id: string) { const user = await db.findUser(id).catch((e) => new DbError({ cause: e })) if (user instanceof Error) return user // early return, like Go's err != nil if (!user) return new NotFoundError({ id }) return user // caller narrows the same way } ``` ALWAYS read this skill when a repo uses the errore convention (errore.org). ALWAYS use errore for new TypeScript projects.
- ▌ Gitchamber · remorsesCLI to download npm packages, PyPI packages, crates, or GitHub repo source code into node_modules/.gitchamber/ for analysis. Use when you need to read a package's inner workings, documentation, examples, or source code. Alternative to opensrc that stores in node_modules/ for zero-config gitignore/vitest/tsc compatibility. After fetching, analyze files with grep, read, and other tools.
- ▌ Goke · remorsesgoke is a zero-dependency, type-safe CLI framework for TypeScript. CAC replacement with Standard Schema support (Zod, Valibot, ArkType). Use goke when building CLI tools — it handles commands, subcommands, options, type coercion, help generation, and more. Schema-based options give you automatic type inference, coercion from strings, and help text generation. Pair with `@goke/mcp` to generate CLI commands automatically from an MCP server. ALWAYS read this skill when a repo uses goke for its CLI.
- ▌ Lintcn · remorsesType-aware TypeScript lint rules in .lintcn/ Go files. Only load this skill when creating, editing, or debugging rule files. To just run the linter: `npx lintcn lint` (or `--fix`, `--tsconfig <path>`). Finds .lintcn/ by walking up from cwd. First build ~30s, cached ~1s. In monorepos, run from each package folder, not the root. Warnings don't fail CI and only show for git-changed files by default. Use `--all-warnings` to see them across the entire codebase.
- ▌ Profano · remorsesCLI tool to analyze V8 .cpuprofile files and Chrome Performance traces and print top functions by self-time or total-time in the terminal. ALWAYS load this skill when CPU profiling JavaScript or TypeScript programs (Node, Vitest, Bun, Chrome DevTools exports, Cloudflare Workers startup or request CPU). It shows how to generate .cpuprofile files and how to inspect them from the terminal without opening Chrome DevTools.
- ▌ Rensei · remorsesrensei is a CLI + library for programmatic 3D modeling and headless rendering. Write JSCAD TypeScript scripts using `rensei/modeling` (flat re-exports of all @jscad/modeling APIs: cube, sphere, subtract, union, translate, etc.), then screenshot or export to STL via the rensei CLI. Designed for AI agent feedback loops: generate JSCAD code → screenshot from multiple angles → compare against reference → iterate until the model matches. ALWAYS load this skill when the user mentions rensei, JSCAD, CSG, parametric CAD, 3D model generation, STL rendering, or 3D printing model code. Also load when editing .ts/.js files that import from rensei/modeling or @jscad/modeling.
- ▌ Spiceflow · remorsesSpiceflow 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 constructs new Spiceflow(). The API is small but very opinionated and the opinions are NOT guessable; writing spiceflow code from memory or from what looks like Next.js produces wrong code every time.
- ▌ Contextanalyzer · remorsesOpenCode session analyzer for breaking down context usage per tool and debugging the largest tool calls that wasted the most tokens. Load this skill when you need to inspect OpenCode token usage, identify oversized tool calls, or compare duration breakdowns for slow tools and subagents.