nuqs — Claude Code skill: URL state rules for React
A skill with 39 nuqs rules covering typed parsers, adapters, Server Components and URL update performance. Useful when an agent writes or refactors URL state code.
npx skills add pproenca/dot-skills --skill nuqs -a claude-codeWhat nuqs does
This skill collects best practices for nuqs, the type-safe URL query state library for Next.js and other React frameworks. It ships 39 rules in 8 categories ordered by impact: parser configuration and adapter setup come first, then state management, server integration, performance, history and navigation, debugging, and advanced patterns. Each rule lives in its own file under references/ with an explanation and code samples, and AGENTS.md compiles them into one guide.
The agent pulls the skill in when a task mentions useQueryState, useQueryStates, search params, nuqs parsers, limitUrlUpdates, Standard Schema, NuqsAdapter, or Next.js routing with state. Coverage spans nuqs v2.5–v2.9, including createLoader, processUrlSearchParams, and key isolation outside Next.js. Server sections call out shallow:false, useTransition, and async searchParams in Next.js 15+.
Nothing runs against your codebase — it is a rule set for generation and review. If your project does not use nuqs, the rules have nothing to attach to. Installing needs Node.js with npx, or gh for GitHub Copilot.
What it helps with
- pick a typed parser instead of a string one for numbers or dates
- wire up NuqsAdapter and the 'use client' directive in a new app
- connect URL state to Server Components with createSearchParamsCache
- stop redundant URL updates while typing in a search box
- track down why params fail to parse in Next.js 15
Example prompts for the agent
- add nuqs for the catalog filters and keep the state in the URL
- refactor this component to useQueryStates and move the parsers into a shared file
- searchParams aren't parsing in my Server Component — check it against the nuqs rules
How to install nuqs
1Skills CLI (Vercel)
npx skills add pproenca/dot-skills --skill nuqs -a claude-code2Manually: put the files in place
~/.claude/skills/nuqs/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/nuqs/
1Skills CLI (Vercel)
npx skills add pproenca/dot-skills --skill nuqs -a codex2Manually: put the files in place
.agents/skills/nuqs/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add pproenca/dot-skills --skill nuqs -a cursor2Manually: put the files in place
.cursor/skills/nuqs/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install pproenca/dot-skills nuqs2Manually: put the files in place
.github/skills/nuqs/SKILL.md1Skills CLI (Vercel)
npx skills add pproenca/dot-skills --skill nuqs -a gemini-cli2Platform CLI
gemini skills install https://github.com/pproenca/dot-skills --path skills/.curated/nuqsManually: put the files in place
.devin/skills/nuqs/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add pproenca/dot-skills --skill nuqs -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about nuqs
How do I install nuqs in Claude?
Run npx skills add pproenca/dot-skills --skill nuqs -a claude-code. The skill lands at ~/.claude/skills/nuqs/SKILL.md.
What does the nuqs skill do?
It gives the agent 39 rules for nuqs: parsers, adapters, server integration, performance, and debugging. The agent applies them while writing, reviewing, or refactoring URL state code.
Which frameworks does the skill cover?
Next.js, React Router, TanStack Router, Remix, and plain React. It covers nuqs v2.5–v2.9.
Source text
SKILL.md · MIT
--- name: nuqs description: nuqs (type-safe URL query state) best practices for Next.js and other React frameworks. This skill should be used when writing, reviewing, or refactoring code that uses nuqs for URL state management. Triggers on tasks involving useQueryState, useQueryStates, search params, URL state, query parameters, nuqs parsers, limitUrlUpdates, Standard Schema, NuqsAdapter, or Next.js routing with state. --- # Community nuqs Best Practices for Next.js & React Comprehensive guide for type-safe URL query state management with nuqs across Next.js, React Router, TanStack Router, Remix, and plain React. Covers nuqs v2.5–v2.9 features. Contains 39 rules across 8 categories, prioritized by impact to guide code generation, refactoring, and code review. ## When to Apply Reference these guidelines when: - Implementing URL-based state with nuqs - Setting up nuqs in a Next.js or React Router project - Configuring parsers for URL parameters - Integrating URL state with Server Components - Optimizing URL update performance (`limitUrlUpdates`, key isolation) - Sharing parser definitions with tRPC / TanStack Router / forms via Standard Schema - Debugging nuqs-related issues ## Rule Categories by Priority | Priority | Category | Impact | Prefix | |----------|----------|--------|--------| | 1 | Parser Configuration | CRITICAL | `parser-` | | 2 | Adapter & Setup | CRITICAL | `setup-` | | 3 | State Management | HIGH | `state-` | | 4 | Server Integration | HIGH | `server-` | | 5 | Performance Optimization | MEDIUM | `perf-` | | 6 | History & Navigation | MEDIUM | `history-` | | 7 | Debugging & Testing | LOW-MEDIUM | `debug-` | | 8 | Advanced Patterns | LOW | `advanced-` | ## Quick Reference ### 1. Parser Configuration (CRITICAL) - [`parser-use-typed-parsers`](references/parser-use-typed-parsers.md) — Use typed parsers for non-string values - [`parser-with-default`](references/parser-with-default.md) — Use withDefault for non-nullable state - [`parser-enum-validation`](references/parser-enum-validation.md) — Use enum parsers for constrained values - [`parser-array-format`](references/parser-array-format.md) — Choose correct array parser format - [`parser-json-validation`](references/parser-json-validation.md) — Validate JSON parser input - [`parser-date-format`](references/parser-date-format.md) — Select appropriate date parser - [`parser-index-offset`](references/parser-index-offset.md) — Use parseAsIndex for 1-based URL display ### 2. Adapter & Setup (CRITICAL) - [`setup-nuqs-adapter`](references/setup-nuqs-adapter.md) — Wrap app with NuqsAdapter - [`setup-use-client`](references/setup-use-client.md) — Add 'use client' directive for hooks - [`setup-import-server`](references/setup-import-server.md) — Import server utilities from nuqs/server - [`setup-nextjs-version`](references/setup-nextjs-version.md) — Ensure compatible Next.js version - [`setup-shared-parsers`](references/setup-shared-parsers.md) — Define shared parsers in dedicated file - [`setup-default-options`](references/setup-default-options.md) — Configure app-wide defaults on NuqsAdapter (v2.5+) ### 3. State Management (HIGH) - [`state-use-query-states`](references/state-use-query-states.md) — Use useQueryStates for related parameters - [`state-clear-with-null`](references/state-clear-with-null.md) — Clear URL parameters with null - [`state-avoid-derived`](references/state-avoid-derived.md) — Avoid derived state from URL parameters - [`state-options-inheritance`](references/state-options-inheritance.md) — Use withOptions for parser-level configuration - [`state-setter-return`](references/state-setter-return.md) — Use setter return value for URL access - [`state-standard-schema`](references/state-standard-schema.md) — Use Standard Schema for cross-library validation (v2.5+) ### 4. Server Integration (HIGH) - [`server-search-params-cache`](references/server-search-params-cache.md) — Use createSearchParamsCache (or createLoader) for Server Components - [`server-shallow-false`](references/server-shallow-false.md) — Use shallow:false to trigger server re-renders - [`server-use-transition`](references/server-use-transition.md) — Integrate useTransition for loading states - [`server-parse-before-get`](references/server-parse-before-get.md) — Call parse() before get() in Server Components - [`server-next15-async`](references/server-next15-async.md) — Handle async searchParams in Next.js 15+ ### 5. Performance Optimization (MEDIUM) - [`perf-throttle-updates`](references/perf-throttle-updates.md) — Throttle rapid URL updates with `limitUrlUpdates` - [`perf-debounce-search`](references/perf-debounce-search.md) — Debounce search input with built-in `limitUrlUpdates` - [`perf-clear-on-default`](references/perf-clear-on-default.md) — Use clearOnDefault for clean URLs - [`perf-avoid-rerender`](references/perf-avoid-rerender.md) — Memoize components using URL state (Next.js) - [`perf-key-isolation`](references/perf-key-isolation.md) — Rely on key isolation outside Next.js (v2.5+) - [`perf-serialize-utility`](references/perf-serialize-utility.md) — Use createSerializer for link URLs ### 6. History & Navigation (MEDIUM) - [`history-push-navigation`](references/history-push-navigation.md) — Choose history:push vs history:replace - [`history-scroll-behavior`](references/history-scroll-behavior.md) — Control scroll behavior on URL changes ### 7. Debugging & Testing (LOW-MEDIUM) - [`debug-enable-logging`](references/debug-enable-logging.md) — Enable debug logging for troubleshooting - [`debug-testing`](references/debug-testing.md) — Test components with URL state ### 8. Advanced Patterns (LOW) - [`advanced-custom-parsers`](references/advanced-custom-parsers.md) — Create custom parsers for complex types - [`advanced-url-keys`](references/advanced-url-keys.md) — Use urlKeys for shorter URLs - [`advanced-eq-function`](references/advanced-eq-function.md) — Implement eq function for object parsers - [`advanced-framework-adapters`](references/advanced-framework-adapters.md) — Use framework-specific adapters - [`advanced-process-url-search-params`](references/advanced-process-url-search-params.md) — Canonicalize URL shape with `processUrlSearchParams` (v2.6+) ## How to Use Read individual reference files for detailed explanations and code examples: - [Section definitions](references/_sections.md) — Category structure and impact levels - [Rule template](assets/templates/_template.md) — Template for adding new rules ## Reference Files | File | Description | |------|-------------| | [AGENTS.md](AGENTS.md) | Complete compiled guide with all rules | | [references/_sections.md](references/_sections.md) | Category definitions and ordering | | [assets/templates/_template.md](assets/templates/_template.md) | Template for new rules | | [metadata.json](metadata.json) | Version and reference information |
© pproenca · MIT · pproenca/dot-skills