[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C459HBWER5TDBZTM4WGSCK":3,"skill-same:01M6C459HBWER5TDBZTM4WGSCK":71},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":12,"updatedAt":56,"install":57,"resources":70},"01M6C459HBWER5TDBZTM4WGSCK","vibe-async",null,"Async and concurrency patterns for Mistral Vibe. Use when working with asyncio, the agent loop, the app server's event loop, HTTP clients, streaming surfaces, or core-to-client communication.","mistralai\u002Fmistral-vibe","mistralai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132372032?v=4","01M6C456ET86MBBTS4RMX0NDRS","Mistral","01M6C456K44X5W8TJX4T023KRV",5362,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvibe-async\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,12,35,36,37,38,39],"async","vibe","vibe async","event loop","http","when","concurrency patterns","for","with","event","app","surfaces","use","agent loop","loop","concurrency","server","streaming","communication","code","core","2026-11-10 10:12:30",false,"---\nname: vibe-async\ndescription: Async and concurrency patterns for Mistral Vibe. Use when working with asyncio, the agent loop, the app server's event loop, HTTP clients, streaming surfaces, or core-to-client communication.\nmetadata:\n  display-name: Vibe Async\n  short-description: Async and concurrency patterns for Vibe\n  default-prompt: Use $vibe-async to follow Vibe async conventions when working with concurrent or event-loop code.\n---\n\n# Vibe Async Patterns\n\nConventions for async and concurrent code in Vibe. Apply when touching the agent loop, the app server's event loop, HTTP clients, streaming, or any `async` code.\n\n## Runtime\n\n- `asyncio` is the orchestration runtime in the agent loop and tool execution. Use `asyncio.create_task` + queues for concurrent work, not blanket `gather`.\n\n## Blocking work\n\n- Never run CPU-heavy or I\u002FO-bound code on the event loop. The app server serves every session and its RPCs from one event loop, so anything blocking (large JSON\u002FPydantic serialization, `os.fsync`, subprocess calls, recursive globs) stalls the clients — offload it with `asyncio.to_thread`.\n- Async file wrappers don't make blocking syscalls non-blocking.\n- Use `anyio.Path` for file I\u002FO on async paths.\n\n## Streaming\n\n- Streaming surfaces return `AsyncGenerator[Event, None]`, not coroutines.\n\n## Core-to-client communication\n\n- Route core-to-client communication through `vibe.app_server`. Server requests such as approvals and user input become canonical Vibe events; neither the clients nor app server may register callbacks, listeners, or message observers directly on the agent loop.\n\n## HTTP clients\n\n- When Vibe owns an HTTP client, use `VibeAsyncHTTPClient` from `vibe.utils.http` instead of `httpx.AsyncClient` so proxy env vars are handled consistently.\n- Its CIDR `NO_PROXY` matching applies only to IP-literal request hosts; do not resolve DNS before proxy selection.\n- Mock outbound HTTP with `respx` in tests.\n","# Vibe Async Patterns\n\nConventions for async and concurrent code in Vibe. Apply when touching the agent loop, the app server's event loop, HTTP clients, streaming, or any `async` code.\n\n## Runtime\n\n- `asyncio` is the orchestration runtime in the agent loop and tool execution. Use `asyncio.create_task` + queues for concurrent work, not blanket `gather`.\n\n## Blocking work\n\n- Never run CPU-heavy or I\u002FO-bound code on the event loop. The app server serves every session and its RPCs from one event loop, so anything blocking (large JSON\u002FPydantic serialization, `os.fsync`, subprocess calls, recursive globs) stalls the clients — offload it with `asyncio.to_thread`.\n- Async file wrappers don't make blocking syscalls non-blocking.\n- Use `anyio.Path` for file I\u002FO on async paths.\n\n## Streaming\n\n- Streaming surfaces return `AsyncGenerator[Event, None]`, not coroutines.\n\n## Core-to-client communication\n\n- Route core-to-client communication through `vibe.app_server`. Server requests such as approvals and user input become canonical Vibe events; neither the clients nor app server may register callbacks, listeners, or message observers directly on the agent loop.\n\n## HTTP clients\n\n- When Vibe owns an HTTP client, use `VibeAsyncHTTPClient` from `vibe.utils.http` instead of `httpx.AsyncClient` so proxy env vars are handled consistently.\n- Its CIDR `NO_PROXY` matching applies only to IP-literal request hosts; do not resolve DNS before proxy selection.\n- Mock outbound HTTP with `respx` in tests.\n",{"name":5,"metadata":45,"description":7},{"display-name":46,"default-prompt":47,"short-description":48},"Vibe Async","Use $vibe-async to follow Vibe async conventions when working with concurrent or event-loop code.","Async and concurrency patterns for Vibe","main","338ad4bf0f73c4dd879d667cf7ab011555ae1751",".agents\u002Fskills\u002Fvibe-async",794,"https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe","https:\u002F\u002Fgithub.com\u002Fmistralai","mistral.ai","2026-11-11 00:56:57",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add mistralai\u002Fmistral-vibe --skill vibe-async",{"tool":63,"command":64},"bunx","bunx skills add mistralai\u002Fmistral-vibe --skill vibe-async",{"tool":66,"command":67},"pnpm","pnpm dlx skills add mistralai\u002Fmistral-vibe --skill vibe-async","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fvibe-async\u002FSKILL.md",true,[],[72,101,123,147,167,186],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":83,"publishedAt":40},"01M71709JBNSMH1MJ71NRGRBFM","import","Import the user's setup from other coding CLIs (Claude Code, Codex, OpenCode) into Vibe — instructions, skills, subagents, commands, hooks, MCP servers, permissions, and plugins. Load when the user wants to switch to Vibe, import or reuse another CLI's configuration, or asks whether a file from another CLI works in Vibe.","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002Fvibe\u002Fplugins\u002Fbuiltins\u002Fvibe\u002Fskills\u002Fimport\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[74,84,85,86,87,88,89,90,91,92,93,94,95,38,24,96,97,98,99,100],"setup","file","configuration","mcp servers","servers","plugins","commands","instructions","opencode","cli","codex","permissions","load","MCP","reuse","hooks","switch",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":40},"01M6C46D6AE5JDVJTFTXH9RZ5Q","worktree","Create, reuse, and clean up git worktrees under $VIBE_HOME\u002Fworktrees. Use when the user wants to work in an isolated git worktree, create a worktree for a task, or list\u002Fremove existing worktrees.","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002Fvibe\u002Fplugins\u002Fbuiltins\u002Fvibe\u002Fskills\u002Fworktree\u002FSKILL.md",[],[103,108,109,26,110,111,112,113,114,31,115,116,117,118,119,120,121,24,122,98],"clean","worktrees","home","up","user","git worktrees","remove","git worktree","list","work","create","git","true","task","Existing",{"skillNo":124,"name":20,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":129,"publishedAt":40},"01M6C46A11K3H7D6F7ATSBRYKJ","Authoritative reference for Mistral Vibe — the CLI agent you (the model) are running inside.\n\nLOAD when the user:\n- asks anything about Vibe itself, even by indirect name (\"this CLI\", \"this tool\", \"you\");\n- wants to change, inspect, or reset their setup;\n- asks why the agent did or did not act;\n- asks how to make the CLI do X, where X lives, or what a flag\u002Fcommand\u002Fsetting does;\n- asks any meta question about your own behavior;\n- is unsure whether a command, flag, env var, or file is in scope — this skill is the source of truth.\n\nSCOPE: config under `~\u002F.vibe\u002F` and project-local `.vibe\u002F`; `VIBE_*` and `LOG_*` env vars; models and providers; agents and subagents; skills; tools and their permission model; every slash command and CLI flag; hooks; MCP servers; connectors; plugins; trusted folders; `@`-file mentions; logs; themes; voice.","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002Fvibe\u002Fplugins\u002Fbuiltins\u002Fvibe\u002Fskills\u002Fvibe\u002FSKILL.md",[128],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},[20,130,131,26,132,133,134,135,136,137,138,139,140,141,142,143,144,97,145,146],"themes","you","do","act","log","Meta","inspect","project","subagents","config","why","how","command","change","logs","question","local",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":40},"01M6C467E56WQ8PXEZT1Q0VP23","skill-creator","Load this skill before creating, updating, or deleting a Vibe skill, or whenever you plan to add or modify SKILL.md files under a skills directory. It explains Vibe's SKILL.md frontmatter, discovery order, support files, and the permission flow.","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002Fvibe\u002Fplugins\u002Fbuiltins\u002Fvibe\u002Fskills\u002Fskill-creator\u002FSKILL.md",[153],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},[155,156,157,158,159,20,160,161,131,162,96,163,164,165,166],"creator","skill creator","plan","flow","support","add","it","frontmatter","files","permission","directory","discovery",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":40},"01M6C464DMPVA3RTXG0RGGZB3T","create-plugin","Create a Vibe plugin package — the Agent Plugins 1.0 format with optional Vibe extensions for skills, MCP servers, hooks, knowledge, agents, libraries, and connectors. Use when the user wants to create, scaffold, or author a plugin for Mistral Vibe.","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002Fvibe\u002Fplugins\u002Fbuiltins\u002Fvibe\u002Fskills\u002Fcreate-plugin\u002FSKILL.md",[173],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},[118,175,176,112,88,27,177,178,24,179,26,180,181,12,31,182,97,87,183,89,99,184,185],"plugin","create plugin","extensions","author","agent plugins","connectors","scaffold","package","knowledge","format","libraries",{"skillNo":187,"name":188,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":191,"publishedAt":40},"01M6C4620AT7K4999KR0YY86KH","prompts","https:\u002F\u002Fgithub.com\u002Fmistralai\u002Fmistral-vibe\u002Fblob\u002Fmain\u002Fvibe\u002Fcore\u002Ftools\u002Fbuiltins\u002Fprompts\u002Fskill.md",[],[188]]