The missing GUI for NATS.io — Monitor messages, manage JetStream, control KV stores, all from your browser.
🎯 Zero Config • 🚀 Real-time Everything • 📊 Built for DevOps • 🔌 WebSocket Native
Stop juggling CLI commands. NATS UI gives you:
✅ See Everything — Real-time message flow, server metrics, stream health at a glance
✅ Control Everything — Publish, subscribe, create streams, manage consumers from one place
✅ Debug Everything — Message inspector, header viewer, JSON formatter built-in
✅ No Setup Required — Just point to your NATS server and start working
Perfect for:
- 🚀 Development — Debug messages and test publishers locally
- 📊 Operations — Monitor production streams and consumer lag
- 📚 Learning — Understand NATS concepts visually
Get up and running in 30 seconds:
# Download and run NATS + UI with one command
curl -O https://raw.githubusercontent.com/gastbob40/nats-ui/main/docker/docker-compose.yml
curl -O https://raw.githubusercontent.com/gastbob40/nats-ui/main/docker/nats.conf
docker-compose up -d🎉 That's it! Open http://localhost:3000 and start exploring.
- Publish messages with custom headers and payloads
- Subscribe to subjects with wildcard support
- Filter & Search through message history
- Format JSON, text, and binary payloads automatically
- Create & Configure streams with visual interface
- Monitor stream metrics and consumer lag
- Manage consumers (durable & ephemeral)
- Set retention policies and storage types
- Create KV buckets with TTL support
- Browse keys with live updates
- Edit values with syntax highlighting
- Track revision history
- Live Metrics — Connections, messages/sec, bandwidth
- Health Status — Server state and cluster info
- Resource Usage — Memory, CPU, storage
- JetStream Stats — Streams, consumers, messages
- Monitor consumer status and lag in real-time
- View delivery counts and acknowledgments
- Manage durable and ephemeral consumers
- Track processing performance and errors
- Connect to multiple NATS servers
- Configure WebSocket and HTTP endpoints
- Customize refresh intervals and timeouts
- Theme support (Light/Dark/System)
The project includes a ready-to-use Docker Compose setup with optimized NATS configuration:
# Clone the repository (or just download docker-compose.yml and nats.conf)
git clone https://github.com/gastbob40/nats-ui.git
cd nats-ui/docker
# Start everything
docker-compose up -dThis setup includes:
- NATS Server with JetStream enabled and optimized configuration
- NATS UI connected automatically
- Persistent storage for streams and messages
- Health checks and auto-restart
Ports exposed:
3000- NATS UI Web Interface4222- NATS Client connections8222- NATS HTTP Monitoring API9222- NATS WebSocket connections
If you have an existing NATS server, just run the UI:
docker run -d \
--name nats-ui \
-p 3000:3000 \
ghcr.io/gastbob40/nats-ui:latestThen configure the connection in the UI settings to point to your NATS server.
NATS UI requires 3 ports from your NATS server:
| Port | Purpose | Required |
|---|---|---|
| 4222 | NATS client connections | ✅ |
| 8222 | HTTP monitoring API | ✅ |
| 9222 | WebSocket for real-time | ✅ |
The UI will auto-connect to localhost by default. To connect to a different server, use the Settings page in the app.
- NATS Server 2.9.0 or higher
- Docker (for containerized deployment)
- Modern browser with WebSocket support
Frontend:
- React 19 - Modern React with concurrent features
- TypeScript - Type-safe JavaScript with strict configuration
- Tailwind CSS v4 - Utility-first CSS framework with Vite plugin
- shadcn/ui - High-quality, accessible React components
- Radix UI - Unstyled, accessible UI primitives
- Lucide React - Beautiful & consistent icon library
Build & Tooling:
- Vite - Next-generation frontend build tool
- pnpm - Fast, disk space efficient package manager
NATS Integration:
- nats.ws - WebSocket-based NATS client for browsers
- @tanstack/react-query - Powerful data synchronization
State & Routing:
- React Router v7 - Declarative routing for React
- next-themes - Perfect dark mode support with system detection
- React Hook Form + Zod - Type-safe form validation
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
You are free to:
- ✅ Use commercially
- ✅ Modify and distribute
- ✅ Use privately
- ✅ Sublicense
Requirements automatically enforced:
- 🔒 Must retain copyright notice in source code
- 🔒 Must include license in binary distributions
- 🔒 Cannot use project name for endorsement without permission
Built for the NATS community
Report Bug •
Request Feature •
Learn NATS





