Claude Cookbooks Reference
2025Emma/vibe-coding-cn
Reference of Claude API examples and guides covering tool use, vision, RAG, classification, summarization, text-to-SQL, prompt caching and agent patterns.
Discover and use Venice public characters (persona-driven system prompts with a suggested model).
$ npx skills add veniceai/skills --skill venice-characters -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install veniceai/skills venice-characters --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/venice-characters .claude/skills/venice-characters && rm -rf skills-srcUse ~/.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/
Install the "venice-characters" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-characters into .claude/skills/venice-characters/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-characters", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/veniceai/skills/tree/main/skills/venice-charactersType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add veniceai/skills --skill venice-characters -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install veniceai/skills venice-characters --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/venice-characters .agents/skills/venice-characters && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "venice-characters" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-characters into .agents/skills/venice-characters/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-characters", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-characters -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install veniceai/skills venice-characters --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/venice-characters .cursor/skills/venice-characters && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "venice-characters" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-characters into .cursor/skills/venice-characters/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-characters", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/veniceai/skills.git --path skills/venice-characters--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add veniceai/skills --skill venice-characters -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install veniceai/skills venice-characters --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/venice-characters .gemini/skills/venice-characters && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "venice-characters" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-characters into .gemini/skills/venice-characters/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-characters", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install veniceai/skills venice-charactersInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add veniceai/skills --skill venice-characters -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/venice-characters .github/skills/venice-characters && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "venice-characters" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-characters into .github/skills/venice-characters/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-characters", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-characters -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install veniceai/skills venice-characters --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/venice-characters .opencode/skills/venice-characters && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "venice-characters" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-characters into .opencode/skills/venice-characters/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-characters", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
venice-charactersDiscover and use Venice public characters (persona-driven system prompts with a suggested model).
Venice Characters is an agent skill from veniceai/skills. Discover and use Venice public characters (persona-driven system prompts with a suggested model). Covers GET /characters (search/filter/sort/paginate), /characters/{slug}, /characters/{slug}/reviews, the Character and Review schemas, Bearer-API-key-only auth, filter semantics (adult, pro, modelId), and how to apply a character via veniceparameters.characterslug in chat completions.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering, covering Prompt engineering and LLM API integration. The repository describes itself as: Agent Skills for the Venice.ai API. One folder per surface area, each with a SKILL.md for agent runtimes (Cursor, Claude, Codex, etc.). The licence is MIT.
Read from SKILL.md and the folder at commit 5eaeac5. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.venice.aivenice.aicdn.venice.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VENICE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Venice Characters loads about 2.6k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 1,018 words of instructions outside code blocks.
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.
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.
The full file from veniceai/skills at commit 5eaeac5, republished under its MIT licence (© veniceai). 1,018 words, ~2,568 tokens.
.claude/skills/venice-characters/SKILL.md (or your agent's skills folder).Characters are published personas on Venice — each one bundles a system prompt (plus optional context), a suggested backing model, and metadata (tags, ratings, adult / web flags). You apply a character to a chat by passing its slug via venice_parameters.character_slug.
modelId is a suggestion; you choose the chat model).Three endpoints, all tagged Preview (may change):
| Endpoint | Purpose |
|---|---|
GET /characters | Browse/search/filter the catalog. |
GET /characters/{slug} | Fetch one character. |
GET /characters/{slug}/reviews | Paginated public reviews. |
Auth: Bearer API key only. These routes do not accept x402 / SIGN-IN-WITH-X (a SIWX-only request gets 401). A request with no Authorization header gets a 402 x402 discovery challenge rather than 401. There is no unauthenticated access. See venice-auth.
GET /characterscurl "https://api.venice.ai/api/v1/characters?search=philosopher&sortBy=highestRating&limit=20" \
-H "Authorization: Bearer $VENICE_API_KEY"Response: { "object": "list", "data": [Character, ...] } (no total count — page with offset until you get fewer than limit).
| Param | Type | Notes |
|---|---|---|
search | string, ≤ 200 chars | Case-insensitive substring match on name, description, or tag. #Tag terms also match tags exactly (URL-encode # as %23). |
categories | string[], ≤ 20 (each ≤ 100 chars) | Repeat the param or comma-separate. Matches any. |
tags | string[], ≤ 20 (each ≤ 100 chars) | Repeat or comma-separate. Exact tag name, matches any. |
modelId | string[], ≤ 20 (each ≤ 200 chars) | Repeat or comma-separate. Filters on the character's stored model ID — see Gotchas. |
isAdult | "true" / "false" | Exclusive: true returns only adult characters; omitted or false returns only non-adult ones. |
isPro | "true" / "false" | true = only characters whose model is a Pro model in the Venice app. false = no filter. Overrides modelId when both are sent. |
isWebEnabled | "true" / "false" | true = only web-enabled characters. false = no filter. |
sortBy | enum | featured, highestRating, highlyRated, highlyRatedAndRecent, imports, mostRecent, ratingCount. Omitted → most imports first. |
sortOrder | asc / desc | Default desc. Only applied when sortBy is set. |
limit | integer 1–100 | Default 50. > 100 → 400. |
offset | integer ≥ 0 | Default 0. |
sortBy values that also filter:
featured — only featured characters, ordered by imports.highlyRated — only characters with ≥ 2 ratings, ordered by average rating.highlyRatedAndRecent — only characters with at least one rating ≥ 3, ordered by creation date.highestRating (average rating), ratingCount, imports, mostRecent (creation date) only order.| Field | Notes |
|---|---|
id | UUID. |
slug | Use this as character_slug in chat. Same as the public ID in venice.ai/c/<slug>. |
name, description | description may be null. |
photoUrl, shareUrl | Typed nullable; shareUrl is https://venice.ai/c/<slug> (from GET /characters/{slug} it may also carry the author's ?ref= referral code). |
author | 5-character anonymized ID derived from the author. |
tags[] | Tag names. |
featured, adult, webEnabled | Booleans. |
modelId | Model ID the character was built for — usually a Venice API model ID such as venice-uncensored-1-2, but it can be an id /models doesn't list; Venice's default chat model if the character has none. |
stats | { averageRating, imports, ratingCount, ratingSum, userRating }. Missing stats come back as 0; userRating is currently always null. |
createdAt, updatedAt | ISO-8601. |
GET /characters/{slug}curl "https://api.venice.ai/api/v1/characters/alan-watts" \
-H "Authorization: Bearer $VENICE_API_KEY"Returns { "object": "character", "data": Character }. 404 if the character doesn't exist, isn't approved/API-visible (your own characters are exempt), or is adult while your account has the mature filter on. The path also resolves a character's UUID id.
GET /characters/{slug}/reviewscurl "https://api.venice.ai/api/v1/characters/alan-watts/reviews?page=1&pageSize=20" \
-H "Authorization: Bearer $VENICE_API_KEY"| Param | Notes |
|---|---|
page | Integer ≥ 1. Default 1. |
pageSize | Integer 1–100. Default 20. |
Response (newest first; hidden reviews excluded):
{
"object": "list",
"pagination": {"page": 1, "pageSize": 20, "total": 87, "totalPages": 5},
"summary": {"averageRating": 4.7, "totalReviews": 87},
"data": [
{
"id": "...", "characterId": "...", "createdAt": "...",
"rating": 5, "message": "Thoughtful and grounded.",
"locale": "en", "username": "product_user_42", "isOwner": false,
"userAvatarUrl": "https://cdn.venice.ai/..."
}
]
}rating is an integer 1–5; message, locale, userAvatarUrl may be null. isOwner is true for reviews written by the calling account.pagination.total counts visible reviews; summary.totalReviews is the character's overall rating count, so the two can differ.x-pagination-limit, x-pagination-page, x-pagination-total, x-pagination-total-pages headers.{
"model": "venice-uncensored-1-2",
"venice_parameters": { "character_slug": "alan-watts" },
"messages": [
{ "role": "user", "content": "What's the nature of mind?" }
]
}What Venice does with the slug:
include_venice_system_prompt defaults to true; set it to false for a pure character voice. Characters configured with a custom system prompt turn the Venice prompt off automatically.404 "No character could be found from the provided character_slug".enable_e2ee: false) applies the character.character_slug is also accepted in venice_parameters on /responses — see venice-responses.
The request model is always what runs — Venice does not switch to the character's modelId. Use the character's modelId if you want the experience its author intended, or any other chat model if you need a capability it lacks (function calling, vision, reasoning):
{
"model": "kimi-k2-6",
"venice_parameters": {
"character_slug": "alan-watts",
"include_venice_system_prompt": false
},
"messages": [...]
}model string{ "model": "zai-org-glm-5-1:character_slug=alan-watts", "messages": [...] }Useful when the client library (OpenAI SDK, LangChain, etc.) can't add venice_parameters. See venice-chat for the full suffix grammar.
const res = await fetch(`${base}/characters?sortBy=featured&limit=50`, {
headers: { Authorization: `Bearer ${process.env.VENICE_API_KEY}` },
})
const { data } = await res.json()
// show data[].photoUrl, data[].name, data[].stats.averageRating
// pick a character, then pass its slug (and its modelId if it appears in GET /models) into chat:
await chat({
model: picked.modelId,
venice_parameters: { character_slug: picked.slug },
messages: [...]
})/characters?isWebEnabled=true&sortBy=highlyRatedAndRecent(Non-adult is already the default; isAdult=false is redundant.)
/characters?search=%23Philosophy| Code | Meaning |
|---|---|
400 | Bad query params (e.g. limit > 100, pageSize > 100, unknown sortBy, search > 200 chars, > 20 array items). |
401 | Unknown, expired or revoked API key, or SIWX-only auth (not supported here). |
402 | No Authorization header — x402 discovery challenge. Send a Bearer key. |
404 | Unknown / unapproved / hidden slug (also adult characters when the account's mature filter is on). |
429 | Too many failed requests (the error-rate limiter). |
500 | Transient. Retry. |
venice.ai/c/<slug>); they are not the id UUID (though both resolve).isAdult is exclusive, not additive. You can't get adult and non-adult characters in one list call. If the account behind the key has the mature filter enabled, adult characters are never returned, even with isAdult=true.modelId filter vs. modelId field. For some models, filtering by the API model ID may return nothing even though characters built for that model exist — fall back to filtering data[].modelId client-side.modelId on a character is a suggestion. If you reuse it, it may be Pro-only, offline, or not an API model at all — handle 404 "Specified model not found", 401 "only available to Pro users" and 503 from chat and fall back to another model.photoUrl / shareUrl / description are typed nullable — don't assume they exist.© veniceai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/venice-characters of veniceai/skills.
Open the folder on GitHubat commit 5eaeac5
Venice Characters 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Venice Characters this skillveniceai/skills | 144 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Claude Cookbooks Reference2025Emma/vibe-coding-cn | 23k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Flowfile AI Subsystem GuideEdwardvaneechoud/Flowfile | 385 | — | ~9.1k | Automated safety check: Notes | MIT | |
| Claude Authenticityagentscope-ai/OpenJudge | 871 | 1 repos | ~5k | Automated safety check: Pass | Apache-2.0 | |
| Prompt Improverseverity1/claude-code-prompt-improver | 1.9k | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Prompt Engineering Patternsynulihao/AgentSkillOS | 618 | 14 repos | ~1.7k | Automated safety check: Pass | None |
2025Emma/vibe-coding-cn
Reference of Claude API examples and guides covering tool use, vision, RAG, classification, summarization, text-to-SQL, prompt caching and agent patterns.
Edwardvaneechoud/Flowfile
Maps the /ai/ subsystem of flowfile_core, its three agent tiers, litellm seam, BYOK keys and rate limits, and sets rules for extending or debugging it safely.
agentscope-ai/OpenJudge
Detect whether an API endpoint is backed by genuine Claude (not a wrapper, proxy, or impersonator) using 9 weighted rule-based checks that mirror the claude-verify project.
severity1/claude-code-prompt-improver
This skill enriches vague prompts with targeted research and clarification before execution.
ynulihao/AgentSkillOS
Master advanced prompt engineering techniques to maximize LLM performance, reliability, and controllability in production.
Piebald-AI/tweakcc
Create and register new patches for tweakcc. An agent skill from Piebald-AI/tweakcc.
veniceai/skills
Picks which Venice text model to call for a prompt based on privacy tier, input modality, capabilities and cost, and decides when to escalate from a local agent.
veniceai/skills
Documents Venice's model discovery endpoints, GET /models, /models/traits and /models/compatibility_mapping, so an agent can pick a model by capability, constraint or price.
veniceai/skills
Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.
veniceai/skills
High-level map of the Venice.ai API: base URL, auth modes per endpoint, endpoint categories, response headers, pricing model, error shape and versioning.
veniceai/skills
Async music, sound-effect and long-form voice generation via Venice.
veniceai/skills
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices.
Categories
Discover and use Venice public characters (persona-driven system prompts with a suggested model). Venice Characters is an agent skill from veniceai/skills. Discover and use Venice public characters (persona-driven system prompts with a suggested model).
Venice Characters fits situations like: tasks that involve Prompt engineering; tasks that involve LLM API integration.
Run `npx skills add veniceai/skills --skill venice-characters -a claude-code`. Or copy the skill folder (skills/venice-characters in veniceai/skills) into .claude/skills/venice-characters in your project. Claude Code loads it when a task matches its description.
Run `npx skills add veniceai/skills --skill venice-characters -a codex`. Or copy the skill folder (skills/venice-characters in veniceai/skills) into .agents/skills/venice-characters in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add veniceai/skills --skill venice-characters -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/venice-characters, .gemini/skills/venice-characters, .github/skills/venice-characters and .opencode/skills/venice-characters in your project.
Going by SKILL.md and its folder, Venice Characters needs the command-line tools its instructions call (curl) and credentials named VENICE_API_KEY. Our summary lists: A credential in VENICE_API_KEY.
SKILL.md names 3 domains. In commands or code: api.venice.ai, venice.ai and cdn.venice.ai; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
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.
Venice Characters is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Venice Characters: Claude Cookbooks Reference (2025Emma/vibe-coding-cn, 23k stars), Flowfile AI Subsystem Guide (Edwardvaneechoud/Flowfile, 385 stars), Claude Authenticity (agentscope-ai/OpenJudge, 871 stars) and Prompt Improver (severity1/claude-code-prompt-improver, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
veniceai (a GitHub organization) maintains it in veniceai/skills, which has 144 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.
Source: veniceai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.