Hands-free AI agent creation powered by Opus 4.6 and Flutter genUI.
Speak to create, configure, and interact with AI agents through dynamically generated UIs. No typing, no JSON editing, no code.
- Speak -- tell clawfree what agent you want ("Create a Telegram bot that summarizes my GitHub notifications")
- See -- Opus 4.6 generates an interactive configuration UI in real-time via the A2UI protocol
- Refine -- continue speaking to adjust settings, Opus updates the UI live
- Deploy -- save and your agent is live on OpenClaw, connected to 18+ messaging channels
Voice Input (STT)
β
Flutter genUI Client ββββ A2UI protocol ββββ OpenClaw Gateway
β β
Surface widgets Opus 4.6
β (reasoning +
Voice Output (TTS) UI generation)
- Flutter genUI v0.9 renders dynamic UI from A2UI JSON at runtime
- OpenClaw provides the AI gateway with 18+ messaging channels, tool execution, and agent management
- Opus 4.6 generates both conversational responses AND structured UI components in a single streaming call
- Flutter >= 3.35.7 (stable channel)
- Docker & Docker Compose (for web/gateway)
- Anthropic API key (or use demo mode)
Deploy clawfree + OpenClaw together on any Docker-compatible cloud provider (Railway, Render, Zeabur, etc.):
- Fork this repository.
- Set environment variables on your cloud provider:
ANTHROPIC_API_KEYβ your Anthropic API keyGATEWAY_TOKENβ a secret token for device pairing (e.g.,my-secret-123)
- Deploy using Docker Compose:
cd infra && docker compose -f docker-compose.prod.yml up -d
- Open the generated URL β the Onboarding Assistant starts automatically.
The production stack runs three services:
- frontend β Flutter Web served by Nginx (port 8080), proxies
/apito the gateway - openclaw β OpenClaw gateway v2026.2.9 with daemon and non-interactive mode (port 18789)
- redis β State persistence for agents and configuration
All services include health checks for zero-downtime orchestration.
The Onboarding Assistant guides you through setup with zero typing:
- Quick Start β pre-configured defaults (OpenClaw v2026.2.9, Opus 4.6, internal gateway) are presented. Say "Confirm" to launch, or "Custom" to change settings.
- Pairing β scan the QR code with your iPhone to pair devices. Say "Finished" when done.
- Ready Home β you land in the home dashboard. Say "Create a new agent" to start building, or "Manage OpenClaw" for system settings.
- Open the clawfree web dashboard.
- Say "Pair my device" or click the Pair button.
- Scan the QR Code with your iPhone (uses
clawfree://pair?token=...universal link). - The iPhone app automatically configures itself to use your private OpenClaw gateway.
- Your Apple Watch syncs settings from the iPhone automatically.
Once onboarding is complete, manage everything by voice:
| Command | What it does |
|---|---|
| "Create a new agent" | Switch to agent builder mode |
| "Update OpenClaw" | Upgrade to latest stable version |
| "Check gateway status" | Show connectivity, latency, channel health |
| "Update my API key" | Securely rotate Anthropic/gateway tokens |
| "Restart Telegram bridge" | Restart specific messaging containers |
| "Show me the last error" | Display recent gateway log entries |
| "Clear all agents" | Reset agent store for a fresh start |
| "Pair a device" | Show QR code for mobile/watch sync |
| "Connect existing" / "Link my gateway" | Connect to an existing OpenClaw gateway (URL + token) |
git clone https://github.com/dart-technologies/clawfree.git
cd clawfree
flutter pub get
flutter run -d macos --dart-define=DEMO_MODE=true# macOS (direct API)
flutter run -d macos --dart-define=ANTHROPIC_API_KEY=sk-ant-...
# Chrome (requires gateway)
cd infra && docker compose up -d && cd ..
flutter run -d chromemake help # Show all targets
make demo # Run in demo mode (no API key)
make run # Run on macOS with API key
make test # Run all 256 tests
make analyze # Run Dart analyzer (0 issues)
make qa # Launch Zero-to-One QA stack (Frontend + OpenClaw + Redis)
make stop # Stop all Docker services and clear volumes
make health # Check full stack health (Gateway + Frontend)
make gateway # Start CORS gateway (Docker)
make gateway-down # Stop gateway
make icons # Regenerate macOS app icons
make clean # Clean build artifactsFull-stack QA of the onboarding flow:
make stop # 1. Reset environment
export ANTHROPIC_API_KEY=sk-ant-... # 2. Set credentials
export GATEWAY_TOKEN=qa-pairing-secret-456
make qa # 3. Launch stack (builds frontend + gateway + redis)
# Wait 10-20s for containers to initialize
make health # 4. Verify system health
docker compose -f infra/docker-compose.prod.yml logs -f openclaw # 5. Monitor logs
# 6. Open http://localhost:8080 and walk through onboardingflutter test # 256 tests
flutter analyze # 0 issueslib/src/
βββ core/ # AI client, chat session, interaction router, prompt library
β βββ chat_session.dart # Session state + generation
β βββ gateway_client.dart # HTTP client for OpenClaw gateway (/health, /agents, /onboard)
β βββ health_poller.dart # Periodic health polling β HealthState
β βββ interaction_router.dart # A2UI event routing (sealed InteractionResult)
β βββ prompt_library.dart # System prompt text (onboarding + connect-existing path)
β βββ ... # AI client, surface manager, agent store, orchestrator
βββ ui/
β βββ chat/ # Decomposed chat widgets
β β βββ chat_input_bar.dart # Platform-adaptive input + voice + send
β β βββ chat_message_bubble.dart # Messages + context menu + animations
β β βββ chat_message_list.dart # List + empty state + suggestion chips
β β βββ chat_surface_panel.dart # Side panel + surface indicator
β β βββ chat_surface_view.dart # Surface + error boundary + shimmer
β βββ chat_screen.dart # Slim orchestrator (~267 lines)
β βββ clawfree_assets.dart # Asset path constants
β βββ clawfree_icons.dart # Platform-adaptive icon registry
β βββ theme.dart # Material 3, light/dark, Apple adaptive
βββ voice/
βββ voice_controller.dart # STTβTTS coordination
βββ voice_service_factory.dart # Service creation
βββ ... # STT/TTS interfaces + platform implementations
test/ # 256 tests (unit + widget + e2e)
infra/
βββ docker-compose.yml
βββ .env.local # ANTHROPIC_API_KEY (gitignored)
βββ gateway/ # Lightweight Node.js CORS proxy
- Streaming generation -- Opus 4.6 streams text + A2UI JSON simultaneously
- Self-correction -- invalid A2UI JSON triggers automatic retry with feedback
- Platform-adaptive theming -- Cupertino on iOS/macOS, Material on Android/web
- Adaptive layout -- phone (single column) / tablet+desktop (side-by-side at 900px+)
- Multi-turn refinement -- update existing UIs via follow-up requests (updateComponents)
- Message animations -- slide-up entrance, shimmer loading skeletons, voice pulse
- Error recovery -- retry button on failures, error boundary for render crashes
- Demo mode -- 12 cached responses covering creation, refinement, and dashboard flows
- Voice ready -- STT/TTS interfaces with platform implementations
- Agent store -- in-memory CRUD with auto-save from form submissions, export with copy
- Live gateway health -- periodic polling with 5-section health mapping (GWAY, LLM, CHAN, TOOL, VOX)
- Connect existing gateway -- skip onboarding by linking to a running OpenClaw instance (URL + token)
- Agent sync -- automatically imports agents from gateway on connect
Built for the Built with Opus 4.6 hackathon (Feb 10-16, 2026).
- Michael Chow -- Flutter genUI, infrastructure
- Roy Lin -- Voice interactions, OpenClaw integration
MIT