getnao/nao

build-custom-charts

Create or update browser-rendered custom nao chart modules in agent/charts.

First seen Jul 23, 2026

Installation

$ npx skills add getnao/nao --skill build-custom-charts

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from getnao/nao.

npx skills add getnao/nao

Browse all from getnao/nao

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1.6K
License LICENSE
Default branch main
Open issues 211
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,943 B
  • docs SUMMARY.md 102 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 37 installs

SKILL.md

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 referenced execute_sql result
  • config: chartType, xAxisKey, xAxisType, series, and title
  • colors: nao's default chart palette
  • theme: light or dark
  • libs: the installed React, ReactDOM, and Recharts modules

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.