A native macOS companion app for OpenClaw β your AI agent's mission control.
ClawK (sounds like "clock" ππ¦) is a menu bar app that gives you real-time visibility into your OpenClaw agent β sessions, heartbeats, memory, cron jobs, and more.
- Active Sessions β all running conversations with token counts, models, and last activity
- Active Subagents β monitor background agent tasks in real-time
- Heartbeat Monitor β timeline graph of agent health checks with status history
- Model Usage β universal token tracking for any AI provider (Claude, GPT, Gemini, etc.), with Claude-specific quota tracking for Claude users
- Upcoming Crons β scheduled jobs and when they fire next
- Recent Activity β latest cron run results with durations and status
- System Status β gateway connection, uptime, version info
- File Browser β navigate your agent's full memory tree with tiered storage (hot/warm/cold/archive)
- File Preview β syntax-highlighted markdown preview with rendered output
- 3D Visualization β interactive 3D map of your memory embedding space (Three.js)
- Search β search across memory files with results highlighting
- Memory Not Configured β guided onboarding page if no memory system is detected, explaining setup steps and benefits
- Context Pressure β monitor how full your agent's context window is with visual progress bars
- Memory Files Status β file health, size, token counts, and staleness indicators
- Archive Health β tier distribution and storage stats across hot/warm/cold/archive
- Curation Schedule β tracks automated memory maintenance crons (or shows setup guidance if none configured)
- Memory Activity β recent memory searches, writes, and most active files
- Canvas Status β see if a canvas is currently presented, its URL, and dimensions
- Canvas Controls β present URLs, hide canvas, take snapshots
- JavaScript Execution β run JS code directly on the canvas with result display
- Gateway Configuration β URL, token, connection status with live testing
- Auto-discovery β finds your OpenClaw installation automatically
- Setup Wizard β guided first-run experience with gateway token input and validation
- About β version info, app details
- βJ Message Composer β send messages directly to your agent session from the menu bar
- Connection Status Banner β persistent banner showing gateway connection state across all views
- Auto-reconnect β polls gateway and recovers automatically when connection is restored
- macOS 14.0 (Sonoma) or later
- OpenClaw installed and running
brew install --cask fraction12/tap/clawkgit clone https://github.com/fraction12/ClawK.git
cd ClawK
xcodebuild -project ClawK.xcodeproj -scheme ClawK -configuration Release buildThe built app will be in build/Build/Products/Release/ClawK.app. Copy it to /Applications/.
- Launch ClawK β it lives in your menu bar (π¦)
- The setup wizard will auto-detect your OpenClaw installation
- Paste your gateway token (find it at
~/.openclaw/gateway.token) - You're connected!
ClawK/
βββ ClawKApp.swift # App entry point, lifecycle
βββ AppState.swift # Global state (sessions, crons, heartbeat, canvas)
βββ MenuBar/
β βββ MenuBarManager.swift # NSStatusItem, hover popover, window management
β βββ MainWindowView.swift # Navigation split view, tab routing
βββ Views/
β βββ MissionControlView.swift # Main dashboard with all status cards
β βββ CanvasView.swift # Canvas monitoring and controls
β βββ SettingsView.swift # Gateway config, about, setup wizard trigger
β βββ WelcomeView.swift # First-run setup wizard (3-step onboarding)
β βββ ConnectionStatusBanner.swift # Persistent connection state banner
β βββ SendMessageView.swift # βJ message composer
β βββ ClawKStatusCard.swift # Heartbeat monitor with timeline chart
β βββ ContentView.swift # Root content view
β βββ QuickActionsView.swift # Quick action shortcuts
β βββ Memory/
β β βββ MemoryBrowserView.swift # File tree browser with tier sections
β β βββ MemoryVitalsView.swift # Memory health dashboard
β β βββ MemoryFilePreviewView.swift # Markdown preview with syntax highlighting
β β βββ MemorySearchResultsView.swift # Search results display
β β βββ MemoryNotConfiguredView.swift # Onboarding for users without memory system
β β βββ MemoryTierComponents.swift # Tier section UI components
β β βββ Memory3DVisualizationView.swift # 3D embedding space visualization
β βββ Components/
β βββ CustomHeartbeatChart.swift # Timeline chart for heartbeat history
β βββ ChartData.swift # Chart data models
β βββ EnhancedQuickStatsView.swift # Stats display components
βββ ViewModels/
β βββ MemoryViewModel.swift # Memory browser state and file loading
βββ Services/
β βββ AppConfiguration.swift # Auto-discovery, paths, gateway config
β βββ GatewayClient.swift # HTTP client for OpenClaw gateway API
β βββ GatewayConfig.swift # Token management, gateway URL
β βββ HeartbeatService.swift # Heartbeat polling and status tracking
β βββ HeartbeatHistoryService.swift # Heartbeat timeline history from JSONL
β βββ MemoryService.swift # Memory file scanning, tier classification
β βββ QuotaService.swift # Claude usage quota tracking (optional)
βββ Models/
β βββ SessionInfo.swift # Session data model
β βββ CronJob.swift # Cron job data model
β βββ HeartbeatModels.swift # Heartbeat, context pressure, curation models
β βββ MemoryModels.swift # Memory file, tier, activity models
β βββ ModelInfo.swift # AI model metadata
β βββ QuotaModels.swift # Claude quota data models
β βββ CostEstimator.swift # Token cost estimation
βββ DesignSystem/
βββ Colors.swift # Color tokens and semantic colors
βββ Typography.swift # Font system (.ClawK namespace)
βββ Spacing.swift # Spacing tokens and layout constants
βββ DesignSystem.swift # View modifiers and shared styles
βββ Components/
βββ DSCard.swift # Card container with status variants
βββ DSHeader.swift # Page headers with timestamps
βββ DSStatusBadge.swift # Connection and status badges
βββ DSListItem.swift # Standardized list row components
βββ DSEmptyState.swift # Empty state placeholders
βββ DSSkeleton.swift # Loading skeleton animations
βββ DSRefreshButton.swift # Animated refresh button
ClawK connects to your local OpenClaw gateway (default: http://127.0.0.1:18789) via its REST API. It polls for session data, cron jobs, and system status at regular intervals. The app uses auto-discovery to find your OpenClaw installation β detecting the config file, workspace path, and gateway URL automatically.
ClawK is designed to be transparent about what it accesses:
- Gateway API (localhost only) β All core functionality talks to your local OpenClaw gateway. No data leaves your machine.
- Claude Quota Tracking (opt-in, Claude users only) β If you use Claude as your AI provider, the Model Usage card reads Claude Desktop's encrypted cookies from
~/Library/Application Support/Claude/Cookiesto fetch your usage quota fromclaude.ai/api. This data is used solely to display your quota status and is never stored or transmitted elsewhere. - CDN Requests (Memory Browser only) β The Memory Browser's file preview and 3D visualization features load JavaScript libraries from
cdnjs.cloudflare.comandcdn.jsdelivr.net(highlight.js, marked.js, three.js). These are standard open-source CDN-hosted libraries. No user data is sent to these CDNs.
Contributions welcome! Please open an issue first to discuss what you'd like to change.





