How itegin/it-deck works
IT-Deck turns a phone browser into a Windows PC control deck, with Studio on the PC for configuring tiles, decks, and access. The main runtime flow is phone interaction → backend command routing → Windows agent action → reported state back to connected clients. The README documents Studio editing, widgets, quick launch, themes, and multiple decks; these are included, though their complete backend wiring was not sampled. The launcher’s startup role is documented in its excerpt.
Main entry points: main.py HTTP and WS app · windows/agent.py Agent runtime · ws/agent.py Agent connection handler · app.js Deck interface
Components 26
Phone deck
- Deck interface
frontend/js/app.js - Deck rendering
frontend/js/render.js - WebSocket client
frontend/js/ws.js - Live widgets
frontend/js/widgets/index.js
Backend service
- HTTP and WS app
backend/app/main.py - Client command handler
backend/app/ws/client.py - Agent connection handler
backend/app/ws/agent.py - Connection hub
backend/app/ws/hub.py - Workspace and item APIs
backend/app/api/workspaces.py - Tile APIs
backend/app/api/items.py - Agent query APIs
backend/app/api/agents.py - Access settings API
backend/app/api/access.py
Windows agent
- Agent runtime
agents/windows/agent.py - Command dispatch
agents/windows/dispatch.py - PC action handlers
agents/windows/handlers - State polling
agents/windows/poller.py - App and icon queries
agents/windows/handlers/apps.py
Studio editor
- Studio editor
frontend/js/studio.js - Deck preview
frontend/js/studio-preview.js - Studio API client
frontend/js/api.js
Persistence and state
- Deck database
backend/app/db.py - Deck data model
backend/app/models.py - PC launcher
standalone/launcher.py
Other components
- Phone user
- Weather service
- Windows PC
Connections 34
- Phone user → Deck interface: uses
- Deck interface → Deck rendering: renders decks
- Deck interface → WebSocket client: sends commands
- Deck interface → Live widgets: mounts widgets
- Live widgets → Weather service: fetches weather
- WebSocket client → HTTP and WS app: opens socket
- HTTP and WS app → Client command handler: routes client WS
- HTTP and WS app → Agent connection handler: routes agent WS
- Client command handler → Deck data model: loads tile
- Client command handler → Connection hub: dispatches command
- Connection hub → Agent connection handler: forwards messages
- Agent connection handler → Connection hub: registers agent
- Windows PC → Agent runtime: runs on
- Agent runtime → HTTP and WS app: connects to
- Agent runtime → Command dispatch: dispatches commands
- Command dispatch → PC action handlers: invokes actions
- Agent runtime → State polling: polls PC state
- State polling → Agent runtime: reports state
- Agent connection handler → WebSocket client: broadcasts state
- Studio editor → Deck preview: updates preview
- Studio editor → Studio API client: requests edits
- Studio API client → HTTP and WS app: calls HTTP APIs
- HTTP and WS app → Workspace and item APIs: routes workspace requests
- HTTP and WS app → Tile APIs: routes tile requests
- HTTP and WS app → Agent query APIs: routes agent queries
- HTTP and WS app → Access settings API: routes access requests
- Workspace and item APIs → Deck data model: reads decks
- Tile APIs → Deck database: writes tiles
- Deck data model → Deck database: reads deck data
- Agent query APIs → Connection hub: requests agent work
- Agent query APIs → App and icon queries: queries apps and icons
- App and icon queries → Agent connection handler: requests agent query
- PC launcher → HTTP and WS app: starts backend
- PC launcher → Agent runtime: starts agent