Agent Skills by ALSEL
OpenAIソフトウェア開発⭐ リポ 0品質スコア 60/100

tanstack-devtools

TanStackライブラリ向けの統一的で拡張可能な開発者ツールパネルです。プラグインアーキテクチャを採用しているため、機能を簡単に追加・カスタマイズできます。複数のライブラリを一元管理する開発環境を実現し、開発効率を向上させます。

description の原文を見る

Centralized, extensible devtools panel for TanStack libraries with a plugin architecture.

SKILL.md 本文

概要

TanStack Devtoolsは、TanStack Query、Router、およびその他のライブラリのdevtoolsを単一パネルに統合した統一デバッグインターフェースを提供します。フレームワークに依存しないプラグインアーキテクチャ、リアルタイムのステート検査、カスタムプラグインのサポートを備えています。Solid.jsで構築されており、軽量なパフォーマンスを実現しています。

React: @tanstack/react-devtools Core: @tanstack/devtools Status: Alpha

インストール

npm install @tanstack/react-devtools

基本的なセットアップ

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>
  )
}

ビルトインプラグイン

Query Devtools

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

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} />,
        },
      ]}
    />
  )
}

統合セットアップ

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

TanStack AIワークフローのデバッグ用:

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の機能:

  • Message Inspector - メタデータ付き会話履歴全体を表示
  • Token Usage - リクエストごとの入力/出力トークンとコストを追跡
  • Streaming Visualization - ストリーミングチャンクのリアルタイム表示
  • Tool Call Debugging - ツール呼び出し、パラメータ、および結果を検査
  • Thinking/Reasoning Viewer - 推論モデルの推論トークンをデバッグ
  • Adapter Switching - 開発時に異なるプロバイダーをテスト

プラグインシステム

プラグインインターフェース

interface DevtoolsPlugin {
  id: string          // 一意の識別子
  name: string        // devtoolsパネルに表示される名前
  render: () => JSX.Element  // レンダリングするReactコンポーネント
}

カスタムプラグイン

import { TanStackDevtools } from '@tanstack/react-devtools'

// カスタムステート検査プラグイン
const stateInspectorPlugin = {
  id: 'state-inspector',
  name: 'State',
  render: () => (
    <div style={{ padding: '16px' }}>
      <h3>Application State</h3>
      <pre>{JSON.stringify(appState, null, 2)}</pre>
    </div>
  ),
}

// カスタムネットワークロガープラグイン
const networkLoggerPlugin = {
  id: 'network-logger',
  name: 'Network',
  render: () => <NetworkLoggerPanel />,
}

function App() {
  return (
    <TanStackDevtools
      plugins={[
        stateInspectorPlugin,
        networkLoggerPlugin,
      ]}
    />
  )
}

動的プラグイン登録

function App() {
  const [plugins, setPlugins] = useState<DevtoolsPlugin[]>([])

  useEffect(() => {
    // 条件付きでプラグインを登録
    const activePlugins: DevtoolsPlugin[] = []

    if (process.env.NODE_ENV === 'development') {
      activePlugins.push({
        id: 'debug',
        name: 'Debug',
        render: () => <DebugPanel />,
      })
    }

    setPlugins(activePlugins)
  }, [])

  return <TanStackDevtools plugins={plugins} />
}

Viteプラグイン統合

// vite.config.ts
import { defineConfig } from 'vite'
import { tanstackDevtools } from '@tanstack/devtools/vite'

export default defineConfig({
  plugins: [
    tanstackDevtools(),
  ],
})

本番環境での考慮事項

// 開発環境でのみdevtoolsを含める
function App() {
  return (
    <>
      {process.env.NODE_ENV === 'development' && (
        <TanStackDevtools plugins={plugins} />
      )}
      <MyApp />
    </>
  )
}

// または遅延ロードを使用
const TanStackDevtools = lazy(() =>
  import('@tanstack/react-devtools').then((m) => ({ default: m.TanStackDevtools }))
)

フレームワークサポート

フレームワークパッケージステータス
React@tanstack/react-devtoolsAlpha
Solid@tanstack/solid-devtools予定
Vue@tanstack/vue-devtools予定
Angular@tanstack/angular-devtools予定

機能

  • 統合パネル - すべてのTanStackデバッグ用の単一インターフェース
  • リアルタイム更新 - ステート変更のライブモニタリング
  • プラグインアーキテクチャ - カスタムおよびサードパーティプラグインで拡張可能
  • ビルトインプラグイン - Query、Router、およびAI devtoolsパネル
  • 軽量 - Solid.jsで構築されており最小限のオーバーヘッド
  • 型安全 - プラグイン定義の完全なTypeScriptサポート
  • フレームワーク非依存のコア - プラグインロジックはフレームワーク間で動作

ベストプラクティス

  1. 本番環境では条件付きでインクルード - 環境チェックまたはコード分割を使用
  2. 利用可能なすべてのプラグインではなく、特定のプラグインを使用
  3. プラグインに一意のIDを付与 - 競合を防ぐ
  4. プラグインのレンダリング関数を軽量に保つ - 高コストな計算を避ける
  5. Viteプラグインを使用 - Viteベースのプロジェクトで自動セットアップ
  6. Query + Router + AIプラグインを組み合わせる - フルスタックのTanStackデバッグ
  7. ドメイン固有のプラグインを作成 - アプリレベルのステート検査用
  8. ストリーミング、ツール呼び出し、トークン使用量をデバッグする際はAI devtoolsを使用

よくある落とし穴

  • ツリーシェイキングなしで本番ビルドにdevtoolsを含める
  • 重複するプラグインID(レンダリングの競合を引き起こす)を使用
  • プラグイン内の重いレンダリング関数(devtoolsパネルを遅くする)
  • Query プラグインを使用する際に QueryClientProvider でラップするのを忘れる
  • Router devtoolsパネルにrouter インスタンスを渡すのを忘れる

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
hyperlapse122
リポジトリ
hyperlapse122/to-much-talker
ライセンス
MIT
最終更新
2026/5/12

Source: https://github.com/hyperlapse122/to-much-talker / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: hyperlapse122 · hyperlapse122/to-much-talker · ライセンス: MIT