How bytedz/pclink works
PCLink is a web-first remote PC management server with a companion mobile client. Users connect through the browser or app, authenticate and pair a device for approval, then use permission-scoped APIs to control and inspect the host. Its major capabilities include peripheral and media control, file/process exploration, terminal access, screen streaming, and extensions. The graph reflects README capabilities and the sampled entry-point, controller, WebSocket, device, and UI code; unsampled route-to-service wiring is omitted where uncertain.
Main entry points: websocket_routes.py WebSocket routes · routers Management routes · api.py FastAPI server · router.py Web UI router
Components 21
Clients and server
- Application startup
src/pclink/main.py - Server controller
src/pclink/core/server_controller.py - FastAPI server
src/pclink/api_server/api.py - Web UI router
src/pclink/web_ui/router.py
Identity and access
- Web authentication
src/pclink/core/web_auth.py - API middleware
src/pclink/api_server/middleware.py - Pairing routes
src/pclink/api_server/routers/pairing.py - Device manager
src/pclink/core/device_manager.py
Remote management
- Management routes
src/pclink/api_server/routers - WebSocket routes
src/pclink/api_server/routers/websocket_routes.py - Connection manager
src/pclink/api_server/ws_manager.py
Host capabilities
- Peripheral input
src/pclink/services/input_service.py - System information
src/pclink/services/system_service.py - Files and transfers
src/pclink/services/file_service.py - Remote terminal
src/pclink/services/terminal_service.py - Media control
src/pclink/services/media_service.py
Streaming and extensions
- Desktop streaming
src/pclink/services/desktop_streaming_service.py - Extension manager
src/pclink/core/extension_manager.py
Other components
- Web browser
- Mobile app
- Managed PC
Connections 29
- Web browser → Web UI router: opens UI
- Web UI router → Web authentication: validates session
- Web browser → FastAPI server: uses HTTPS API
- Mobile app → FastAPI server: connects
- FastAPI server → API middleware: checks requests
- FastAPI server → Web UI router: serves UI
- Mobile app → Pairing routes: requests pairing
- Pairing routes → Device manager: registers device
- Web browser → Management routes: manages PC
- Management routes → Device manager: checks device access
- WebSocket routes → Device manager: checks permissions
- WebSocket routes → Connection manager: manages connections
- WebSocket routes → Peripheral input: dispatches input
- WebSocket routes → Media control: dispatches controls
- WebSocket routes → System information: reads telemetry
- WebSocket routes → Desktop streaming: requests keyframes
- Management routes → Files and transfers: handles file operations
- Management routes → Remote terminal: handles shell access
- Management routes → System information: handles system queries
- Management routes → Extension manager: manages extensions
- Application startup → Server controller: starts
- Server controller → FastAPI server: runs server
- Peripheral input → Managed PC: controls peripherals
- System information → Managed PC: reads host state
- Files and transfers → Managed PC: browses files
- Remote terminal → Managed PC: runs commands
- Media control → Managed PC: controls playback
- Desktop streaming → Managed PC: captures display
- Extension manager → Managed PC: extends capabilities