Skip to content

jquatier/squinch

v0.8.0Apache-2.0

Turns your coding agent into an architecture diagrammer: describe a system in plain language and it writes, checks and renders a clean, professional diagram — AWS, Azure and Kubernetes estates, landscapes you can zoom into at every altitude, numbered request flows — with real vendor icons, exported as SVG, PNG or interactive HTML. Requires the squinch CLI (npx squinch).

@squinch/skill

skills/squinch/SKILL.md is the whole contract an agent needs to author Squinch diagrams: the grammar, the visibility rules, a layout cookbook, and the check-render-fix loop. It is the only thing the twenty cold agents in the gauntlet are given, alongside the squinch binary — so if something an agent needs isn't in here, the gauntlet is where that shows up.

Installing it

The CLI carries the skill and installs it where agents look:

npx squinch skill            # this project: .agents/skills/ — Cursor, Codex,
                             # Gemini CLI, Copilot and every other agent that
                             # reads the Agent Skills standard (agentskills.io);
                             # adds .claude/skills/ when it detects Claude Code
npx squinch skill --global   # just for you: the same two, under your home
                             # directory — ~/.agents/skills, and ~/.claude/skills
                             # when ~/.claude is there (or with --claude)

Re-run after upgrading squinch — the installed file is version-locked to the CLI that wrote it.

Or take the plugin instead, straight from this repo — updates then arrive with the plugin rather than living in your tree. Claude Code:

/plugin marketplace add jquatier/squinch
/plugin install squinch@squinch

Codex, and anything else that reads Agent Plugins — Cursor, Copilot, Kiro, VS Code:

codex plugin marketplace add jquatier/squinch
codex plugin add squinch@squinch

Then ask for a diagram in plain language — the frontmatter's description is what makes it fire, so "draw the architecture of this service" is enough. The skill drives squinch check and squinch render, so the CLI has to be reachable: npx squinch works with no install at all.

Using it with any other agent

There is nothing Claude-specific in the file below the frontmatter. Copy skills/squinch/SKILL.md wherever your agent discovers skills, paste it into a system prompt, or hand it to whatever your harness calls context. What matters is that the agent can run squinch check and read the diagnostics — the skill is written around that loop, not around one vendor's format.

Keeping it true

test/skill.test.ts compiles every DSL snippet in SKILL.md through the real engine and asserts every icon id it names actually resolves in an installed pack. Documentation that drifts from the language fails the build, which is the point: an agent reading a stale cookbook produces diagrams that don't check.

One file derives from SKILL.md — edit only the canonical file: packages/cli/src/skill.generated.ts, the copy squinch skill installs, regenerated by scripts/gen-skill.mjs (pre-commit and CI diff it).

Two manifests here make this one directory two plugins off the same skills/ dir: .claude-plugin/plugin.json for Claude Code, and plugin.json — Agent Plugins 1.0 — for Codex and the rest. Each has a marketplace manifest at the repo root pointing back at this directory (.claude-plugin/marketplace.json and .agents/plugins/marketplace.json), and scripts/version.mjs moves both plugin manifests with everything else. test/skill.test.ts asserts the two agree on name, version and description, and core's guardrails assert both marketplaces still resolve here.