ReScript 11/11.1 syntax features. Use when writing ReScript in projects using v11+. Check package.json dependencies for rescript version. Key features include customizable variants (@unboxed, @as, @tag), record type spread, async/await, and array spread syntax.
ReScript 12 syntax features. Use when writing ReScript in projects using v12+. Check package.json dependencies for rescript version. Key features include dict literal syntax, unified operators, nested record types, variant pattern spreads, and regex literals.
Creates ReScript bindings for JavaScript/TypeScript libraries. Use when converting TypeScript definitions to ReScript, writing external function bindings, or binding to npm packages. Handles module imports, class bindings, type mappings (variants, records, generics), callbacks, and function overloads.
General ReScript coding conventions, style, and type design instructions. Use when writing ReScript code.
ReScript and React conventions and patterns. Use when writing ReScript and React in projects.
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code plugin to hook up the Rescript LSP, run the formatter on changes, and make some Rescript-specific code skills available.
See the Claude Code plugin marketplace documentation
You can also clone this repo locally and install it that way, so you can edit the plugin to add your own stuff
@rescript/langugage-serverjqxargsnpxA Claude Code agent for creating, verifying, updating, or extending ReScript bindings for JavaScript/TypeScript libraries.
Before writing any code, the agent gathers critical context:
Task Type - One of:
create - New bindings from scratchverify - Check existing bindings against TypeScript APIupdate - Update bindings for a new library versionextend - Add bindings to an existing setRequired Information:
@unboxed, @tag, uncurried default)For existing bindings (verify/update/extend): Analyze patterns - module structure, props approach, variant style, naming conventions
Verify: Systematic comparison of ALL ReScript bindings against TypeScript .d.ts files. Uses a checklist, reports missing/mismatched/deprecated props per component, produces prioritized findings.
Create: Full binding creation process:
@module, @send, @get, etc.)The agent explicitly handles TypeScript patterns that change return types (like builder patterns with withDefault). When TypeScript uses conditional types, mapped types, or overloads that cannot be represented in ReScript, the agent:
Every binding includes:
.res binding codeThe key philosophy: never silently simplify - if TypeScript types can't be fully represented, report back with options and let the user decide on trade-offs.
Coding conventions and type design guidance for writing idiomatic ReScript.
bool flags into a single variant that represents the entire state, preventing invalid combinations (e.g., Loading | Loaded('data) | Closed instead of {isOpen: bool, isLoading: bool})make/parse functions for validated data (e.g., SocialSecurityNumber.t with fromString: string => result<t, error>).resi interfaceTask.Priority.t)@unboxed variants with @as - Compile variant constructors directly to string values, eliminating toString/fromString boilerplateif/else or ternariesArray.map, Option.map, Result.map) over mutable refs and imperative loopsArray.some over Array.forEach with a mutable ref)switch expressions where practicalA phased development workflow that uses %todo to work with the compiler instead of against it.
ReScript's compiler halts until the program type-checks. Without a strategy, you end up stuck in a non-compiling state, reactively chasing type errors. The solution: sketch structure with %todo before implementing. This keeps code compiling while you work out the shape.
npx claudepluginhub illusionalsagacity/claude-plugins --plugin rescript-lspUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions