Design a QR code you'd actually print.
Live preview, gradients, dot styles, logo overlays, and shareable links —
running entirely in your browser. No backend, no accounts, no tracking.
Your designs never leave your machine.
- Five content types: URL, Email, Phone, Text, vCard
- Live preview: the code redraws as you type, with a capacity guard instead of silent failures
- Styling: solid or gradient foregrounds (linear/radial), background colors (or none, for a transparent export), 6 dot styles, corner styles, and logo overlays with a scannability warning
- History: every download is saved locally with a live thumbnail — restore, share, or delete any past design
- Sharing: designs encode into self-sufficient URLs; the recipient's browser rebuilds the design with nothing stored server-side
- Export: PNG at 2× resolution or SVG
- Workspace UI: three-pane desktop layout on an engineering-grid canvas; mobile gets a history drawer and a sticky export bar
One generator, three surfaces: design in the browser, generate from your code via @frontsail-ai/qr-mcp, or hand both to your agent. The MCP server generates the codes; the qr-code skill teaches the agent which designs will actually scan.
Claude Code
claude plugin marketplace add frontsail-ai/qr-code-generator
claude plugin install qr-code-generator@frontsail-qr # the skill
claude mcp add qr -- npx -y @frontsail-ai/qr-mcp # the generatorOpenAI Codex
$skill-installer https://github.com/frontsail-ai/qr-code-generator/tree/master/skills/qr-code
codex mcp add qr -- npx -y @frontsail-ai/qr-mcp(Or copy skills/qr-code/ into ~/.codex/skills/ by hand. Working inside a clone of this repo, Codex discovers the skill automatically via .agents/skills/.)
Any other agent
The skill follows the Agent Skills spec — copy skills/qr-code/ to wherever your agent loads skills from, and register npx -y @frontsail-ai/qr-mcp as a stdio MCP server.
A Bun workspace monorepo:
apps/
web/ the deployed app (React, Vite+, Playwright e2e)
packages/
core/ @frontsail/qr-core — framework-free QR logic + vitest units
mcp/ @frontsail-ai/qr-mcp — stdio MCP server for agents
skills/
qr-code/ QR scannability skill for any agentskills.io-compatible agent
Install instructions for the skill and MCP server are under Use it from your agent above.
packages/core holds the parts that have nothing to do with React: types,
presets, data formatters, the qr-code-styling option mapping, and the
share-link codec. It renders nothing and its tsconfig omits the DOM lib, so a
stray window is a type error. The app consumes its TypeScript source
directly — there is no build step for the package. tools/* is reserved in
the workspace globs for later.
- React 19 + TypeScript
- Vite+ (dev server, build, lint, format, type checks)
- Bun (package manager, workspaces)
- Tailwind CSS v4
- Vitest (unit tests) and Playwright (E2E testing)
- qr-code-styling
- Vite+ (
vpCLI; manages Node.js and the package manager) - Bun 1.3+
- just (optional, for convenience commands)
vp installjust run # or: vp run web#devOpen http://localhost:5173 in your browser.
just build # or: vp run web#buildThe built files will be in apps/web/dist/. Preview with vp run web#preview.
This project uses just as a command runner. See available commands:
just --listjust lint # Format, lint, and type-check with auto-fix
just lint-ci # Check-only mode (what CI runs)just test # Core unit tests + the full Playwright suite
vp run '@frontsail/qr-core#test' # Unit tests only
vp run web#test:ui # Playwright UI mode
vp run web#test:headed # Visible browserThe e2e suite starts its own dev server on port 5177 and never reuses a running one, so it can't accidentally test whatever else is on 5173.
GitHub Actions runs on every push/PR to master/main: install, lint & type-check, test, build.
Developed and maintained by FrontSail AI.
MIT
