Browser-based visual brainstorming companion for showing mockups, diagrams, and visual options.

Apache-2.0Auto-check passedAgent Workflows

Install Visual Companion

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill visual-companion -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins visual-companion --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/yagizdo/quiver/skills/visual-companion .claude/skills/visual-companion && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
visual-companion
GitHub stars
1.3k
Token cost
~2.5k tokens
SKILL.md length
1,187 words
Files
3
Skills in repo
714
Repo updated
First seen
Licence
Apache-2.0

At a glance

Browser-based visual brainstorming companion for showing mockups, diagrams, and visual options.

  • Works in 5 steps: When to Use → Starting a Session → The Loop → …
  • Brainstorm topics involve UI/UX
  • SKILL.md covers 1. When to Use, 2. Starting a Session, 3. The Loop and 4. HTML Content Guide, plus 1 more section
  • Runs Python scripts from its folder; calls python3

What it does

Visual Companion is an agent skill from hashgraph-online/awesome-codex-plugins. Browser-based visual brainstorming companion for showing mockups, diagrams, and visual options. Use when brainstorm topics involve UI/UX, layout, architecture diagrams, or any content better understood visually.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `TEST-PLAN.md` and `server.py`).

It sits in Agent Workflows, covering Diagrams, Brainstorming and UI design. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.

When your agent uses it

  • Brainstorm topics involve UI/UX
  • Architecture diagrams
  • Any content better understood visually

Example prompts

  • “/visual-companion”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. When to Use
  2. Starting a Session
  3. The Loop
  4. HTML Content Guide
  5. Cleaning Up

What it can do on your machine

Read from SKILL.md and the folder at commit 9e7b281. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Visual Companion loads about 2.5k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 1,187 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 9e7b281, republished under its Apache-2.0 licence (© hashgraph-online). 1,187 words, ~2,542 tokens.

Download SKILL.mdSave it as .claude/skills/visual-companion/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
visual-companion
description
Browser-based visual brainstorming companion for showing mockups, diagrams, and visual options. Use when brainstorm topics involve UI/UX, layout, architecture diagrams, or any content better understood visually.
when-to-use
user wants visual mockups, UI diagrams, or architecture sketches -- '/visual-companion', 'show me a diagram', 'sketch this UI', 'visualize this', 'open visual…

Visual Companion

A browser-based companion for displaying mockups, wireframes, architecture diagrams, and side-by-side visual comparisons during brainstorm sessions.

1. When to Use

Decide per question whether to show content in the browser or keep it in the terminal.

Use the browser for:

  • UI mockups and wireframes
  • Architecture diagrams and system maps
  • Side-by-side visual comparisons (layout A vs. layout B)
  • Spatial relationships (grid layouts, navigation flows, screen transitions)
  • Color palettes, typography samples, component galleries

Use the terminal for:

  • Requirements questions and conceptual choices
  • Tradeoff lists and technical decisions
  • Clarifying questions about scope or constraints
  • API design, data models, algorithm selection

A question about a UI topic is not automatically a visual question. "Should we use tabs or accordion?" is a terminal question. "Here are two tab layouts -- which one?" is a browser question.

2. Starting a Session

  1. Create a temporary directory for HTML files:

    mktemp -d /tmp/visual-companion-XXXXXX
  2. Start the visual companion server in the background:

    python3 <skill-dir>/server.py --dir <temp-dir> &

    <skill-dir> is resolved by the invoking agent to the absolute path of skills/visual-companion/. Do NOT pass --owner-pid -- in the Bash tool context, $$ resolves to the ephemeral shell PID that dies immediately, causing the server to self-terminate within seconds. The server already has idle timeout (30 min) and max lifetime (8h) for cleanup.

  3. Wait for the server to become ready before announcing its URL. The & in step 2 returns immediately; the Python process still needs to import modules, bind the port, and write server-info.json. Announcing the URL before this finishes is the #1 cause of "localhost opened but link unreachable" failures. Probe until both server-info.json exists and the port accepts TCP connections:

    for i in $(seq 1 30); do
      [ -f <temp-dir>/.vc-meta/server-info.json ] && \
        python3 -c "import json,socket; info=json.load(open('<temp-dir>/.vc-meta/server-info.json')); s=socket.socket(); s.settimeout(0.5); s.connect(('127.0.0.1', info['port'])); s.close(); print(info['url'])" 2>/dev/null && break
      sleep 0.2
    done
    • If the loop prints a URL, the server is ready. Use that URL.
    • If the loop completes with no output, the server failed to launch. Do NOT announce a URL. Inspect <temp-dir>/.vc-meta/ and the background-process output, fix the underlying issue, and retry step 2.
  4. Tell the user (only after step 3 prints a URL):

    Visual companion running at {url}. Open it in your browser.

  5. Push an initial HTML page immediately. Do NOT enter the question flow while the browser shows the "waiting" page -- the user sees a broken-looking screen and loses confidence. Write a context-setting HTML fragment to <temp-dir> right now, before any AskUserQuestion call. The content depends on the session:

    • For brainstorm sessions: a brief "session overview" card showing the topic and what is coming next.
    • For other sessions: a simple title card with the session purpose. The server's SSE auto-reload will push this to the browser. Confirm the browser shows your content before proceeding.

3. The Loop

For each visual step in the brainstorm:

  1. Write an HTML fragment to <temp-dir> with a semantic filename (e.g., layout-options.html). Write body content only -- the server wraps fragments automatically.
  2. Never reuse filenames. Each screen gets a fresh file. For iterations, append a version suffix: layout-options-v2.html. Older files stay on disk so the agent can copy them out at the end of the session.
  3. Browser stays on / and auto-shows the newest file. The server routes the root URL to the most recently modified .html file in the temp dir; SSE reload triggers whenever any HTML file changes. The user opens the URL once and never has to navigate manually -- each new file replaces the previous view automatically.
Show full SKILL.md (678 more words)Show less
Pick ONE input mode per step

A step is either browser-answered or terminal-answered. Do not do both in the same step. Mixing them produces the common failure: agent renders clickable cards, user clicks them, agent is actually blocked on AskUserQuestion -- clicks land in events.jsonl that the agent never reads, and the user sees their clicks "do nothing."

Mode A -- Browser-answered (the cards ARE the question):

Use when the whole point is "pick one of these visual options."

Pre-write checklist (mandatory before every Mode A HTML write):

  • Every selectable visual element MUST have a data-choice="<value>" attribute. The client JS ignores elements without it -- styled cards that look clickable but lack data-choice are a silent bug (clicks vanish, user sees nothing happen).
  • Do NOT use AskUserQuestion in Mode A. The browser click IS the answer.
  1. Clear stale selections first so old clicks do not leak into the new question:
    python3 -c "import urllib.request; req=urllib.request.Request('http://localhost:{port}/events', method='DELETE'); urllib.request.urlopen(req)"
  2. Write HTML with [data-choice] elements. The client JS highlights the clicked element and POSTs to /event, which appends a line to .vc-meta/events.jsonl.
  3. Tell the user explicitly: > Click one of the cards in the browser to select your choice.
  4. Poll events.jsonl until a new line arrives (up to ~60s):
    for i in $(seq 1 300); do
      line=$(tail -n 1 <temp-dir>/.vc-meta/events.jsonl 2>/dev/null)
      [ -n "$line" ] && echo "$line" && break
      sleep 0.2
    done
  5. Parse the JSON line and use the choice field as the answer.
  6. If the poll times out with no click, fall back to AskUserQuestion and treat the step as Mode B from this point on.

Mode B -- Terminal-answered (browser is visual aid only):

Use when the browser shows a diagram, mockup, or reference and the real answer is a conceptual choice or free text.

  1. Write the HTML WITHOUT [data-choice] attributes. Clickable styling with no listener on the agent side is the bug that bit us before -- if you are not going to poll events.jsonl, do not ship clickable targets.
  2. Ask the question with AskUserQuestion. The browser is decoration; the button click is the answer.

Terminal-only steps (no browser): No HTML update needed. Optionally push a placeholder page:

html
<div style="display:flex;align-items:center;justify-content:center;height:100vh;font-family:system-ui;color:#666">
  <p>Continuing in terminal...</p>
</div>

4. HTML Content Guide

Write body content only. The server wraps fragments with DOCTYPE, CSS, and client JS automatically.

A file is treated as a fragment if its first 256 bytes (stripped, case-insensitive) do not start with <!DOCTYPE or <html>. Full HTML documents are served as-is, with client JS injected before </body>.

Layout Patterns
  • Options grid: Use .options + .option for comparing 2-3 approaches visually. Mark the recommended option with .recommended.
  • Cards: Use .cards + .card for component galleries or feature inventories.
  • Mockup: Use .mockup with .mock-nav, .mock-sidebar, .mock-content for wireframes.
  • Split view: Use .split for before/after or A/B comparisons.
  • Pros/cons: Use .pros-cons for tradeoff visualization.
  • Mock UI: .mock-button, .mock-input for wireframe form elements.
Clickable Options with data-choice

Add data-choice attributes to elements that users can click to make selections:

html
<div class="options">
  <div class="option" data-choice="grid">
    <h3>Grid Layout</h3>
    <p>Content arranged in a responsive grid</p>
  </div>
  <div class="option" data-choice="list">
    <h3>List Layout</h3>
    <p>Content in a vertical list</p>
  </div>
</div>

When a user clicks a [data-choice] element:

  • The .selected class is added (blue border + light blue background)
  • Previous selections within the same parent are deselected
  • A JSON event is appended to .vc-meta/events.jsonl:
    {"type":"choice","choice":"grid","text":"Grid Layout Content arranged in a responsive grid","timestamp":"2026-04-09T14:30:00.000Z"}
events.jsonl Format

Each line is a JSON object appended by the server. The agent reads this file to see what the user clicked:

{"type":"choice","choice":"option-a","text":"Option A","timestamp":"..."}
{"type":"choice","choice":"option-b","text":"Option B","timestamp":"..."}

5. Cleaning Up

The server self-terminates in two cases:

  • Idle timeout: No real HTTP activity (page loads, click events, agent updates) for 30 minutes. SSE keepalives and auto-reconnects do NOT reset this timer -- if they did, an open browser tab would keep the server alive forever through any network blip.
  • Max lifetime: 8 hours since startup, regardless of activity. Override with --max-lifetime <seconds>; set to 0 to disable.

Note: --owner-pid exists in server.py but is NOT used in the startup template above. In the Bash tool context, $$ resolves to an ephemeral shell PID that dies immediately, making the owner-PID mechanism unreliable. The idle timeout and max lifetime are sufficient.

To stop manually:

kill $(cat <temp-dir>/.vc-meta/server-info.json | python3 -c "import sys,json; print(json.load(sys.stdin)['pid'])") 2>/dev/null

HTML files remain in the temp directory for reference. Optionally copy key mockups to docs/brainstorms/ alongside the spec:

cp <temp-dir>/final-layout.html docs/brainstorms/YYYY-MM-DD-<name>-mockups/

© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in plugins/yagizdo/quiver/skills/visual-companion of hashgraph-online/awesome-codex-plugins.

  • SKILL.md
  • TEST-PLAN.md
  • server.py

Open the folder on GitHubat commit 9e7b281

Compare with similar skills

Visual Companion next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Visual Companion compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Visual Companion this skillhashgraph-online/awesome-codex-plugins1.3k—~2.5kAutomated safety check: PassApache-2.0
Ln 25 Architecture Diagram Builderlevnikolaevich/claude-code-skills572—~2.3kAutomated safety check: PassMIT
CLI Hub Matrix Image DesignHKUDS/CLI-Anything52k—~2.4kAutomated safety check: PassApache-2.0
Renaissance Architecturebencium/bencium-marketplace446—~3.3kAutomated safety check: PassMIT
Audit Flowzebbern/claude-code-guide4.7k—~4.2kAutomated safety check: PassMIT
Azure Diagramscmb211087/azure-diagrams-skill150—~4kAutomated safety check: NotesMIT

Similar skills

  • Ln 25 Architecture Diagram Builder

    levnikolaevich/claude-code-skills

    Creates evidence-backed current or target architecture diagrams; not UI design.

    572 GitHub stars~2.3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • CLI Hub Matrix Image Design

    HKUDS/CLI-Anything

    Capability-based multi-tool matrix for image and graphic design: AI generation, raster/vector editing, UI mockups, diagrams, upscaling, photo library, and publishing.

    52k GitHub stars~2.4k tokensUpdated 17 days ago
    Frontend & DesignAuto-check passed
  • Renaissance Architecture

    bencium/bencium-marketplace

    Software architecture and UI/UX principles for building genuinely new solutions, not derivative work.

    446 GitHub stars~3.3k tokensUpdated 5 days ago
    DevelopmentAuto-check passed
  • Audit Flow

    zebbern/claude-code-guide

    Interactive system flow tracing across CODE, API, AUTH, DATA, NETWORK layers with SQLite persistence and Mermaid export.

    4.7k GitHub stars~4.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Azure Diagrams

    cmb211087/azure-diagrams-skill

    Comprehensive technical diagramming toolkit for solutions architects, presales, and developers.

    150 GitHub stars~4k tokensUpdated 3 mo ago
    DevOps & CloudAuto-check: notes
  • Work Issue

    joesaby/astro-mermaid

    End-to-end workflow for resolving a GitHub issue in astro-mermaid — triages complexity, then runs brainstorm → TDD → implement → docs/spec → code review at the right depth.

    123 GitHub stars~891 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed

More from hashgraph-online/awesome-codex-plugins

All 714 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.3k GitHub stars~922 tokensUpdated today
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.3k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Rust API Test Harness

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

    1.3k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.3k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Calle

    hashgraph-online/awesome-codex-plugins

    Use CALL-E from Codex through the calle CLI. An agent skill from hashgraph-online/awesome-codex-plugins.

    1.3k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.3k GitHub stars~618 tokensUpdated today
    Auto-check passed

Questions about Visual Companion

What does Visual Companion do?

Browser-based visual brainstorming companion for showing mockups, diagrams, and visual options. Visual Companion is an agent skill from hashgraph-online/awesome-codex-plugins. Browser-based visual brainstorming companion for showing mockups, diagrams, and visual options.

When should I use Visual Companion?

Visual Companion fits situations like: brainstorm topics involve UI/UX; architecture diagrams; any content better understood visually.

How do I install Visual Companion in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill visual-companion -a claude-code`. Or copy the skill folder (plugins/yagizdo/quiver/skills/visual-companion in hashgraph-online/awesome-codex-plugins) into .claude/skills/visual-companion in your project. Claude Code loads it when a task matches its description.

How do I install Visual Companion in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill visual-companion -a codex`. Or copy the skill folder (plugins/yagizdo/quiver/skills/visual-companion in hashgraph-online/awesome-codex-plugins) into .agents/skills/visual-companion in your project. Codex loads it when a task matches its description.

Can I use Visual Companion in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill visual-companion -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/visual-companion, .gemini/skills/visual-companion, .github/skills/visual-companion and .opencode/skills/visual-companion in your project.

What does Visual Companion need to run?

Going by SKILL.md and its folder, Visual Companion needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Visual Companion access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Visual Companion safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Visual Companion use?

Visual Companion is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Visual Companion use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Visual Companion?

Skills that share tags, products or a category with Visual Companion: Ln 25 Architecture Diagram Builder (levnikolaevich/claude-code-skills, 572 stars), CLI Hub Matrix Image Design (HKUDS/CLI-Anything, 52k stars), Renaissance Architecture (bencium/bencium-marketplace, 446 stars) and Audit Flow (zebbern/claude-code-guide, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Visual Companion?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,255 GitHub stars. The repository holds 714 skills in this directory. The repository was last updated on October 9, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.