BootstrapBlazor.LLMsDocs.Cli
10.0.2
Prefix Reserved
dotnet tool install --global BootstrapBlazor.LLMsDocs.Cli --version 10.0.2
dotnet new tool-manifest
dotnet tool install --local BootstrapBlazor.LLMsDocs.Cli --version 10.0.2
#tool dotnet:?package=BootstrapBlazor.LLMsDocs.Cli&version=10.0.2
nuke :add-package BootstrapBlazor.LLMsDocs.Cli --version 10.0.2
BootstrapBlazor LLMs Docs CLI(bb-llms)
一个轻量命令行工具,用于从 www.blazor.zone/llms 拉取 BootstrapBlazor 组件的官方 API 文档(参数、事件回调、公开方法、源码链接), 供 AI agent(Claude Code / Cursor / Trae / Codex 等经 Bash 调用)和开发者查询。
组件文档由官网的 BootstrapBlazor.LLMsDocsGenerator(生产者,CI 侧用 Roslyn 生成并发布)产出,
本工具是消费者:只负责按需 HTTP 拉取已生成的 .txt 文档并本地缓存,
不克隆仓库、不做源码分析。详见文末「设计说明」。
安装
前置条件
- 已安装 .NET 10 SDK(提供
dotnet tool能力)。
全局安装
dotnet tool install -g BootstrapBlazor.LLMsDocs.Cli
安装后得到命令 bb-llms。验证:
bb-llms --help
bb-llms get Button # 能打印 Button 的 API 文档即安装成功
若提示找不到
bb-llms,请确认~/.dotnet/tools(Windows 为%USERPROFILE%\.dotnet\tools) 已在PATH中,或重开一个终端。
更新 / 卸载
dotnet tool update -g BootstrapBlazor.LLMsDocs.Cli
dotnet tool uninstall -g BootstrapBlazor.LLMsDocs.Cli
注意:几乎不需要更新本工具。新增组件、参数变化都来自远程文档的更新,工具自动拉取即可—— 只有当工具本身发布了新命令或修复时才需要
update。
快速开始
bb-llms search table # 按关键词搜索组件,定位准确名称
bb-llms get Table # 拉取 Table 组件的完整 API 文档(核心命令)
bb-llms list # 列出全部组件
bb-llms index # 打印原始 llms.txt 索引
命令参考
数据命令
| 命令 | 说明 | 输出 |
|---|---|---|
bb-llms index |
打印原始 llms.txt 索引 |
原始 Markdown |
bb-llms list [--query <q>] |
列出组件,可按名称/描述过滤 | JSON(默认)/ text |
bb-llms search <query> [--limit <n>] |
按名称或描述搜索,名称前缀匹配优先 | JSON(默认)/ text |
bb-llms get <Component> |
拉取单个组件的 API 文档(核心命令) | 原始 Markdown |
要点:
get/index为原样透传,不解析格式,输出即远程.txt原文。list/search默认输出 JSON;加--format text输出纯文本(Name - 描述每行一条)。search --limit默认20,取值范围会被限制在1~100。- 找不到组件时
get退出码非 0,并提示用bb-llms search <关键词>重新定位。
示例:
bb-llms search button --limit 5 # 最多 5 条,Button 类优先
bb-llms list --query table # 仅名称/描述含 "table" 的组件
bb-llms list --format text # 纯文本清单
bb-llms get Table # Table 的参数表 / 事件 / 方法 / GitHub 源码链接
源与缓存选项(数据命令通用)
--base-url <url|dir> 文档源:HTTP(S) 网址或本地目录路径
--refresh 忽略缓存 TTL,强制回源拉取(仍写缓存)
--no-cache 既不读也不写本地缓存
文档源解析优先级:--base-url > 环境变量 BB_LLMS_BASE_URL > 默认 https://www.blazor.zone/llms
# 用环境变量指向自建/镜像源
export BB_LLMS_BASE_URL=https://your-mirror.example.com/llms
bb-llms get Button
# 单次覆盖
bb-llms get Button --base-url https://your-mirror.example.com/llms
本地目录源:--base-url 也可以是一个本地目录(例如 LLMsDocsGenerator 生成的
wwwroot/llms 文件夹)。此时直接读盘、绕过缓存,适合离线使用或在文档发布前预览:
bb-llms get Button --base-url ./wwwroot/llms
缓存
- 远程源的响应缓存在:
- Windows:
%LOCALAPPDATA%\bb-llms - Linux / macOS:
~/.local/share/bb-llms
- Windows:
- 每个文档存「内容文件 + 同名
.meta.json(记录 ETag 与拉取时间)」。 - TTL 24 小时:未过期直接用缓存;过期后带
If-None-Match条件请求, 服务端返回304则沿用旧内容并刷新时间戳,200则写入新内容。 - 想强制拿最新:
--refresh;完全不碰缓存目录:--no-cache。
含义:官网发版后,最长 24 小时本地才会感知到文档更新(用
--refresh可立即刷新)。
给 AI agent 使用(发现层)
一个躺在 PATH 上的 CLI 对 agent 是「隐形」的——必须有指令文件告诉 agent
「需要 BootstrapBlazor 组件 API 时去跑 bb-llms get <Name>」。
以下两个脚手架命令负责把这层「发现 / 触发」一键装好:
bb-llms instructions # 打印可粘贴进 CLAUDE.md / AGENTS.md 的通用片段
bb-llms install --client claude # 写 .claude/skills/bootstrapblazor/SKILL.md
bb-llms install --client cursor # 写 .cursor/rules/bootstrapblazor.mdc
bb-llms install --client trae # 写 .trae/skills/bootstrapblazor/SKILL.md
bb-llms install --client codex # 写 AGENTS.md(user scope 为 ~/.codex/AGENTS.md)
bb-llms install --client all # 四者都写(默认)
install 选项:
--client claude|cursor|trae|codex|all 目标客户端(默认 all)
--scope project|user project=当前目录(默认),user=用户主目录
--target <dir> 覆盖写入的根目录
--force 覆盖已存在的文件(默认存在则跳过)
五套生态接入方式:
- Claude Code:
bb-llms install --client claude写入一个 skill,Claude Code 会根据其description在任务涉及 BootstrapBlazor 组件时自动加载并调用bb-llms, 等效于 MCP server 的自动发现。 - Cursor:
bb-llms install --client cursor写入项目规则(匹配*.razor/*.razor.cs)。 - Trae:
bb-llms install --client trae写入一个 skill(.trae/skills/bootstrapblazor/SKILL.md)。 Trae 的 skill 与 Claude 同构(同样的SKILL.md+ name/description frontmatter,按描述自动匹配), 因此复用同一套模板。 - Codex:
bb-llms install --client codex写入AGENTS.md(project scope 为仓库根目录的AGENTS.md,user scope 为~/.codex/AGENTS.md)。Codex 没有独立的 skill/规则机制,统一读AGENTS.md, 因此复用instructions的通用片段。⚠️
AGENTS.md是手工维护的共享文件,默认存在则跳过;--force会整文件覆盖,原有内容会丢失。 已有AGENTS.md时,建议改用bb-llms instructions把片段手动粘进去。 - 通用 / 其他 agent:把
bb-llms instructions的输出粘进项目的CLAUDE.md/AGENTS.md。
典型流程(在你的 Blazor 项目根目录):
dotnet tool install -g BootstrapBlazor.LLMsDocs.Cli # 1. 装工具
bb-llms install --client claude # 2. 装发现层
# 之后在 Claude Code 中让它写/改组件代码时,会自动用 bb-llms 查权威 API
开发 / 本地运行
cd tools/BootstrapBlazor.LLMsDocs.Cli
dotnet build
dotnet run -- get Button
dotnet run -- search table --limit 5
dotnet run -- get Button --base-url ../BootstrapBlazor.LLMsDocsGenerator/<生成目录>/llms
打包冒烟:
dotnet pack -c Release
dotnet tool install -g --add-source ./bin/Release BootstrapBlazor.LLMsDocs.Cli
bb-llms get Table
修改发现层模板
instructions / install 输出的模板正文是 Templates/ 下的独立文件,直接编辑这些文件即可,无需改 C# 代码:
| 文件 | 对应命令 |
|---|---|
Templates/instructions.md |
bb-llms instructions(粘进 CLAUDE.md / AGENTS.md 的片段)、bb-llms install --client codex(写 AGENTS.md) |
Templates/SKILL.md |
bb-llms install --client claude / --client trae(Claude / Trae skill) |
Templates/bootstrapblazor.mdc |
bb-llms install --client cursor(Cursor 规则) |
这些文件以嵌入资源编入程序集(见 .csproj),因此全局安装后工具仍能在运行时读取到,无需依赖项目源码目录。改完重新 dotnet build / dotnet pack 即生效。
设计说明:运行时 vs 数据
本工具刻意做成「瘦客户端」,与文档内容彻底解耦:
bb-llms(运行时):只做「解析源 → 拉取 → 缓存 → 输出」,几乎零迭代。llms/下的.txt(数据):由生产者LLMsDocsGenerator随每次发版更新。
因此装一次工具,新组件 / 新参数会自动随远程文档更新,无需重装。
唯一的隐式契约是 llms.txt 索引行的格式——只有 list / search 会解析它
(- [Name](components/Name.txt) - 描述 行 + ### 分类 标题)。核心命令 get / index
是纯透传,与格式无关,永远不受生产者格式调整影响。换言之:
- 生产者改了文档正文:工具零感知,照常透传。
- 生产者改了索引行格式:只需同步
LlmsDocsClient里的两条正则,get不受影响。
License
Licensed under the Apache 2.0 License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.