Agent skill

Tanstack AI Vue Skilld

by skilld-dev in skilld-dev/vue-ecosystem-skills

A skill your agent uses when writing or debugging Vue code that imports @tanstack/ai-vue.

MITAuto-check passedMedia & Creative

Install Tanstack AI Vue Skilld

skills CLI
$ npx skills add skilld-dev/vue-ecosystem-skills --skill tanstack-ai-vue-skilld -a claude-code

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

GitHub CLI
$ gh skill install skilld-dev/vue-ecosystem-skills tanstack-ai-vue-skilld --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/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tanstack-ai-vue-skilld .claude/skills/tanstack-ai-vue-skilld && 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-vue-skilld
GitHub stars
181
Token cost
~2.3k tokens
SKILL.md length
693 words
Files
5 (incl. references)
Skills in repo
34
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing or debugging Vue code that imports @tanstack/ai-vue.

  • Works in 6 steps: Every composable must run inside a… → All reactive state is DeepReadonly>.… → Pass a connection adapter (for example… → …
  • Debugging Vue code that imports @tanstack/ai-vue
  • SKILL.md covers Core rules, Quick start: streaming chat, Typed tools and Shared chat hook, plus 5 more sections
  • Calls pnpm

What it does

Tanstack AI Vue Skilld is an agent skill from skilld-dev/vue-ecosystem-skills. Use when writing or debugging Vue code that imports @tanstack/ai-vue. Covers useChat, createChatHook, the generation composables (image, audio, speech, video, transcription, summarize), useAudioRecorder, useByok, useWebMCPTools, and the @tanstack/ai-vue/ui and /byok subpaths. Provides current API shapes, reactive-state rules, and version limits for @tanstack/ai-vue 0.24.x.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/byok-and-webmcp.md`, `references/chat-ui.md` and `references/generation-composables.md`).

It sits in Media & Creative, covering Transcription. It works with TanStack, Vue.js and npm. The repository describes itself as: Agent Skills for the Vue ecosystem, written from current docs, issues, and releases. The licence is MIT.

When your agent uses it

  • Debugging Vue code that imports @tanstack/ai-vue
  • Tasks that involve Transcription

Example prompts

  • “/tanstack-ai-vue-skilld”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Every composable must run inside a component setup or effect scope. Cleanup is automatic via onScopeDispose; the scope owns the connection…
  2. All reactive state is DeepReadonly>. Read with .value in script AND template. Never reassign; use the returned methods (setMessages…
  3. Pass a connection adapter (for example fetchServerSentEvents('/api/chat'), re-exported from this package) or a fetcher. Generation hooks…
  4. useChat builds one ChatClient per call. Changing connection (or other transport identity) requires a remount or a changed key prop; body…
  5. Callback options (onChunk, onFinish, onError, ...) are read through the options object at call time, so reactive or mutated options…
  6. Prefer forwardedProps over body; body is deprecated but still merged into the same wire payload (source: src/use-chat.ts:207-209).

What it can do on your machine

Read from SKILL.md and the folder at commit c8994af. 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

    Shell commands in SKILL.md call:

    • pnpm

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

  • Network

    Links to these hosts (documentation or services it may open):

    • tanstack.com

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Tanstack AI Vue Skilld loads about 2.3k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 100 tokens; SKILL.md has 693 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from skilld-dev/vue-ecosystem-skills at commit c8994af, republished under its MIT licence (© skilld-dev). 693 words, ~2,252 tokens.

Download SKILL.mdSave it as .claude/skills/tanstack-ai-vue-skilld/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
tanstack-ai-vue-skilld
description
Use when writing or debugging Vue code that imports @tanstack/ai-vue. Covers useChat, createChatHook, the generation composables (image, audio, speech, video, transcription, summarize), useAudioRecorder, useByok, useWebMCPTools, and the @tanstack/ai-vue/ui and /byok subpaths. Provides current API shapes, reactive-state rules, and version limits for @tanstack/ai-vue 0.24.x.

@tanstack/ai-vue

Vue 3 composables for TanStack AI streaming chat, structured outputs, and media generation. Wraps the headless @tanstack/ai-client classes (ChatClient, GenerationClient, VideoGenerationClient) in reactive state.

  • Version documented: 0.24.3 (source: package.json:3)
  • Peer deps: vue >=3.5.0, @tanstack/ai ^0.58.0; runtime deps: @tanstack/ai-client ^0.33.2, @tanstack/markdown ^0.0.13 (source: package.json:55-62)
  • Entry points: . (main), ./ui (headless chat UI factory), ./byok (bring-your-own-key) (source: package.json:23-36)
  • Official docs: https://tanstack.com/ai/latest/docs/api/ai-vue and https://tanstack.com/ai/latest/docs/getting-started/quick-start-vue
  • Install: pnpm add @tanstack/ai @tanstack/ai-vue @tanstack/ai-openai (plus a provider adapter; server-side chat comes from @tanstack/ai)

Core rules

  1. Every composable must run inside a component setup or effect scope. Cleanup is automatic via onScopeDispose; the scope owns the connection (source: src/use-chat.ts:259-269).
  2. All reactive state is DeepReadonly<ShallowRef<T>>. Read with .value in script AND template. Never reassign; use the returned methods (setMessages, clear, reset) (source: src/use-chat.ts:425-457).
  3. Pass a connection adapter (for example fetchServerSentEvents('/api/chat'), re-exported from this package) or a fetcher. Generation hooks throw useGeneration requires either a connection or fetcher option without one (source: src/use-generation.ts:272-274).
  4. useChat builds one ChatClient per call. Changing connection (or other transport identity) requires a remount or a changed key prop; body, forwardedProps, context, and queue are watched and synced live (source: src/types.ts:77-79, src/use-chat.ts:212-230).
  5. Callback options (onChunk, onFinish, onError, ...) are read through the options object at call time, so reactive or mutated options propagate without recreating the client (source: src/use-chat.ts:85-91).
  6. Prefer forwardedProps over body; body is deprecated but still merged into the same wire payload (source: src/use-chat.ts:207-209).

Quick start: streaming chat

Server (Express or any backend returning TanStack AI SSE):

ts
import { chat, toServerSentEventsResponse } from '@tanstack/ai'
import { openaiText } from '@tanstack/ai-openai'

app.post('/api/chat', async (req, res) => {
  const stream = chat({ adapter: openaiText('gpt-4o'), messages: req.body.messages })
  const response = toServerSentEventsResponse(stream)
  // pipe response.body to res
})

Client component:

vue
<script setup lang="ts">
import { ref } from 'vue'
import { useChat, fetchServerSentEvents } from '@tanstack/ai-vue'

const input = ref('')
const { messages, sendMessage, isLoading } = useChat({
  connection: fetchServerSentEvents('/api/chat'),
})

function handleSubmit() {
  if (input.value.trim() && !isLoading.value) {
    sendMessage(input.value)
    input.value = ''
  }
}
</script>

<template>
  <div v-for="message in messages.value" :key="message.id">
    <div v-for="(part, idx) in message.parts" :key="idx">
      <p v-if="part.type === 'text'">{{ part.content }}</p>
    </div>
  </div>
  <form @submit.prevent="handleSubmit">
    <input v-model="input" :disabled="isLoading.value" />
    <button type="submit">Send</button>
  </form>
</template>

Source: official quick start, https://tanstack.com/ai/latest/docs/getting-started/quick-start-vue

Typed tools

Define tools once with toolDefinition() from @tanstack/ai, implement .client(fn) in components, and wrap them in clientTools() (re-exported here from @tanstack/ai-client) so part.name, part.input, and part.output narrow without as const. Client tools execute automatically; there is no onToolCall option. Derive message types with createChatClientOptions + InferChatMessages (both re-exported). Source: https://tanstack.com/ai/latest/docs/api/ai-vue

vue
<script setup lang="ts">
import { useChat, fetchServerSentEvents, clientTools } from '@tanstack/ai-vue'
import { updateUIDef } from './tool-definitions'

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

const { messages, sendMessage } = useChat({
  connection: fetchServerSentEvents('/api/chat'),
  tools: clientTools(updateUI),
})
</script>

Shared chat hook

createChatHook(options) (root entry) binds options at module scope and returns a useChat composable. Override only threadId, live, forwardedProps, body, and initialMessages per instance; tools, interrupts, and outputSchema stay on the factory options. Rename at the call site if it clashes with the imported useChat (source: src/create-chat-hook.ts:28-45).

ts
const { useChat: useAppChat } = createChatHook(chatOptions)
const chat = useAppChat({ threadId: 'support-1' })

Generation composables

All follow one pattern: pass connection or fetcher, call generate(input), read reactive state.

ComposableInput typeResult typeExtras
useGenerationcustom TInputcustom TResultbase composable for custom types
useGenerateImageImageGenerateInputImageGenerationResult
useGenerateAudioAudioGenerateInputAudioGenerationResult
useGenerateSpeechSpeechGenerateInputTTSResult
useTranscriptionTranscriptionGenerateInputTranscriptionResult
useSummarizeSummarizeGenerateInputSummarizationResult
useGenerateVideoVideoGenerateInputVideoGenerateResultjobId, videoStatus, onJobCreated, onStatusUpdate

Common return: generate, result, isLoading, error, status, stop, reset, runId. Details, transforms, and persistence: references/generation-composables.md

stop() only aborts the local stream. It does not stop work already running on the provider; use runId against your own endpoint to cancel or poll (source: src/use-generation.ts:124-131).

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

Chat UI (@tanstack/ai-vue/ui)

Build chat interfaces with createChatHook from the /ui subpath (not the deprecated prebuilt components Chat, ChatInput, ChatMessage, ChatMessages, ToolApproval, deprecated since 0.3.0, removal planned for 1.0.0). The subpath also exports renderless UIChat, UIProvider, UIMessages, UIMessage, UIPart, UIInterrupts, UIQueue, and createChatUI / createChatHookContexts. This subpath ships as raw .ts/.vue source, so it is type-checked against your tsconfig (source: package.json:28-31, src/ui.ts:2-33, src/chat-ui/types.ts:5).

Guide: references/chat-ui.md

BYOK and WebMCP

  • useByok(client) turns a ByokClient into a reactive ByokSnapshot; build the client with defineByok, ByokClient, passkeyStorage, and friends from the /byok subpath. Keys travel in x-byok-* headers, never the request body (source: src/use-byok.ts:5-14, src/use-generation.ts:35-38).
  • useWebMCPTools([searchProducts]) registers executable client tools with WebMCP for the current scope; disposal unregisters them (source: src/use-web-mcp-tools.ts:27-55).

Guide: references/byok-and-webmcp.md

Troubleshooting

  • State not updating in templates: these are ShallowRefs. Use isLoading.value inside templates too.
  • useChat ignored an option change: transport identity (connection, threadId persistence shape) is fixed per instance. Remount or change the component key (source: src/types.ts:77-79).
  • Approval response rejected: addToolApprovalResponse takes the approval id (part.approval.id), not the tool call id (source: src/types.ts:193-199).
  • Hydrated nothing on reload: persistence requires a stable threadId; without one the client mints an id after mount and the chat stays ephemeral (source: src/use-chat.ts:101-103).

References

  • useChat API: options, full return shape, structured outputs, interrupts, queue, live mode, resume.
  • Generation composables: useGeneration and the six specialized hooks, onResult transforms, persistence, useAudioRecorder.
  • Chat UI: the /ui subpath, factory config, renderless components, migration off deprecated components.
  • BYOK and WebMCP: the /byok subpath, useByok, useWebMCPTools.

© skilld-dev, 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 4 other files (references) in skills/tanstack-ai-vue-skilld of skilld-dev/vue-ecosystem-skills.

  • SKILL.md
  • references/byok-and-webmcp.md
  • references/chat-ui.md
  • references/generation-composables.md
  • references/use-chat.md

Open the folder on GitHubat commit c8994af

Compare with similar skills

Tanstack AI Vue Skilld 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 Vue Skilld compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tanstack AI Vue Skilld this skillskilld-dev/vue-ecosystem-skills181—~2.3kAutomated safety check: PassMIT
Miteiru Linthockyy/miteiru117—~133Automated safety check: PassCustom licence
Wagmi Feature Developmentwevm/wagmi6.8k—~3.8kAutomated safety check: PassMIT
Vuetify Skilldlogue/vite-vuetify-ts-starter1811 repos~1.9kAutomated safety check: PassMIT
Markbind Typescript MigrationMarkBind/markbind158—~2kAutomated safety check: PassMIT
Implement Ag PlaybookAgnosticUI/agnosticui826—~1.7kAutomated safety check: PassApache-2.0

Similar skills

  • Miteiru Lint

    hockyy/miteiru

    Run Miteiru smell checks and tests after code changes. An agent skill from hockyy/miteiru.

    117 GitHub stars~133 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Walks through adding a Wagmi feature across its layers: a Viem-based core action, TanStack Query options, and React and Vue bindings.

    6.8k GitHub stars~3.8k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Vuetify Skilld

    logue/vite-vuetify-ts-starter

    Vue Material Component Framework. An agent skill from logue/vite-vuetify-ts-starter.

    181 GitHub starsUsed in 1 repo~1.9k tokens
    Frontend & DesignAuto-check passed
  • Complete guide for migrating JavaScript files to TypeScript in the MarkBind project, including the two-commit strategy, import/export syntax conversion, and best practices.

    158 GitHub stars~2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Implement Ag Playbook

    AgnosticUI/agnosticui

    Implement a playbook from its PROMPT specification files. An agent skill from AgnosticUI/agnosticui.

    826 GitHub stars~1.7k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Miteiru Release

    hockyy/miteiru

    Bump Miteiru version, write docs/whats-new release notes, commit, and push.

    117 GitHub stars~750 tokensUpdated 1 mo ago
    DevelopmentAuto-check: notes

More from skilld-dev/vue-ecosystem-skills

All 34 skills in this repo
  • Floating UI Vue Skilld

    skilld-dev/vue-ecosystem-skills

    Floating UI for Vue (@floating-ui/vue@2.0.1). An agent skill from skilld-dev/vue-ecosystem-skills.

    181 GitHub stars~1.3k tokensUpdated 15 days ago
    Auto-check passed
  • Formkit Core Skilld

    skilld-dev/vue-ecosystem-skills

    A skill your agent uses whenever writing, debugging, or reviewing code that imports @formkit/core — FormKit's framework-agnostic core (node trees, values, events, hooks, message stores, ledgers…

    181 GitHub stars~2.1k tokensUpdated 15 days ago
    Auto-check passed
  • Pinia Colada Skilld

    skilld-dev/vue-ecosystem-skills

    Data fetching layer for Vue built on Pinia. An agent skill from skilld-dev/vue-ecosystem-skills.

    181 GitHub stars~1.9k tokensUpdated 15 days ago
    Auto-check passed
  • Pinia Skilld

    skilld-dev/vue-ecosystem-skills

    A skill your agent uses when writing, debugging, or refactoring code that imports "pinia", the Vue 3 store library.

    181 GitHub stars~1.5k tokensUpdated 15 days ago
    Auto-check passed
  • Primevue Skilld

    skilld-dev/vue-ecosystem-skills

    A skill your agent uses when writing, debugging, or updating code that imports primevue (PrimeVue v5, UI component library for Vue 3).

    181 GitHub stars~1.9k tokensUpdated 15 days ago
    Auto-check passed
  • Quasar Skilld

    skilld-dev/vue-ecosystem-skills

    Build, configure, and debug apps with the Quasar framework (quasar npm package, v2.33.1).

    181 GitHub stars~1.6k tokensUpdated 15 days ago
    Auto-check passed

Questions about Tanstack AI Vue Skilld

What does Tanstack AI Vue Skilld do?

A skill your agent uses when writing or debugging Vue code that imports @tanstack/ai-vue. Tanstack AI Vue Skilld is an agent skill from skilld-dev/vue-ecosystem-skills. Use when writing or debugging Vue code that imports @tanstack/ai-vue.

When should I use Tanstack AI Vue Skilld?

Tanstack AI Vue Skilld fits situations like: debugging Vue code that imports @tanstack/ai-vue; tasks that involve Transcription.

How do I install Tanstack AI Vue Skilld in Claude Code?

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

How do I install Tanstack AI Vue Skilld in Codex?

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

Can I use Tanstack AI Vue Skilld 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 skilld-dev/vue-ecosystem-skills --skill tanstack-ai-vue-skilld -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-vue-skilld, .gemini/skills/tanstack-ai-vue-skilld, .github/skills/tanstack-ai-vue-skilld and .opencode/skills/tanstack-ai-vue-skilld in your project.

What does Tanstack AI Vue Skilld need to run?

Going by SKILL.md and its folder, Tanstack AI Vue Skilld needs the command-line tools its instructions call (pnpm).

Does Tanstack AI Vue Skilld access the network?

SKILL.md names 1 domain. As links in the text: tanstack.com. This is read from the text; nothing was executed.

Is Tanstack AI Vue Skilld safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tanstack AI Vue Skilld use?

Tanstack AI Vue Skilld is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tanstack AI Vue Skilld use?

About 2.3k tokens (SKILL.md is roughly 9k 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 4.5k tokens, read only when the agent opens those files.

What are the alternatives to Tanstack AI Vue Skilld?

Skills that share tags, products or a category with Tanstack AI Vue Skilld: Miteiru Lint (hockyy/miteiru, 117 stars), Wagmi Feature Development (wevm/wagmi, 6.8k stars), Vuetify Skilld (logue/vite-vuetify-ts-starter, 181 stars) and Markbind Typescript Migration (MarkBind/markbind, 158 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tanstack AI Vue Skilld?

skilld-dev (a GitHub organization) maintains it in skilld-dev/vue-ecosystem-skills, which has 181 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 22, 2026.

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