Wiretext is a Unicode-first wireframing canvas for building UI mockups and diagrams with box-drawing characters. Design visually, then export clean text for docs, markdown, issues, and PRs.
- Pencil + Eraser workflow: freehand sketching with
Pencilplus cleanup passes withEraser - Smart alignment guides and snapping while moving and resizing objects
- Layer grouping workflow (
Group/Ungroup) with better ordering controls - Connector improvements with object anchors and routed connector paths
- Drawing tools: Select, Box, Text, Line, Arrow, Connector, Pencil, Eraser
- Drawer mode for fast ideation: sketch organic shapes and refine quickly
- 30+ UI components: input, layout, and display building blocks
- Layer-aware editing: create layers from selection, move items between layers, reorder layers
- Power editing: marquee select, resize handles, undo/redo, copy/cut/paste, duplicate
- Export formats: plain text, Markdown, HTML, and GitHub-ready collapsible snippets
- Share links: compressed URL payloads via
lz-string - Persistent preferences: theme, sidebar state, component visibility, smart guides
React 19+TypeScriptVite 7Tailwind CSSlz-string
- Node.js 18+
- npm (or your preferred package manager)
npm installnpm run devOpen http://localhost:5173.
npm run buildnpm run previewnpm run lint| Key | Action |
|---|---|
V |
Select tool |
B |
Box tool |
T |
Text tool |
L |
Line tool |
A |
Arrow tool |
C |
Connector tool |
N |
Pencil tool |
E |
Eraser tool |
P |
Toggle toolbar collapse |
Delete / Backspace |
Delete selection |
Ctrl/Cmd + Z |
Undo |
Ctrl/Cmd + Shift + Z |
Redo |
Ctrl/Cmd + C |
Copy |
Ctrl/Cmd + X |
Cut |
Ctrl/Cmd + V |
Paste |
Ctrl/Cmd + D |
Duplicate |
Ctrl/Cmd + A |
Select all |
Ctrl/Cmd + G |
Group selection |
Ctrl/Cmd + Shift + G |
Ungroup to default layer |
] |
Bring selection forward |
[ |
Send selection backward |
Cmd + ] |
Bring selection to front |
Cmd + [ |
Send selection to back |
Escape |
Return to Select tool |
src/
├── components/ # Canvas, toolbar, panels, modals
├── hooks/ # useCanvas, useSettings, useKeyboard, useShareUrl
├── types/ # Tool/object/component definitions
├── utils/ # Unicode rendering and canvas math
├── App.tsx
└── main.tsxMIT - see LICENSE.