Agent skill

Tanstack AI

by secondsky in secondsky/claude-skills

TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

MITAuto-check: notesAI & LLM Engineering

Install Tanstack AI

skills CLI
$ npx skills add secondsky/claude-skills --skill tanstack-ai -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install secondsky/claude-skills tanstack-ai --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/secondsky/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tanstack-ai/skills/tanstack-ai .claude/skills/tanstack-ai && rm -rf skills-src

Use ~/.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/

Facts

Skill name
tanstack-ai
GitHub stars
227
Used in
1 other repo
Token cost
~3.6k tokens
SKILL.md length
1,129 words
Files
11 (incl. scripts, references, assets)
Skills in repo
169
Repo updated
First seen
Licence
MIT

At a glance

TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

  • Works in 7 steps: Install core + adapter → Ship a streaming chat endpoint (Next.js… → Wire the client with useChat + SSE → …
  • React/Solid frontends with useChat/ChatClient
  • SKILL.md covers Quick Start (7 Minutes), The 4-Step Setup Process, Critical Rules and Known Issues Prevention, plus 5 more sections
  • Runs TypeScript and Shell scripts from its folder; calls pnpm; reaches api.weather.gov; needs OPENAI_API_KEY and ANTHROPIC_API_KEY

What it does

Tanstack AI is an agent skill from secondsky/claude-skills. TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama. Use for chat APIs, React/Solid frontends with useChat/ChatClient, isomorphic tools, tool approval flows, agent loops, multimodal inputs, or troubleshooting streaming and tool definitions.

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts, reference files and assets (for example `assets/api-chat-route.ts`, `assets/tool-definitions.ts` and `references/adapter-matrix.md`).

It sits in AI & LLM Engineering, covering LLM inference and serving, Structured output and tool calling and Type safety. It works with TanStack, React, OpenAI and Ollama. The repository describes itself as: Production-ready skills for Claude Code CLI - Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • React/Solid frontends with useChat/ChatClient
  • Isomorphic tools
  • Tool approval flows
  • Multimodal inputs

Example prompts

  • “/tanstack-ai”

Requirements

  • Node.js
  • A Bash shell
  • A credential in OPENAI_API_KEY
  • A credential in ANTHROPIC_API_KEY

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Install core + adapter
  2. Ship a streaming chat endpoint (Next.js or TanStack Start)
  3. Wire the client with useChat + SSE
  4. Choose provider + model safely
  5. Define tools once, implement per runtime
  6. Create connection adapter + chat options
  7. Add observability + guardrails

What it can do on your machine

Read from SKILL.md and the folder at commit 8837836. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (TypeScript and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.weather.gov

    Also links to:

    • tanstack.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OPENAI_API_KEY
    • ANTHROPIC_API_KEY
    • GEMINI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tanstack AI loads about 3.6k tokens when it runs, and up to ~7.1k if it reads all its reference files. Until then it costs about 77 tokens; SKILL.md has 1,129 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.1k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:209
    ### .env.local (Full Example)
  • NoteMentions a .env fileSKILL.md:372
    h` and set the relevant provider key in `.env.local`. Fail fast in the route before invoking `chat()`. citeturn0search

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); the scripts in this folder are not scanned.

SKILL.md

The full file from secondsky/claude-skills at commit 8837836, republished under its MIT licence (© secondsky). 1,129 words, ~3,615 tokens.

Download SKILL.mdSave it as .claude/skills/tanstack-ai/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
tanstack-ai
description
TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama. Use for chat APIs, React/Solid frontends with useChat/ChatClient, isomorphic tools, tool approval flows, agent loops, multimodal inputs, or troubleshooting streaming and tool definitions.
metadata.keywords
TanStack AI, @tanstack/ai, @tanstack/ai-react, @tanstack/ai-client, @tanstack/ai-solid, @tanstack/ai-openai, @tanstack/ai-anthropic, @tanstack/ai-gemini…
license
MIT

TanStack AI (Provider-Agnostic LLM SDK)

Status: Production Ready ✅
Last Updated: 2025-12-09
Dependencies: Node.js 20+, TypeScript 5+; React 19+ for @tanstack/ai-react; Solid 1.8+ for @tanstack/ai-solid
Latest Versions: @tanstack/ai@latest (alpha), @tanstack/ai-react@latest, @tanstack/ai-client@latest, adapters: @tanstack/ai-openai@latest @tanstack/ai-anthropic@latest @tanstack/ai-gemini@latest @tanstack/ai-ollama@latest


Quick Start (7 Minutes)

1) Install core + adapter
bash
pnpm add @tanstack/ai @tanstack/ai-react @tanstack/ai-openai
# swap adapters as needed: @tanstack/ai-anthropic @tanstack/ai-gemini @tanstack/ai-ollama
pnpm add zod              # recommended for tool schemas

Why this matters:

  • Core is framework-agnostic; React binding just wraps the headless client. citeturn1search3
  • Adapters abstract provider quirks so you can change models without rewriting code. citeturn1search3
2) Ship a streaming chat endpoint (Next.js or TanStack Start)
ts
// app/api/chat/route.ts (Next.js) or src/routes/api/chat.ts (TanStack Start)
import { chat, toStreamResponse } from '@tanstack/ai'
import { openai } from '@tanstack/ai-openai'
import { tools } from '@/tools/definitions' // definitions only

export async function POST(request: Request) {
  const { messages, conversationId } = await request.json()
  const stream = chat({
    adapter: openai(),
    messages,
    model: 'gpt-4o',
    tools,
  })
  return toStreamResponse(stream)
}

CRITICAL:

  • Pass tool definitions to the server so the LLM can request them; implementations live in their runtimes. citeturn0search7
  • Always stream; chunked responses keep UIs responsive and reduce token waste. citeturn0search1
3) Wire the client with useChat + SSE
tsx
// components/Chat.tsx
import { useChat, fetchServerSentEvents } from '@tanstack/ai-react'
import { clientTools } from '@tanstack/ai-client'
import { updateUIDef } from '@/tools/definitions'

const updateUI = updateUIDef.client(({ message }) => {
  alert(message)
  return { success: true }
})

export function Chat() {
  const tools = clientTools(updateUI)
  const { messages, sendMessage, isLoading, approval } = useChat({
    connection: fetchServerSentEvents('/api/chat'),
    tools,
  })

  return (
    <form onSubmit={e => { e.preventDefault(); sendMessage(e.currentTarget.prompt.value) }}>
      <textarea name="prompt" disabled={isLoading} />
      {approval?.pending && (
        <button type="button" onClick={() => approval.approve()}>
          Approve tool
        </button>
      )}
    </form>
  )
}

CRITICAL:

  • Use fetchServerSentEvents (or matching adapter) to mirror the streaming response. citeturn0search0
  • Keep client tool names identical to definitions to avoid “tool not found” errors. citeturn0search7

The 4-Step Setup Process

Step 1: Choose provider + model safely
  • Add the correct adapter and set the matching API key (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, or Ollama host).
  • Prefer per-model option typing from adapters to avoid invalid options (e.g., vision-only fields). citeturn1search3
Step 2: Define tools once, implement per runtime
ts
// tools/definitions.ts
import { z, toolDefinition } from '@tanstack/ai'

export const getWeatherDef = toolDefinition({
  name: 'getWeather',
  description: 'Get current weather for a city',
  inputSchema: z.object({ city: z.string() }),
  needsApproval: true,
})

export const getWeather = getWeatherDef.server(async ({ city }) => {
  const data = await fetch(`https://api.weather.gov/points?q=${city}`).then(r => r.json())
  return { summary: data.properties?.relativeLocation?.properties?.city ?? city }
})

export const showToast = getWeatherDef.client(({ city }) => {
  console.log(`Showing toast for ${city}`)
  return { acknowledged: true }
})

Key Points:

  • needsApproval: true forces explicit user approval for sensitive actions. citeturn0search1
  • Keep tools single-purpose and idempotent; return structured objects instead of throwing errors. citeturn0search1
Step 3: Create connection adapter + chat options
  • Server: toStreamResponse(stream) for HTTP streaming; toServerSentEventsStream helper for Server-Sent Events. citeturn0search3turn0search4
  • Client: fetchServerSentEvents('/api/chat') or a custom adapter for websockets if needed. citeturn0search0
  • Configure agentLoopStrategy (e.g., maxIterations(8)) to cap tool recursion. citeturn1search4
Step 4: Add observability + guardrails
  • Log tool executions and stream chunks for debugging; alpha exposes hooks while devtools are in progress. citeturn0search1
  • Validate inputs with Zod; fail fast and return typed error objects.
  • Enforce timeouts on external API calls inside tools to prevent stuck agent loops.

Critical Rules

Always Do

✅ Stream responses; avoid waiting for full completions. citeturn0search1
✅ Pass definitions to the server and implementations to the correct runtime. citeturn0search7
✅ Use Zod schemas for tool inputs/outputs to keep type safety across providers. citeturn0search1
✅ Cap agent loops with maxIterations to prevent runaway tool calls. citeturn1search4
✅ Require needsApproval for destructive or billing-sensitive tools. citeturn0search1

Never Do

❌ Mix provider adapters in a single request—instantiate one adapter per call.
❌ Throw raw errors from tools; return structured error payloads.
❌ Send client tool implementations to the server (definitions only).
❌ Hardcode model capabilities; rely on adapter typings for per-model options. citeturn0search1
❌ Skip API key checks; fail fast with helpful messages on the server. citeturn0search1


Known Issues Prevention

This skill prevents 3 documented issues:

Issue #1: “tool not found” / silent tool failures

Why it happens: Definitions aren’t passed to chat(); only implementations exist locally.
Prevention: Export definitions separately and include them in the server tools array; keep names stable. citeturn0search7

Issue #2: Streaming stalls in the UI

Why it happens: Mismatch between server response type and client adapter (HTTP chunked vs SSE).
Prevention: Use toStreamResponse on the server + fetchServerSentEvents (or matching adapter) on the client. citeturn0search1turn0search0

Issue #3: Model option validation errors

Why it happens: Provider-specific options (e.g., vision params) sent to unsupported models.
Prevention: Use adapter-provided types; rely on per-model option typing to surface invalid fields at compile time. citeturn1search3


Configuration Files Reference

.env.local (Full Example)
env
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
OLLAMA_HOST=http://localhost:11434
AI_STREAM_STRATEGY=immediate

Why these settings:

  • Keep non-active providers empty to avoid accidental multi-provider calls.
  • AI_STREAM_STRATEGY is read by the sample client to pick chunk strategies (immediate vs buffered).

Common Patterns

Pattern 1: Agentic cycle with bounded tools
ts
import { chat, maxIterations } from '@tanstack/ai'
import { openai } from '@tanstack/ai-openai'

const stream = chat({
  adapter: openai(),
  messages,
  tools,
  agentLoopStrategy: maxIterations(8), // hard cap
})

When to use: Any flow where the LLM could recurse across tools (search → summarize → fetch detail). citeturn1search4

Pattern 2: Hybrid server + client tools
ts
// server: data fetch
const fetchUser = fetchUserDef.server(async ({ id }) => db.user.find(id))

// client: UI update
const highlightUser = highlightUserDef.client(({ id }) => {
  document.querySelector(`#user-${id}`)?.classList.add('ring')
  return { highlighted: true }
})

chat({ tools: [fetchUser, highlightUser] })

When to use: When the model must both fetch data and mutate UI state in one loop. citeturn0search1


Using Bundled Resources

Scripts (scripts/)
  • scripts/check-ai-env.sh — verifies required provider keys are present before running dev servers.

Example Usage:

bash
./scripts/check-ai-env.sh
References (references/)
  • references/tanstack-ai-cheatsheet.md — condensed server/client/tool patterns plus troubleshooting cues.

When Claude should load these: When debugging tool routing, streaming issues, or recalling exact API calls.

Assets (assets/)
  • assets/api-chat-route.ts — copy/paste API route template with streaming + tools.
  • assets/tool-definitions.ts — ready-to-use toolDefinition examples with approval + zod schemas.

Show full SKILL.md (458 more words)Show less

When to Load References

Load reference files for specific implementation scenarios:

  • Adapter Comparison: Load references/adapter-matrix.md when choosing between OpenAI, Anthropic, Gemini, or Ollama adapters, or when debugging provider-specific quirks.

  • React Integration Details: Load references/react-integration.md when implementing useChat hooks, handling SSE streams in React components, or managing client-side tool state.

  • Routing Setup: Load references/start-vs-next-routing.md when setting up API routes in Next.js vs TanStack Start, or troubleshooting streaming response setup.

  • Streaming Issues: Load references/streaming-troubleshooting.md when debugging SSE connection problems, chunk delivery issues, or HTTP streaming configuration.

  • Quick Reference: Load references/tanstack-ai-cheatsheet.md for condensed API patterns, tool definition syntax, or rapid troubleshooting cues.

  • Tool Architecture: Load references/tool-patterns.md when implementing complex client/server tool workflows, approval flows, or hybrid tool patterns.

  • Type Safety Details: Load references/type-safety.md when working with per-model option typing, multimodal inputs, or debugging type errors across adapters.


Advanced Topics

Per-model type safety
  • Use adapter typings to pick valid options per model; avoid generic any options on chat(). citeturn1search3
  • For multimodal models, send parts with correct MIME types; unsupported modalities are caught at compile time. citeturn1search3
Tool approval UX
  • Surfaced via approval object in useChat; render approve/reject UI and persist decision per tool call. citeturn0search1
  • For auditable actions, log approval decisions alongside tool inputs.
Connection adapters
  • Default to fetchServerSentEvents (SSE) for minimal setup; switch to custom adapters for websockets or HTTP chunking. citeturn0search0
  • Use ImmediateStrategy in the client to emit every chunk for typing indicator UIs. citeturn0search0

Dependencies

Required:

  • @tanstack/ai@latest — core chat + tool engine
  • @tanstack/ai-react@latest — React bindings (skip for headless usage)
  • @tanstack/ai-client@latest — headless chat client + adapters
  • Adapter: one of @tanstack/ai-openai@latest | @tanstack/ai-anthropic@latest | @tanstack/ai-gemini@latest | @tanstack/ai-ollama@latest
  • zod@latest — schema validation for tools

Optional:

  • @tanstack/ai-solid@latest — Solid bindings
  • @tanstack/react-query@latest — cache data fetched inside tools
  • @tanstack/start@latest — co-locate AI tools with server functions

Official Documentation


Package Versions (Verified 2025-12-09)

json
{
  "dependencies": {
    "@tanstack/ai": "latest",
    "@tanstack/ai-react": "latest",
    "@tanstack/ai-client": "latest",
    "@tanstack/ai-openai": "latest"
  },
  "devDependencies": {
    "zod": "latest"
  }
}

Troubleshooting

Problem: UI never receives tool output

Solution: Ensure tool implementations return serializable objects; avoid returning undefined. Register client implementations via clientTools(...).

Problem: “Missing API key” responses

Solution: Run ./scripts/check-ai-env.sh and set the relevant provider key in .env.local. Fail fast in the route before invoking chat(). citeturn0search1

Problem: Streaming stops after first chunk

Solution: Confirm the server returns toStreamResponse(stream) (or SSE helper) and that any reverse proxy allows chunked transfer.


Complete Setup Checklist

Use this checklist to verify your setup:

  • Installed core + one adapter and zod
  • API route returns toStreamResponse(stream) with tool definitions included
  • Client uses fetchServerSentEvents (or matching adapter) and registers client tool implementations
  • needsApproval paths render approve/reject UI
  • Agent loop capped (e.g., maxIterations)
  • Environment keys validated with check-ai-env.sh
  • Multimodal inputs tested if targeting vision/audio models

Questions? Issues?

  1. Load references/tanstack-ai-cheatsheet.md for deeper examples
  2. Re-run quick start steps with a single provider adapter
  3. Review official docs above for API surface updates

© secondsky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (scripts, references, assets) in plugins/tanstack-ai/skills/tanstack-ai of secondsky/claude-skills.

  • SKILL.md
  • assets/api-chat-route.ts
  • assets/tool-definitions.ts
  • references/adapter-matrix.md
  • references/react-integration.md
  • references/start-vs-next-routing.md
  • references/streaming-troubleshooting.md
  • references/tanstack-ai-cheatsheet.md
  • references/tool-patterns.md
  • references/type-safety.md
  • scripts/check-ai-env.sh

Open the folder on GitHubat commit 8837836

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in secondsky/claude-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Tanstack AI 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.

Tanstack AI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tanstack AI this skillsecondsky/claude-skills2271 repos~3.6kAutomated safety check: NotesMIT
Perfupraullenchai/Rapid-MLX3.9k—~1.6kAutomated safety check: NotesCustom licence
Ideer Daily Paper ChatbotAI45Lab/iDeer416—~3kAutomated safety check: NotesAGPL-3.0
Instructor Structured LLM OutputsOrchestra-Research/AI-Research-SKILLs13k7 repos~4.2kAutomated safety check: PassMIT
LangchainOrchestra-Research/AI-Research-SKILLs13k2 repos~3.2kAutomated safety check: PassMIT
VllmPrism-Shadow/penguin-harness2.5k—~1kAutomated safety check: PassApache-2.0

Similar skills

  • Perfup

    raullenchai/Rapid-MLX

    Autonomous performance optimization: research, PoC, benchmark, implement, review, PR

    3.9k GitHub stars~1.6k tokensUpdated today
    AI & LLM EngineeringAuto-check: notes
  • Use iDeer as a daily paper-reading workflow for chatbot-first users such as Codex, Gemini, or ChatGPT.

    416 GitHub stars~3k tokensUpdated 2 mo ago
    AI & LLM EngineeringAuto-check: notes
  • Instructor Structured LLM Outputs

    Orchestra-Research/AI-Research-SKILLs

    Shows how to pull validated, typed data out of LLM responses with Instructor and Pydantic models, including retries on failure and partial streaming.

    13k GitHub starsUsed in 7 repos~4.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Langchain

    Orchestra-Research/AI-Research-SKILLs

    Framework for building LLM-powered applications with agents, chains, and RAG.

    13k GitHub starsUsed in 2 repos~3.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Vllm

    Prism-Shadow/penguin-harness

    Deploy and serve LLMs with vLLM behind an OpenAI-compatible endpoint, with tool calling enabled for agent workloads.

    2.5k GitHub stars~1k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Dspy Ruby

    majiayu000/claude-skill-registry

    This skill should be used when working with DSPy.rb, a Ruby framework for building type-safe, composable LLM applications.

    666 GitHub starsUsed in 2 repos~3.9k tokens
    AI & LLM EngineeringAuto-check passed

More from secondsky/claude-skills

All 169 skills in this repo
  • Auto Animate

    secondsky/claude-skills

    AutoAnimate (@formkit/auto-animate) zero-config animations for React.

    227 GitHub stars~2.9k tokensUpdated 9 days ago
    Auto-check passed
  • Base UI React

    secondsky/claude-skills

    MUI Base UI unstyled React components with Floating UI. An agent skill from secondsky/claude-skills.

    227 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Cloudflare Images

    secondsky/claude-skills

    This skill should be used when the user asks to "upload images to Cloudflare", "implement direct creator upload", "configure image transformations", "optimize WebP/AVIF", "create image variants"…

    227 GitHub stars~3.6k tokensUpdated 9 days ago
    Auto-check: notes
  • Cloudflare Nextjs

    secondsky/claude-skills

    Deploy Next.js to Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare).

    227 GitHub stars~5.3k tokensUpdated 9 days ago
    Auto-check: notes
  • Cloudflare Sandbox

    secondsky/claude-skills

    Cloudflare Sandboxes SDK for secure code execution in Linux containers at edge.

    227 GitHub stars~4.5k tokensUpdated 9 days ago
    Auto-check passed
  • GitHub Project Automation

    secondsky/claude-skills

    GitHub repository automation (CI/CD, issue templates, Dependabot, CodeQL).

    227 GitHub stars~4k tokensUpdated 9 days ago
    Auto-check: notes

Questions about Tanstack AI

What does Tanstack AI do?

TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama. Tanstack AI is an agent skill from secondsky/claude-skills. TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

When should I use Tanstack AI?

Tanstack AI fits situations like: React/Solid frontends with useChat/ChatClient; isomorphic tools; tool approval flows; multimodal inputs.

How do I install Tanstack AI in Claude Code?

Run `npx skills add secondsky/claude-skills --skill tanstack-ai -a claude-code`. Or copy the skill folder (plugins/tanstack-ai/skills/tanstack-ai in secondsky/claude-skills) into .claude/skills/tanstack-ai in your project. Claude Code loads it when a task matches its description.

How do I install Tanstack AI in Codex?

Run `npx skills add secondsky/claude-skills --skill tanstack-ai -a codex`. Or copy the skill folder (plugins/tanstack-ai/skills/tanstack-ai in secondsky/claude-skills) into .agents/skills/tanstack-ai in your project. Codex loads it when a task matches its description.

Can I use Tanstack AI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add secondsky/claude-skills --skill tanstack-ai -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tanstack-ai, .gemini/skills/tanstack-ai, .github/skills/tanstack-ai and .opencode/skills/tanstack-ai in your project.

What does Tanstack AI need to run?

Going by SKILL.md and its folder, Tanstack AI needs TypeScript and a shell for the scripts in its folder, the command-line tools its instructions call (pnpm) and credentials named OPENAI_API_KEY, ANTHROPIC_API_KEY and GEMINI_API_KEY. Our summary lists: Node.js; A Bash shell; A credential in OPENAI_API_KEY; A credential in ANTHROPIC_API_KEY.

Does Tanstack AI access the network?

SKILL.md names 2 domains. In commands or code: api.weather.gov; the agent is likely to contact it when it follows the instructions. As links in the text: tanstack.com. This is read from the text; nothing was executed.

Is Tanstack AI safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Tanstack AI use?

Tanstack AI is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tanstack AI use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.5k tokens, read only when the agent opens those files.

What are the alternatives to Tanstack AI?

Skills that share tags, products or a category with Tanstack AI: Perfup (raullenchai/Rapid-MLX, 3.9k stars), Ideer Daily Paper Chatbot (AI45Lab/iDeer, 416 stars), Instructor Structured LLM Outputs (Orchestra-Research/AI-Research-SKILLs, 13k stars) and Langchain (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tanstack AI?

secondsky (a GitHub user) maintains it in secondsky/claude-skills, which has 227 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 28, 2026.

Source: secondsky/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.