tanstack-devtools — скилл для Claude Code: что делает и как установить
Скилл учит агента подключать единую панель отладки TanStack в проектах на React. Помогает настроить плагины для Query, Router и рабочих процессов TanStack AI.
npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a claude-codeЧто делает tanstack-devtools
Скилл описывает внедрение единой панели отладчика для библиотек TanStack. Вместо разрозненных окон для TanStack Query и Router монтируется один компонент TanStackDevtools из пакета @tanstack/react-devtools. В панель подключаются готовые вкладки или кастомные плагины для инспекции стейта приложения.
Ядро написано на Solid.js. Это снижает накладные расходы на интерфейс. Модуль TanStack AI позволяет отслеживать стриминг, вызовы инструментов и расход токенов. Для проектов на Vite предусмотрен официальный плагин @tanstack/devtools/vite.
Библиотека пока находится в альфа-версии. Поддержка Vue и Angular остаётся в планах. Панель обязательно нужно отключать в продакшен-сборке через проверку process.env.NODE_ENV или динамический импорт, чтобы отладочный код не попал пользователям.
Какие задачи решает
- объединить панели отладки Query и Router в одном окне
- инспектировать стриминг, аргументы инструментов и токены в TanStack AI
- создать собственный плагин для мониторинга стейта приложения
- подключить автоматическую настройку панели через Vite
Примеры запросов агенту
- Покажи, как подключить @tanstack/react-devtools с плагинами React Query и Router.
- Настрой плагин AI devtools в TanStack Devtools для мониторинга токенов и вызовов инструментов.
- Как написать кастомный плагин инспекции состояния для TanStack Devtools?
Как установить tanstack-devtools
1Через Skills CLI (Vercel)
npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a claude-code2Вручную: положить файлы
~/.claude/skills/tanstack-devtools/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/tanstack-devtools/
1Через Skills CLI (Vercel)
npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a codex2Вручную: положить файлы
.agents/skills/tanstack-devtools/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a cursor2Вручную: положить файлы
.cursor/skills/tanstack-devtools/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install tanstack-skills/tanstack-skills tanstack-devtools2Вручную: положить файлы
.github/skills/tanstack-devtools/SKILL.md1Через Skills CLI (Vercel)
npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a gemini-cli2Командой платформы
gemini skills install https://github.com/tanstack-skills/tanstack-skills --path plugins/tanstack-devtools/skills/tanstack-devtoolsВручную: положить файлы
.devin/skills/tanstack-devtools/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора12
Похожие
Рядом в теме «Фронтенд и UI»
Всё по теме «Фронтенд и UI» →Вопросы о tanstack-devtools
Как установить tanstack-devtools в Claude Code?
Выполните команду npx skills add tanstack-skills/tanstack-skills --skill tanstack-devtools -a claude-code. Агент получит инструкции по интеграции панели и её плагинов.
Что делает скилл tanstack-devtools?
Он объясняет агенту, как подключить общую панель отладки для библиотек TanStack в коде на React. Скилл содержит примеры конфигурации для Query, Router, AI-инструментов и сборщика Vite.
Можно ли использовать tanstack-devtools с Vue или Solid?
Сейчас в альфа-версии доступен только пакет @tanstack/react-devtools для React. Пакеты @tanstack/solid-devtools, @tanstack/vue-devtools и @tanstack/angular-devtools значатся как запланированные.
Исходный текст
SKILL.md · MIT
---
name: tanstack-devtools
description: Centralized, extensible devtools panel for TanStack libraries with a plugin architecture.
---
## Overview
TanStack Devtools provides a unified debugging interface that consolidates devtools for TanStack Query, Router, and other libraries into a single panel. It features a framework-agnostic plugin architecture, real-time state inspection, and support for custom plugins. Built with Solid.js for lightweight performance.
**React:** `@tanstack/react-devtools`
**Core:** `@tanstack/devtools`
**Status:** Alpha
## Installation
```bash
npm install @tanstack/react-devtools
```
## Basic Setup
```tsx
import { TanStackDevtools } from '@tanstack/react-devtools'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
const queryClient = new QueryClient()
function App() {
return (
<QueryClientProvider client={queryClient}>
<TanStackDevtools />
{/* Your app content */}
<MyApp />
</QueryClientProvider>
)
}
```
## Built-in Plugins
### Query Devtools
```tsx
import { TanStackDevtools } from '@tanstack/react-devtools'
import { ReactQueryDevtoolsPanel } from '@tanstack/react-query-devtools'
function App() {
return (
<QueryClientProvider client={queryClient}>
<TanStackDevtools
plugins={[
{
id: 'react-query',
name: 'React Query',
render: () => <ReactQueryDevtoolsPanel />,
},
]}
/>
<MyApp />
</QueryClientProvider>
)
}
```
### Router Devtools
```tsx
import { TanStackDevtools } from '@tanstack/react-devtools'
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
function App() {
return (
<TanStackDevtools
plugins={[
{
id: 'router',
name: 'Router',
render: () => <TanStackRouterDevtoolsPanel router={router} />,
},
]}
/>
)
}
```
### Combined Setup
```tsx
import { TanStackDevtools } from '@tanstack/react-devtools'
import { ReactQueryDevtoolsPanel } from '@tanstack/react-query-devtools'
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
function App() {
return (
<QueryClientProvider client={queryClient}>
<TanStackDevtools
plugins={[
{
id: 'react-query',
name: 'React Query',
render: () => <ReactQueryDevtoolsPanel />,
},
{
id: 'router',
name: 'Router',
render: () => <TanStackRouterDevtoolsPanel router={router} />,
},
]}
/>
<MyApp />
</QueryClientProvider>
)
}
```
### AI Devtools
For debugging TanStack AI workflows:
```tsx
import { TanStackDevtools } from '@tanstack/react-devtools'
import { AIDevtoolsPanel } from '@tanstack/ai-react/devtools'
function App() {
return (
<TanStackDevtools
plugins={[
{
id: 'ai',
name: 'AI',
render: () => <AIDevtoolsPanel />,
},
]}
/>
)
}
```
AI Devtools features:
- **Message Inspector** - View full conversation history with metadata
- **Token Usage** - Track input/output tokens and costs per request
- **Streaming Visualization** - Real-time view of streaming chunks
- **Tool Call Debugging** - Inspect tool calls, parameters, and results
- **Thinking/Reasoning Viewer** - Debug reasoning tokens from thinking models
- **Adapter Switching** - Test different providers in development
## Plugin System
### Plugin Interface
```typescript
interface DevtoolsPlugin {
id: string // Unique identifier
name: string // Display name in the devtools panel
render: () => JSX.Element // React component to render
}
```
### Custom Plugins
```tsx
import { TanStackDevtools } from '@tanstack/react-devtools'
// Custom state inspector plugin
const stateInspectorPlugin = {
id: 'state-inspector',
name: 'State',
render: () => (
<div style={{ padding: '16px' }}>
<h3>Application State</h3>
<pre>{JSON.stringify(appState, null, 2)}</pre>
</div>
),
}
// Custom network logger plugin
const networkLoggerPlugin = {
id: 'network-logger',
name: 'Network',
render: () => <NetworkLoggerPanel />,
}
function App() {
return (
<TanStackDevtools
plugins={[
stateInspectorPlugin,
networkLoggerPlugin,
]}
/>
)
}
```
### Dynamic Plugin Registration
```tsx
function App() {
const [plugins, setPlugins] = useState<DevtoolsPlugin[]>([])
useEffect(() => {
// Register plugins conditionally
const activePlugins: DevtoolsPlugin[] = []
if (process.env.NODE_ENV === 'development') {
activePlugins.push({
id: 'debug',
name: 'Debug',
render: () => <DebugPanel />,
})
}
setPlugins(activePlugins)
}, [])
return <TanStackDevtools plugins={plugins} />
}
```
## Vite Plugin Integration
```typescript
// vite.config.ts
import { defineConfig } from 'vite'
import { tanstackDevtools } from '@tanstack/devtools/vite'
export default defineConfig({
plugins: [
tanstackDevtools(),
],
})
```
## Production Considerations
```tsx
// Only include devtools in development
function App() {
return (
<>
{process.env.NODE_ENV === 'development' && (
<TanStackDevtools plugins={plugins} />
)}
<MyApp />
</>
)
}
// Or use lazy loading
const TanStackDevtools = lazy(() =>
import('@tanstack/react-devtools').then((m) => ({ default: m.TanStackDevtools }))
)
```
## Framework Support
| Framework | Package | Status |
|-----------|---------|--------|
| React | `@tanstack/react-devtools` | Alpha |
| Solid | `@tanstack/solid-devtools` | Planned |
| Vue | `@tanstack/vue-devtools` | Planned |
| Angular | `@tanstack/angular-devtools` | Planned |
## Features
- **Unified Panel** - Single interface for all TanStack debugging
- **Real-time Updates** - Live monitoring of state changes
- **Plugin Architecture** - Extensible with custom and third-party plugins
- **Built-in Plugins** - Query, Router, and AI devtools panels
- **Lightweight** - Built with Solid.js for minimal overhead
- **Type-safe** - Full TypeScript support for plugin definitions
- **Framework-agnostic Core** - Plugin logic works across frameworks
## Best Practices
1. **Conditionally include in production** - use environment checks or code splitting
2. **Use specific plugins** rather than loading all available ones
3. **Give plugins unique IDs** to prevent conflicts
4. **Keep plugin render functions lightweight** - avoid expensive computations
5. **Use the Vite plugin** for automatic setup in Vite-based projects
6. **Combine Query + Router + AI plugins** for full-stack TanStack debugging
7. **Create domain-specific plugins** for app-level state inspection
8. **Use AI devtools** when debugging streaming, tool calls, or token usage
## Common Pitfalls
- Including devtools in production builds without tree-shaking
- Using duplicate plugin IDs (causes rendering conflicts)
- Heavy render functions in plugins (slows down the devtools panel)
- Forgetting to wrap with QueryClientProvider when using Query plugin
- Not passing the router instance to Router devtools panel
© tanstack-skills · MIT · tanstack-skills/tanstack-skills