Visualise logo

Visualise

Community
bentossell
visualise

Render inline interactive visuals — SVG diagrams, HTML widgets, charts, and explainers — directly in the conversation. Use this skill whenever the user asks to visualize, diagram, chart, illustrate, or explain something visually, or when an explanation would genuinely benefit from a spatial/interactive diagram rather than text. Also triggers for: flowcharts, architecture diagrams, data visualizations, interactive explainers, comparison layouts, UI mockups, and any request containing 'show me', 'draw', 'map out', 'visualize', or 'diagram'. Even when the user doesn't explicitly ask for a visual, use this skill proactively when the topic has spatial, sequential, or systemic relationships that a diagram would clarify better than prose.

Overview

Publisherbentossell
Repositoryvisualise
Skill namevisualise
Stars
484
Forks
24
Bundled files
5
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by bentossell on GitHub. Read the source before you install it.

Installation

Install the Visualise AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bentossell/visualise/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bentossell/visualise.git \
  .claude/skills/visualise
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Visualise in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Visualise on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Visualise is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Inline Visualizer

Render rich visual content — SVG diagrams, HTML interactive widgets, charts — directly inline in a chat conversation. Output streams token-by-token into a sandboxed iframe. The result feels like a natural extension of the conversation, not an attachment.

How it works

You generate raw HTML or SVG fragments. The client renders them in a sandboxed iframe with the design system's CSS variables injected. No <html>, <head>, or <body> tags — just content fragments.

Two output modes:

  • SVG mode: Output starts with <svg>. Client auto-wraps in a card. Best for static diagrams.
  • HTML mode: Raw HTML fragment. Best for interactive content (sliders, tabs, charts, controls). You can embed <svg> elements inside HTML mode.

The client detects which mode based on whether the output starts with <svg.

Before generating any visual

Read the design system reference before your first visual in a conversation:

  1. Always read first: references/design-system.md — CSS variables, color ramps, typography, core rules
  2. Then read the relevant module:
    • Diagrams (flowcharts, structural, illustrative): references/diagrams.md
    • Interactive explainers, comparisons, data records: references/components.md
    • Charts (Chart.js, data viz): references/charts.md

Read the design system file once per conversation. Read module files as needed for each visual type.

Streaming constraints

Output streams token-by-token into the DOM. This dictates structure:

  1. <style> first (keep under 15 lines — inline styles preferred)
  2. Visible HTML/SVG content next (the user sees it building up)
  3. <script> last (executes only after streaming completes)

Because of streaming:

  • No gradients, drop shadows, blur, or glow — they flash during DOM diffs. Use flat fills.
  • No display:none or hidden content — it streams invisibly.
  • No <!-- comments --> or /* comments */ — waste tokens, break streaming.
  • Inline style="..." preferred over <style> blocks so elements look correct mid-stream.
  • No tabs or carousels that start hidden — show everything stacked vertically during stream. Post-streaming JS can add interactivity.

Iframe sandbox rules

The visual renders in a sandboxed iframe. These are hard constraints:

  • No localStorage / sessionStorage — all state must be in-memory
  • No position: fixed — the iframe auto-sizes to content height; fixed elements collapse it
  • No external fetches — CSP blocks API calls from inside the widget
  • CDN allowlist only: cdnjs.cloudflare.com, esm.sh, cdn.jsdelivr.net, unpkg.com
  • No DOCTYPE, <html>, <head>, <body> — just content fragments
  • Background is transparent — the host provides the container/card styling
  • Load libraries via <script src="https://cdnjs.cloudflare.com/ajax/libs/..."> (UMD globals)

The sendPrompt bridge

A global sendPrompt(text) function is available inside the iframe. It sends a message to the chat as if the user typed it. Use it to make visuals conversational — clicking a node in a diagram can trigger a follow-up explanation.

Use sendPrompt when the user's next step benefits from the model thinking. Handle filtering, sorting, toggling, and calculations in local JS instead.

Choosing the right visual type

Route on the verb, not the noun. The same subject gets different treatment depending on what was asked:

User saysTypeWhat to build
"how does X work"Illustrative diagramSpatial metaphor showing the mechanism
"what are the components of X"Structural diagramLabelled boxes showing containment
"walk me through the steps"FlowchartSequential boxes and arrows
"compare X vs Y"Comparison layoutSide-by-side cards with metrics
"show me the data"ChartChart.js or inline data viz
"explain X" (spatial concept)Interactive explainerSliders, controls, live state

Default to illustrative for "how does X work" — it's the more ambitious choice. Don't retreat to a flowchart because it feels safer.

Multiple visuals per response

Generate multiple visuals in a single response, interleaved with prose:

  1. Text block (introduce/explain)
  2. Visual
  3. Text block (transition)
  4. Visual (if needed)

Never stack visuals back-to-back without text between them.

Output wrapper

Wrap visual output in a code fence with the language tag visualizer so the client detects and routes it to the iframe renderer:

```visualizer
<svg width="100%" viewBox="0 0 680 400">
  ...
</svg>
```

The client strips the fence and injects the content into the iframe with theme variables prepended.

Quick reference

RuleValue
SVG viewBox widthAlways 680px
Font sizes14px labels, 12px subtitles only
Stroke width0.5px for borders and edges
Max colors per diagram2-3 ramps
Box subtitle length≤5 words
Corner radius (SVG)rx="4" default, rx="8" for emphasis
Corner radius (HTML)var(--border-radius-md) or -lg
Min font size11px
Text weights400 regular, 500 bold only
Heading sizesh1=22px, h2=18px, h3=16px

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Visualise AI skill do?

Render inline interactive visuals — SVG diagrams, HTML widgets, charts, and explainers — directly in the conversation. Use this skill whenever the user asks to visualize, diagram, chart, illustrate, or explain something visually, or when an explanation would genuinely benefit from a spatial/interactive diagram rather than text. Also triggers for: flowcharts, architecture diagrams, data visualizations, interactive explainers, comparison layouts, UI mockups, and any request containing 'show me', 'draw', 'map out', 'visualize', or 'diagram'. Even when the user doesn't explicitly ask for a visu...

Why use Visualise on TypingMind?

Because you install it once and use it with any model. Visualise is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Visualise in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bentossell/visualise/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Visualise?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Visualise?

As many as you like. As long as a model supports skills, you can use Visualise with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Visualise AI skill free?

It is published on GitHub by bentossell. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇