[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6Q432MS5GRK2F4AP0STEY67":3,"skill-same:01M6Q432MS5GRK2F4AP0STEY67":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6Q432MS5GRK2F4AP0STEY67","chat-ui",null,"Chat UI building blocks for React\u002FNext.js from ui.inference.sh.\nComponents: container, messages, input, typing indicators, avatars.\nCapabilities: chat interfaces, message lists, input handling, streaming.\nUse for: building custom chat UIs, messaging interfaces, AI assistants.\nTriggers: chat ui, chat component, message list, chat input, shadcn chat,\nreact chat, chat interface, messaging ui, conversation ui, chat building blocks","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F视觉与设计\u002Fchat-ui\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"chat ui","ui","chat","container","custom","for","shadcn chat","interface","typing","triggers","conversation","components","use","Building Blocks","Next.js","messages","messaging","streaming","capabilities","react","2026-11-10 10:12:30",false,"---\nname: chat-ui\ndescription: |\n  Chat UI building blocks for React\u002FNext.js from ui.inference.sh.\n  Components: container, messages, input, typing indicators, avatars.\n  Capabilities: chat interfaces, message lists, input handling, streaming.\n  Use for: building custom chat UIs, messaging interfaces, AI assistants.\n  Triggers: chat ui, chat component, message list, chat input, shadcn chat,\n  react chat, chat interface, messaging ui, conversation ui, chat building blocks\n---\n\n# Chat UI Components\n\nChat building blocks from [ui.inference.sh](https:\u002F\u002Fui.inference.sh).\n\n## Quick Start\n\n```bash\n# Install chat components\nnpx shadcn@latest add https:\u002F\u002Fui.inference.sh\u002Fr\u002Fchat.json\n```\n\n## Components\n\n### Chat Container\n\n```tsx\nimport { ChatContainer } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Fchat-container\"\n\n\u003CChatContainer>\n  {\u002F* messages go here *\u002F}\n\u003C\u002FChatContainer>\n```\n\n### Messages\n\n```tsx\nimport { ChatMessage } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Fchat-message\"\n\n\u003CChatMessage\n  role=\"user\"\n  content=\"Hello, how can you help me?\"\n\u002F>\n\n\u003CChatMessage\n  role=\"assistant\"\n  content=\"I can help you with many things!\"\n\u002F>\n```\n\n### Chat Input\n\n```tsx\nimport { ChatInput } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Fchat-input\"\n\n\u003CChatInput\n  onSubmit={(message) => handleSend(message)}\n  placeholder=\"Type a message...\"\n  disabled={isLoading}\n\u002F>\n```\n\n### Typing Indicator\n\n```tsx\nimport { TypingIndicator } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Ftyping-indicator\"\n\n{isTyping && \u003CTypingIndicator \u002F>}\n```\n\n## Full Example\n\n```tsx\nimport {\n  ChatContainer,\n  ChatMessage,\n  ChatInput,\n  TypingIndicator,\n} from \"@\u002Fregistry\u002Fblocks\u002Fchat\"\n\nexport function Chat() {\n  const [messages, setMessages] = useState([])\n  const [isLoading, setIsLoading] = useState(false)\n\n  const handleSend = async (content: string) => {\n    setMessages(prev => [...prev, { role: 'user', content }])\n    setIsLoading(true)\n    \u002F\u002F Send to API...\n    setIsLoading(false)\n  }\n\n  return (\n    \u003CChatContainer>\n      {messages.map((msg, i) => (\n        \u003CChatMessage key={i} role={msg.role} content={msg.content} \u002F>\n      ))}\n      {isLoading && \u003CTypingIndicator \u002F>}\n      \u003CChatInput onSubmit={handleSend} disabled={isLoading} \u002F>\n    \u003C\u002FChatContainer>\n  )\n}\n```\n\n## Message Variants\n\n| Role | Description |\n|------|-------------|\n| `user` | User messages (right-aligned) |\n| `assistant` | AI responses (left-aligned) |\n| `system` | System messages (centered) |\n\n## Styling\n\nComponents use Tailwind CSS and shadcn\u002Fui design tokens:\n\n```tsx\n\u003CChatMessage\n  role=\"assistant\"\n  content=\"Hello!\"\n  className=\"bg-muted\"\n\u002F>\n```\n\n## Related Skills\n\n```bash\n# Full agent component (recommended)\nnpx skills add inference-sh\u002Fagent-skills@agent-ui\n\n# Declarative widgets\nnpx skills add inference-sh\u002Fagent-skills@widgets-ui\n\n# Markdown rendering\nnpx skills add inference-sh\u002Fagent-skills@markdown-ui\n```\n\n## Documentation\n\n- [Chatting with Agents](https:\u002F\u002Finference.sh\u002Fdocs\u002Fagents\u002Fchatting) - Building chat interfaces\n- [Agent UX Patterns](https:\u002F\u002Finference.sh\u002Fblog\u002Fux\u002Fagent-ux-patterns) - Chat UX best practices\n- [Real-Time Streaming](https:\u002F\u002Finference.sh\u002Fblog\u002Fobservability\u002Fstreaming) - Streaming responses\n\nComponent docs: [ui.inference.sh\u002Fblocks\u002Fchat](https:\u002F\u002Fui.inference.sh\u002Fblocks\u002Fchat)\n","# Chat UI Components\n\nChat building blocks from [ui.inference.sh](https:\u002F\u002Fui.inference.sh).\n\n## Quick Start\n\n```bash\n# Install chat components\nnpx shadcn@latest add https:\u002F\u002Fui.inference.sh\u002Fr\u002Fchat.json\n```\n\n## Components\n\n### Chat Container\n\n```tsx\nimport { ChatContainer } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Fchat-container\"\n\n\u003CChatContainer>\n  {\u002F* messages go here *\u002F}\n\u003C\u002FChatContainer>\n```\n\n### Messages\n\n```tsx\nimport { ChatMessage } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Fchat-message\"\n\n\u003CChatMessage\n  role=\"user\"\n  content=\"Hello, how can you help me?\"\n\u002F>\n\n\u003CChatMessage\n  role=\"assistant\"\n  content=\"I can help you with many things!\"\n\u002F>\n```\n\n### Chat Input\n\n```tsx\nimport { ChatInput } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Fchat-input\"\n\n\u003CChatInput\n  onSubmit={(message) => handleSend(message)}\n  placeholder=\"Type a message...\"\n  disabled={isLoading}\n\u002F>\n```\n\n### Typing Indicator\n\n```tsx\nimport { TypingIndicator } from \"@\u002Fregistry\u002Fblocks\u002Fchat\u002Ftyping-indicator\"\n\n{isTyping && \u003CTypingIndicator \u002F>}\n```\n\n## Full Example\n\n```tsx\nimport {\n  ChatContainer,\n  ChatMessage,\n  ChatInput,\n  TypingIndicator,\n} from \"@\u002Fregistry\u002Fblocks\u002Fchat\"\n\nexport function Chat() {\n  const [messages, setMessages] = useState([])\n  const [isLoading, setIsLoading] = useState(false)\n\n  const handleSend = async (content: string) => {\n    setMessages(prev => [...prev, { role: 'user', content }])\n    setIsLoading(true)\n    \u002F\u002F Send to API...\n    setIsLoading(false)\n  }\n\n  return (\n    \u003CChatContainer>\n      {messages.map((msg, i) => (\n        \u003CChatMessage key={i} role={msg.role} content={msg.content} \u002F>\n      ))}\n      {isLoading && \u003CTypingIndicator \u002F>}\n      \u003CChatInput onSubmit={handleSend} disabled={isLoading} \u002F>\n    \u003C\u002FChatContainer>\n  )\n}\n```\n\n## Message Variants\n\n| Role | Description |\n|------|-------------|\n| `user` | User messages (right-aligned) |\n| `assistant` | AI responses (left-aligned) |\n| `system` | System messages (centered) |\n\n## Styling\n\nComponents use Tailwind CSS and shadcn\u002Fui design tokens:\n\n```tsx\n\u003CChatMessage\n  role=\"assistant\"\n  content=\"Hello!\"\n  className=\"bg-muted\"\n\u002F>\n```\n\n## Related Skills\n\n```bash\n# Full agent component (recommended)\nnpx skills add inference-sh\u002Fagent-skills@agent-ui\n\n# Declarative widgets\nnpx skills add inference-sh\u002Fagent-skills@widgets-ui\n\n# Markdown rendering\nnpx skills add inference-sh\u002Fagent-skills@markdown-ui\n```\n\n## Documentation\n\n- [Chatting with Agents](https:\u002F\u002Finference.sh\u002Fdocs\u002Fagents\u002Fchatting) - Building chat interfaces\n- [Agent UX Patterns](https:\u002F\u002Finference.sh\u002Fblog\u002Fux\u002Fagent-ux-patterns) - Chat UX best practices\n- [Real-Time Streaming](https:\u002F\u002Finference.sh\u002Fblog\u002Fobservability\u002Fstreaming) - Streaming responses\n\nComponent docs: [ui.inference.sh\u002Fblocks\u002Fchat](https:\u002F\u002Fui.inference.sh\u002Fblocks\u002Fchat)\n",{"name":5,"description":7},"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","视觉与设计\u002Fchat-ui",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill chat-ui",{"tool":62,"command":63},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill chat-ui",{"tool":65,"command":66},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill chat-ui","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F视觉与设计\u002Fchat-ui\u002FSKILL.md",true,[70],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"_meta.json","REFERENCE","参考文档",266,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F视觉与设计\u002Fchat-ui\u002F_meta.json",[77,100,134,145,155,184],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":43},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[79,84,85,86,87,88,35,89,90,91,92,93,94,95,96,97,98,99],"safe","ethereum","defi","Optimization","user","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":116,"publishedAt":43},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[105,110,113],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":111,"categoryName":112,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000030","开发工程师",[117,118,119,120,121,122,123,86,124,89,125,126,127,128,129,130,131,132,133],"api","zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":135,"name":136,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":142,"publishedAt":43},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[139,140,141],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},{"categoryNo":111,"categoryName":112,"taxonomyType":108,"taxonomyTypeDesc":109},{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},[117,143,144,118,119,120,121,122,123,86,124,89,126,127,128,129,130,131,132,133],"api skill","zerion api skill",{"skillNo":146,"name":147,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":153,"publishedAt":43},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[150,151,152],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},{"categoryNo":111,"categoryName":112,"taxonomyType":108,"taxonomyTypeDesc":109},{"categoryNo":114,"categoryName":115,"taxonomyType":20,"taxonomyTypeDesc":21},[120,117,154,118,119,121,122,86,124,89,125,126,127,128,129,130,131,132,133],"zerion api mcp",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":164,"publishedAt":43},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[161],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000040","财务",[165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,28],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":191,"publishedAt":43},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[190],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},[165,166,168,192,193,194,195,196,197,176,198,199,200,201,202,203,204,205,133,183],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]