Transform claude-canvas from a demo TUI toolkit into a practical tool with real functionality, including real-time flight tracking, weather monitoring, and system monitoring.
- Make flight canvas useful with real-time flight data
- Add new canvas types for practical use cases
- Improve existing canvas components
- Research flight data APIs (FlightAware, AviationStack, OpenSky, etc.)
- Create flight data service with OpenSky API integration
- Implement flight lookup by flight number (callsign)
- Display real-time status (on-ground, in-air)
- Show live position tracking (lat/lon, altitude, speed, heading)
- Add flight path visualization (ASCII map)
- Search flights by route (origin/destination)
- Multi-flight tracking (watch list) - w/W keys, ★ indicator
- Auto-refresh with configurable interval (+/- keys, 5-60s)
- Push notifications for status changes (via IPC sendAlert)
- Improved ASCII map with detailed continent outlines
- Create weather service with free API (Open-Meteo)
- Current conditions display (temp, humidity, wind, conditions)
- 7-day forecast visualization
- ASCII weather icons (☀ ☁ 🌧 ⛈ ❄ etc.)
- Location search by city name (geocoding)
- Multi-location watchlist
- Real-time CPU, memory, disk usage
- Process list with sorting (by CPU)
- ASCII bar charts and sparklines
- Alert thresholds for resource warnings (CPU/memory/disk)
- Pause/resume and adjustable refresh interval
- Unified keybindings across all canvases (? for help)
- HelpOverlay component with categorized keybindings
- Canvas-to-canvas navigation (Tab key, CanvasNavigator)
- Consistent status bars with keybinding hints
- Crypto canvas - CoinGecko API prices and watchlist
- Pomodoro timer canvas
- Docker container monitor canvas
- GitHub PR/issue tracking canvas
- Network ping monitor canvas
- RSS feed reader canvas
- Log file viewer canvas
- Process manager (htop-like) canvas
- Database (SQLite) viewer canvas
- Music player control canvas (Spotify/Apple Music)
- File browser canvas
- Clipboard history manager canvas
- AI Chat interface canvas
- Bookmarks manager canvas
- Calculator canvas (scientific)
- Colors picker/palette canvas
- Habits tracker canvas
- JSON viewer/explorer canvas
- Kanban board canvas
- Markdown viewer canvas
- Password generator canvas
- Regex tester canvas
- Timer/stopwatch canvas
- Units converter canvas
- World clock canvas
- Shared FilePicker component extracted
- Git status canvas
- Calendar canvas improvements (event creation)
- Add secondary API for flight status/delays (AviationStack)
- Convert test scripts to proper bun test assertions
v1.0 COMPLETE! 33 canvas types now available.
Available canvases:
- bookmarks - Browser bookmark manager
- calculator - Scientific calculator
- calendar - Date and time picker
- chat - AI chat interface
- clipboard - Clipboard history manager
- colors - Color picker and palette generator
- crypto - Cryptocurrency prices
- dashboard - Unified multi-widget dashboard
- database - SQLite database viewer
- docker - Docker container management
- document - Document viewer/editor
- files - File browser with preview
- flight - Flight booking UI
- tracker - Real-time flight tracking
- github - GitHub PR/issue tracking
- habits - Habit tracker with streaks
- json - JSON file viewer/explorer
- kanban - Kanban board task management
- logs - Log file viewer
- markdown - Markdown file viewer
- music - Music player control
- network - Network ping monitor
- notes - Quick notes scratchpad
- password - Password generator
- pomodoro - Pomodoro timer
- process - Process manager
- regex - Regex tester
- rss - RSS/Atom feed reader
- system - System monitor
- timer - Countdown/stopwatch
- units - Unit converter
- weather - Weather forecast
- worldclock - World clock
| API | Canvas | Free Tier | Data |
|---|---|---|---|
| OpenSky | tracker | Unlimited (rate limited) | Live aircraft position/velocity |
| Open-Meteo | weather | Unlimited | Weather, forecast, geocoding |
| CoinGecko | crypto | Unlimited (rate limited) | Cryptocurrency prices |
| GitHub API | github | 60 req/hour (unauth) | PRs, issues, repos |
| Node.js os | system | Built-in | CPU, memory, network |
| ps command | system | Built-in | Process list |
| Docker CLI | docker | Built-in | Container management |
| AppleScript | music | Built-in | Spotify/Apple Music control |
| bun:sqlite | database | Built-in | SQLite database access |
| ping command | network | Built-in | Network latency |
┌─────────────────────────────────────────────────────────────┐
│ Canvas Framework │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │
│ │ Services │────▶│ Canvases │────▶│ CLI │ │
│ │ (API/data) │ │ (Ink/React) │ │ (commander) │ │
│ └─────────────┘ └──────────────┘ └─────────────┘ │
│ │ │
│ Services: │ ┌─────────────┐ │
│ - opensky.ts (flights) └─────────────▶│ IPC Server │ │
│ - weather.ts (weather) │ (Unix sock) │ │
│ - system.ts (system) └─────────────┘ │
│ - flight-service.ts │
│ │
│ Components: │
│ - HelpOverlay (unified keybindings) │
│ - CanvasNavigator (switch between canvases) │
│ - CanvasErrorBoundary (error handling) │
│ - FilePicker (shared file selection) │
│ │
└─────────────────────────────────────────────────────────────┘
src/services/weather.ts- Open-Meteo API integrationsrc/services/weather.test.ts- Service testssrc/canvases/weather.tsx- Weather TUI componentsrc/canvases/weather/types.ts- Type definitions
src/services/system.ts- CPU/memory/disk/process monitoringsrc/services/system.test.ts- Service testssrc/canvases/system.tsx- System monitor TUI componentsrc/canvases/system/types.ts- Type definitions
src/components/help-overlay.tsx- Unified help overlaysrc/components/canvas-navigator.tsx- Canvas switching
src/canvases/crypto.tsx+src/services/crypto.tssrc/canvases/pomodoro.tsxsrc/canvases/docker.tsx+src/services/docker.tssrc/canvases/github.tsx+src/services/github.tssrc/canvases/network.tsx+src/services/network.tssrc/canvases/rss.tsx+src/services/rss.tssrc/canvases/logs.tsx+src/services/logs.tssrc/canvases/process.tsx+src/services/process.tssrc/canvases/database.tsx+src/services/database.tssrc/canvases/music.tsx+src/services/music.tssrc/canvases/files.tsx+src/services/files.tssrc/canvases/clipboard.tsx+src/services/clipboard.tssrc/canvases/chat.tsx+src/services/chat.tssrc/canvases/notes.tsxsrc/canvases/dashboard.tsx
src/canvases/bookmarks.tsx+src/services/bookmarks.tssrc/canvases/calculator.tsx+src/services/calculator.tssrc/canvases/colors.tsx+src/services/colors.tssrc/canvases/habits.tsx+src/services/habits.tssrc/canvases/json.tsx+src/services/json.tssrc/canvases/kanban.tsx+src/services/kanban.tssrc/canvases/markdown.tsx+src/services/markdown.tssrc/canvases/password.tsx+src/services/password.tssrc/canvases/regex.tsx+src/services/regex.tssrc/canvases/timer.tsx+src/services/timer.tssrc/canvases/units.tsx+src/services/units.tssrc/canvases/worldclock.tsx+src/services/worldclock.tssrc/components/file-picker.tsx- Shared file picker componentsrc/themes/- Theme system