Annotate Screens, Then Let AI Build Your UI
A visual annotation tool that transforms screenshots into structured JSON specifications for AI-powered UI development. Perfect for bridging the gap between design and AI code generation.
When using AI agents like Claude Code to generate UI from screenshots:
- Component selection is imprecise — AI guesses which components to use
- Layout intentions get lost — Positioning and spacing become approximations
- Element semantics are unclear — Input fields, buttons, and actions get misidentified
- Field specifications are missing — Names, types, and validation rules remain unknown
UI Annotator lets you draw bounding boxes directly on screenshots and annotate each element with semantic information. The result is a structured JSON file that tells AI agents exactly what to build.
- Import — Drop a screenshot into the canvas
- Annotate — Draw boxes around UI elements
- Specify — Define component types, field names, and properties
- Export — Generate JSON or AI-ready prompts with precise coordinates and metadata
AI agents receive deterministic specifications instead of ambiguous images.
- Intuitive canvas with zoom and pan controls
- Bounding box drawing with resize handles
- Layer management with visibility toggles
- Component type selection and property editing
- Import component definitions from Storybook
- Export as JSON or AI-ready prompts
- Undo/redo support
- Keyboard shortcuts for power users
- Privacy-first — All data stays local; no uploads to external servers
- Bun v1.0 or later
git clone https://github.com/ytori/ui-annotator.git
cd ui-annotator
bun installbun run devOpen http://localhost:3001 in your browser.
bun run build- Base: Better-T Stack
- Framework: React 19 + TypeScript
- Routing: TanStack Router
- Canvas: Konva / React-Konva
- State: Zustand with Immer
- Styling: Tailwind CSS 4
- UI Components: shadcn/ui + Radix UI
- Build: Vite + Bun
- Linting/Formatting: Ultracite (Biome)
ui-annotator/
├── apps/
│ └── web/ # Main application
│ └── src/
│ ├── app/ # Pages, hooks, providers
│ ├── features/ # Feature modules (isolated)
│ ├── components/# Shared UI components
│ ├── lib/ # Utilities
│ └── types/ # Type definitions
└── docs/ # Documentation
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with modern web technologies and designed for the AI-assisted development workflow.
