Skip to content

Add charter extension - #31259

Open
aicayzer wants to merge 3 commits into
raycast:mainfrom
aicayzer:ext/charter
Open

aicayzer wants to merge 3 commits into
raycast:mainfrom
aicayzer:ext/charter

Conversation

@aicayzer

@aicayzer aicayzer commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Description

Charter is a catalog of 48 chart and diagram types with a lens for the library you are working in: Mermaid, shadcn (Recharts) or Apache ECharts. Each type shows which libraries can draw it, a thumbnail drawn by that library, a complete example (Mermaid syntax, an ECharts option as JSON, or the shadcn block's component with every variant's install command), the docs link and a prompt snippet for asking a model for that chart.

A second command, Render Chart, draws a Mermaid diagram or an ECharts option from the selection, the clipboard or a pasted source, and returns a PNG to copy, save or open.

Two things worth knowing for review:

  • Rendering runs in the user's own Chromium-based browser through puppeteer-core (Chrome, Chromium, Brave, Arc or Edge, or one chosen in preferences), the same approach as Reverso Context. No browser is downloaded. When none is installed the command explains what to install and offers Kroki for Mermaid as an explicit, opt-in network fallback.
  • Assets are about 11 MB because Mermaid and ECharts are vendored (assets/vendor, refreshed by npm run vendor) so drawing works offline and nothing leaves the machine, plus 63 light-and-dark thumbnails and a world map for the ECharts map types. Every file in assets is used by the extension.

Screencast

Browse Charts

List with detail panel Render Chart

Checklist

- chore: store title says what it does
- feat: tile subtitles name the libraries
- fix: review findings for the lens build
- fix: keep antimeridian countries whole on the world map
- docs: describe the lens, the sources and the scripts
- chore: us spelling throughout the product
- feat: shadcn as a full lens
- feat: echarts as a full lens
- refactor: the dropdown becomes a lens
- perf: load puppeteer-core on first render
- fix: review findings for store readiness
- chore: move to raycast api 2.4
- fix: skip the abandoned first render in development
- feat: render template from the catalogue
- feat: render chart command
- feat: recent section for the last five types used
- feat: fenced template copy with a raw variant
- chore: drop the Recharts notes from the catalogue
- feat: provider filter in the search bar
- feat: sankey split icon
- refactor: tidy the list view and metadata rows
- feat: tile size actions and a compact metadata panel
- feat: thumbnails, icon and view switch shortcut
- feat: grid and list views with chart pages
- feat: catalogue data, manifest and docs
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Sep 18, 2026
@raycastbot

Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@greptile-apps

greptile-apps Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge.

What we checked:

  • ECharts input cannot run code: No. detectSource accepts ECharts input only when JSON.parse succeeds, so statements and functions never reach the browser page.

Summary

Charter adds a Raycast catalog for 48 chart and diagram types across Mermaid, shadcn, and ECharts. It also renders Mermaid diagrams and ECharts options locally, so users can browse examples, copy them, and save PNGs without leaving Raycast.

  • Browse chart types by family and library lens.
  • Copy examples, docs, prompts, and shadcn install commands.
  • Render sources from Raycast input, the clipboard, or a pasted form.
  • Use an installed Chromium browser with an explicit Kroki fallback for Mermaid.

Reviews (3) · Last reviewed commit: "fix: make rendering and stored lists saf..."

Comment thread extensions/charter/src/lib/render/render.ts Outdated
Comment thread extensions/charter/src/lib/render/browser.ts Outdated
Comment thread extensions/charter/src/hooks/useRecent.ts Outdated
Comment thread extensions/charter/src/lib/render/render.ts Outdated
Comment thread extensions/charter/src/lib/render/render.ts Outdated
@socket-security

socket-security Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​topojson-client@​3.1.010010010075100
Addednpm/​world-atlas@​2.0.21001008975100
Addednpm/​puppeteer-core@​25.11.0951009597100
Addednpm/​mermaid@​12.0.09810010096100

View full report

@aicayzer

Copy link
Copy Markdown
Contributor Author

Note: looked into the Socket review. No issues.

The two packages with a maintenance score of 75 are topojson-client and world-atlas, both already on their latest release and both devDependencies only: scripts/vendor.mjs uses them to convert the country outlines into the GeoJSON that ships in assets/vendor/maps.js, so neither ends up in the extension bundle. The low score is age rather than a problem, since they have not needed a release since 2022.

@aicayzer
aicayzer marked this pull request as ready for review September 18, 2026 17:07

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants