anvia-hq/anvia/anvia-chat

Claude Code and agent skill by anvia-hq/anvia

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Wire an Anvia chat UI end to end — server stream route, client transport, React hook, and UI primitives.

Install

npx vskill@latest install anvia-hq/anvia/anvia-chat

SKILL.md

Anvia Chat Skill

Use this skill when the user wants a chat or completion UI backed by Anvia: new chat routes, transports, useChat/useCompletion wiring, message rendering, resumable streams, agent tool-approval interactions, or anvia add chat work.

Process

  1. Build the server route first (references/server-protocol.md).
  2. Pick the transport and state conversions (references/transports-state.md).
  3. Wire the React controller and render UI primitives (references/react-ui.md).
  4. Run scripts/check-chat-boundary.sh from the app root before claiming done.

Minimal slice

ts
// Server route: core events -> client protocol -> framed response.
import { completionToClientStream, parseClientStreamRequest } from "@anvia/client";
import { streamCompletion } from "@anvia/core";
import { createClientStreamResponse } from "@anvia/server";
const body = parseClientStreamRequest(await request.json());
if (body.type !== "messages") throw new Error("This completion endpoint accepts messages only.");
const events = completionToClientStream({
events: streamCompletion({ model, messages: body.messages }),
});
return createClientStreamResponse({ events }); // JSONL by default
tsx
// App: explicit transport, hook owns state, primitives render it.
import { createHttpClientTransport } from "@anvia/client";
import { useChat } from "@anvia/react";
import { ChatProvider, ComposerPrimitive, ThreadPrimitive } from "@anvia/react-ui";
const transport = createHttpClientTransport({ endpoint: "/api/chat" });
const chat = useChat({ transport });
<ChatProvider controller={chat}>
<ThreadPrimitive.Root>
<ThreadPrimitive.Viewport>
<ThreadPrimitive.Messages />
</ThreadPrimitive.Viewport>
<ComposerPrimitive.Root>
<ComposerPrimitive.Input placeholder="Send a message..." />
<ComposerPrimitive.Submit>Send</ComposerPrimitive.Submit>
</ComposerPrimitive.Root>
</ThreadPrimitive.Root>
</ChatProvider>;

Output

Keep the answer to the smallest working vertical slice: one route, one transport, one hook, one render tree. Point to the relevant reference file instead of pasting its contents into chat.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/anvia-hq/anvia/anvia-chat/badge)](https://verified-skill.com/skills/anvia-hq/anvia/anvia-chat)

Something wrong with this skill or its page? Tell us.