#601

Global Rank · of 601 Skills

tanstack-table AI Agent Skill

View Source: oakoss/agent-skills

Safe

Installation

npx skills add oakoss/agent-skills --skill tanstack-table

46

Installs

TanStack Table

Overview

TanStack Table is a headless table library — it provides state management and logic but no UI. You supply the rendering; it handles sorting, filtering, pagination, selection, and more.

When to use: Complex data tables with sorting/filtering/pagination, server-side data, large datasets (1000+ rows with virtualization), row selection/expanding/grouping.

When NOT to use: Simple static tables (use <table> directly), display-only lists (use a list component), spreadsheet-like editing (consider AG Grid).

Quick Reference

Pattern API / Config Key Points
Basic table useReactTable({ data, columns, getCoreRowModel }) Memoize data/columns to prevent re-renders
Column helper createColumnHelper<T>() Type-safe column definitions
Column groups columnHelper.group({ header, columns }) Nested headers; don't pin group columns
Sorting getSortedRowModel() + onSortingChange manualSorting: true for server-side
Filtering getFilteredRowModel() + onColumnFiltersChange manualFiltering: true for server-side
Pagination getPaginationRowModel() + onPaginationChange manualPagination: true + pageCount
Row selection enableRowSelection + onRowSelectionChange Set getRowId for stable selection keys
Column visibility onColumnVisibilityChange Toggle with column.toggleVisibility()
Column pinning enableColumnPinning + initialState.columnPinning Don't pin group columns (known bug)
Row expanding getExpandedRowModel() + getSubRows For nested/tree data
Column resizing enableColumnResizing + columnResizeMode onChange for live, onEnd for performant
Row grouping getGroupedRowModel() + aggregationFn Performance degrades at 10k+ rows
Server-side manual*: true flags + include state in queryKey All state in query key for proper refetching
Infinite scroll useInfiniteQuery + flatten pages Combine with TanStack Virtual for best perf
Virtualization useVirtualizer from @tanstack/react-virtual Disable when container hidden (tabs/modals)
React 19 Compiler 'use no memo' directive Required until v9 fixes compiler compat

Common Operations

Task Method
Sort column column.toggleSorting()
Filter column column.setFilterValue(value)
First page table.firstPage()
Next page table.nextPage()
Previous page table.previousPage()
Last page table.lastPage()
Go to page table.setPageIndex(n)
Select row row.toggleSelected()
Hide column column.toggleVisibility()
Get original data row.original
Pin column column.pin('left')
Resize column header.getResizeHandler()
Expand row row.toggleExpanded()

Row Models

Import Purpose
getCoreRowModel Required
getSortedRowModel Sorting
getFilteredRowModel Filtering
getPaginationRowModel Pagination
getExpandedRowModel Expanding
getGroupedRowModel Grouping
getFacetedRowModel Faceted filter counts
getFacetedUniqueValues Unique values per facet
getFacetedMinMaxValues Min/max per facet

Common Mistakes

Mistake Correct Pattern
Unstable data/columns reference Memoize with useMemo or define outside component
Missing manual* flags for server-side Set manualPagination, manualSorting, manualFiltering
Query key missing table state Include pagination, sorting, filters in queryKey
Import from @tanstack/table-core Import from @tanstack/react-table
Using v7 useTable / Header / accessor Use v8 useReactTable / header / accessorKey
Pinning group columns Pin individual columns within the group, not parent
Grouping on 10k+ rows Use server-side grouping or disable for large datasets
Column filter not clearing on page change Reset pageIndex to 0 when filters change
Missing 'use no memo' with React Compiler Add directive to components using useReactTable
Missing getRowId with row selection Set getRowId: (row) => row.id for stable selection keys
Filter value type mismatch Match value types; clear with undefined, not null

Delegation

  • Table pattern discovery: Use Explore agent
  • Server integration review: Use Task agent
  • Code review: Delegate to code-reviewer agent

If the tanstack-query skill is available, delegate data fetching, caching, and infinite query patterns to it.
If the tanstack-virtual skill is available, delegate standalone virtualization patterns to it.
If the tanstack-router skill is available, delegate URL search param sync for server-side table state to it.
If the tanstack-start skill is available, delegate server functions for server-side data loading to it.

References

Installs

Installs 46
Global Rank #601 of 601

Security Audit

ath Safe
socket Safe
Alerts: 0 Score: 90
snyk Low
EU EU-Hosted Inference API

Power your AI Agents with the best open-source models.

Drop-in OpenAI-compatible API. No data leaves Europe.

Explore Inference API

GLM

GLM 5

$1.00 / $3.20

per M tokens

Kimi

Kimi K2.5

$0.60 / $2.80

per M tokens

MiniMax

MiniMax M2.5

$0.30 / $1.20

per M tokens

Qwen

Qwen3.5 122B

$0.40 / $3.00

per M tokens

How to use this skill

1

Install tanstack-table by running npx skills add oakoss/agent-skills --skill tanstack-table in your project directory. Run the install command above in your project directory. The skill file will be downloaded from GitHub and placed in your project.

2

No configuration needed. Your AI agent (Claude Code, Cursor, Windsurf, etc.) automatically detects installed skills and uses them as context when generating code.

3

The skill enhances your agent's understanding of tanstack-table, helping it follow established patterns, avoid common mistakes, and produce production-ready output.

What you get

Skills are plain-text instruction files — not executable code. They encode expert knowledge about frameworks, languages, or tools that your AI agent reads to improve its output. This means zero runtime overhead, no dependency conflicts, and full transparency: you can read and review every instruction before installing.

Compatibility

This skill works with any AI coding agent that supports the skills.sh format, including Claude Code (Anthropic), Cursor, Windsurf, Cline, Aider, and other tools that read project-level context files. Skills are framework-agnostic at the transport level — the content inside determines which language or framework it applies to.

Data sourced from the skills.sh registry and GitHub. Install counts and security audits are updated regularly.

EU Made in Europe

Chat with 100+ AI Models in one App.

Use Claude, ChatGPT, Gemini alongside with EU-Hosted Models like Deepseek, GLM-5, Kimi K2.5 and many more.

Customer Support