Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/crozzbite-ai-sdk-5
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: cloud
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ai-sdk-5
What's inside
- Skill name
ai-sdk-5- Description
- Vercel AI SDK 5 patterns. Trigger: When building AI chat features - breaking changes from v4.
- License
- Apache-2.0
- Metadata
- author: gentleman-programming · version: 1.0
- Instructions
- 227 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## Breaking Changes from AI SDK 4
```typescript
// ❌ AI SDK 4 (OLD)
import { useChat } from "ai";
const { messages, handleSubmit, input, handleInputChange } = useChat({
api: "/api/chat",
});
// ✅ AI SDK 5 (NEW)
import { useChat } from "@ai-sdk/react";
import { DefaultChatTransport } from "ai";
const { messages, sendMessage } = useChat({
transport: new DefaultChatTransport({ api: "/api/chat" }),
});
```
## Client Setup
```typescript
import { useChat } from "@ai-sdk/react";
import { DefaultChatTransport } from "ai";
import { useState } from "react";
export function Chat() {
const [input, setInput] = useState("");
const { messages, sendMessage, isLoading, error } = useChat({
transport: new DefaultChatTransport({ api: "/api/chat" }),
});
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
if (!input.trim()) return;
sendMessage({ text: input });
setInput("");
};
return (
<div>
<div>
{messages.map((message) => (
<Message key={message.id} message={message} />
))}
</div>
<form onSubmit={handleSubmit}>
<input
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="Type a message..."
disabled={isLoading}
/>
<button type="submit" disabled={isLoading}>
Send
</button>
</form>
{error && <div>Error: {error.message}</div>}
</div>
);
}
```
## UIMessage Structure (v5)
```typescript
// ❌ Old: message.content was a string
// ✅ New: message.parts is an array
interface UIMessage {
id: string;
role: "user" | "assistant" | "system";
parts: MessagePart[];
}
type MessagePart =
| { type: "text"; text: string }
| { type: "image"; image: string }
| { type: "tool-call"; toolCallId: string; toolName: string; args: unknown }
| { type: "tool-result"; toolCallId: string; result: unknown };
// Extract text from parts
function getMessageText(message: UIMessage): string {
return message.parts
.filter((part): part is { type: "text"; text: string } => part.type === "text")
.map((part) => part.text)
.join("");
}
// Render message
function Message({ message }: { message: UIMessage }) {
return (
<div className={message.role === "user" ? "user" : "assistant"}>
{message.parts.map((part, index) => {
if (part.type === "text") {
return <p key={index}>{part.text}</p>;
}
if (part.type === "image") {
return <img key={index} src={part.image} alt="" />;
}
return null;
})}
</div>
);
}
```
## Server-Side (Route Handler)
```typescript
// app/api/chat/route.ts
import { openai } from "@ai-sdk/openai";
import { streamText } from "ai";
export async function POST(req: Request) {
const { messages } = await req.json();From crozzbite/skullrender-mcp-skills, Apache-2.0.
More from crozzbite/skullrender-mcp-skills
- 0.465score
go-testing
gentleman-programming
Go testing patterns for Gentleman.Dots, including Bubbletea TUI testing.
SkillBFreshness: B★ 1Claude Code +9 - 0.465score
issue-creation
gentleman-programming
Issue creation workflow for Agent Teams Lite following the issue-first enforcement system.
SkillBFreshness: B★ 1Claude Code +9 - 0.424score
app-security
SkullRender (Antigravity)
Security hub skill orchestrating all security standards (OWASP ASVS, LLM Top 10, GDPR, PCI DSS).
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
impresion-3d
SkullRender
Optimización de modelos, parámetros de impresión y resolución de problemas para impresión 3D (FDM y Resina).
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
arte-digital
SkullRender
Feedback artístico, teoría del color, composición y flujo de trabajo para ilustración y diseño digital.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
elixir-antipatterns
tsardinasGitHub
Core catalog of 8 critical Elixir/Phoenix anti-patterns covering error handling, separation of concerns, Ecto queries, and testing.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
gdpr-compliance
SkullRender (Antigravity)
GDPR and CCPA data privacy compliance for applications.
SkillDFreshness: D★ 1Claude Code +9 - 0.424score
github-pr
SkullRender (Antigravity)
Rules for Git, Pull Requests, and Conventional Commits.
SkillDFreshness: D★ 1Claude Code +9 - 0.421score
business-ethics
SkullRender (USER)
Ethical framework for SaaS, focusing on Data Privacy (LFPDPPP), Dark Patterns, and Sustainability.
SkillDFreshness: D★ 1Claude Code +9 - 0.421score
clean-code
crozzbite
Standard for Sanitization and Strict Typing (SkullRender Proof)
SkillDFreshness: D★ 1Claude Code +9 - 0.418score
angular
SkullRender AI
Official SkullRender Angular Standards (v17+).
SkillDFreshness: D★ 1Claude Code +9 - 0.369score
jira-epic
gentleman-programming
Creates Jira epics for large features following Prowler's standard format.
SkillDFreshness: D★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Feb 9, 2026 (8 months ago)
- Last release
- Feb 9, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from gentleman-programming
- 0.724score
gentleman-bubbletea
gentleman-programming
Bubbletea TUI patterns for Gentleman.Dots installer.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.723score
engram-backlog-triage
gentleman-programming
Backlog triage protocol for Engram: audit open issues and PRs, classify each item, infer maintainer ideology from comments, and produce an actionable…
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-commit-hygiene
gentleman-programming
Commit and branch naming standards for Engram contributors, enforced by GitHub rulesets.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-architecture-guardrails
gentleman-programming
Architecture guardrails for Engram across local store, cloud sync, dashboard, and plugins.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-branch-pr
gentleman-programming
PR creation workflow for Engram following the issue-first enforcement system.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-business-rules
gentleman-programming
Product and business-rule guardrails for Engram.
SkillAFreshness: A★ 7.6KClaude Code +9
Cite this page
ai-sdk-5 skill. Agent Mart. https://agentmart.dev/skills/crozzbite-ai-sdk-5 (last updated 2026-10-24)