使用方法
- 复制安装命令,在自己的智能体环境安装前先检查源码包。
- 从原始文档核对所需工具、凭据和支持的宿主。
- 说明输入材料与期望交付物,并对照来源检查输出。
npx skills add https://github.com/getnao/nao --skill build-custom-charts开始前需了解
- 安装不包含模型订阅、API 额度或访问文件的权限。
- 仓库星数和安装量反映活跃情况,不等于独立质量或安全测试。
按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。
build-custom-charts
Use this skill when a project needs a visualization beyond nao's built-in chart types.
Create a chart
Add agent/charts/<type>.js, where <type> starts with a lowercase letter and may then contain lowercase letters, numbers, hyphens, or underscores. It must not collide with a built-in chart type (such as bar, line, pie) or table. Names that break these rules are silently ignored. The file must export a render function:
export function render(element, context) {
const { data, config, colors, theme, libs } = context;
element.textContent = `${data.length} rows`;
return () => element.replaceChildren();
}The context contains:
data: rows from the referencedexecute_sqlresultconfig:chartType,xAxisKey,xAxisType,series, andtitlecolors: nao's default chart palettetheme:lightordarklibs: the installedReact,ReactDOM, andRechartsmodules
Use plain JavaScript without JSX. Do not import bare package names; use the libraries from context.libs. A React chart must return a cleanup function that unmounts its root.
Optionally add agent/charts/<type>.json:
{
"name": "Bubble chart",
"description": "Shows two numeric axes while marker size represents a third measure."
}The description tells the agent when to select the chart. Without metadata, nao derives a name from the file name.
Constraints
- Custom charts render only in authenticated, interactive web chats.
- Stories, PNG exports, automations, MCP embeds, and messaging channels use built-in charts.
- Keep modules self-contained and treat them as trusted project code.
- Return cleanup for event listeners, timers, React roots, and other resources.
- Editing the module reloads active custom charts within a few seconds.

