The Client SDK is a community-built developer tool and is not officially supported by Sony. Only the Camera Remote SDK (C++/C#) is an official Sony product.
camera-remote-web-api) is a TypeScript package that wraps the Camera Remote Web API. It offers two ways to interact with cameras:
- Stateless —
CameraManagerhandles discovery, connection, reconnection, and state tracking automatically. Most users should start here. - Stateful — Import
CameraClient,EventStream,LiveViewStream, andServerManagerindividually for full manual control over the connection lifecycle.
Quick Start
Install, capture a photo, and run it — in under 5 minutes
Compatibility
Per-camera API support, connection modes, and OS compatibility
Stateless vs Stateful
| CameraManager (Stateless) | Individual Classes (Stateful) | |
|---|---|---|
| State | Managed for you | You own and manage all state |
| Connection lifecycle | Automatic — discovery, connect, reconnect | Manual — call connectCamera() and wait for SSE callback |
| Server binary | Managed internally | You spawn and stop ServerManager yourself |
| Event subscriptions | manager.on() for lifecycle events | Wire up EventStream per camera |
| Camera selection | All cameras auto-connected | You choose which cameras to connect |
| Best for | Most applications | Custom connection managers, selective camera control, browser-only clients |
Stateless: CameraManager
CameraManager is the only class most users need. It abstracts three concerns:
- Camera state management — discovery, connection, reconnection, and state tracking happen automatically
- Server binary management — spawns and monitors the native binary (server variant only)
- Typed camera control — property read/write, shutter/focus/zoom actions, live view, and SD card access via
manager.client
CameraManager
Options, connection modes, and the full CameraManager API
System Design
Browser vs server variants and framework patterns
Stateful: Individual Classes
For advanced use cases, import the individual classes that CameraManager uses internally. This gives you full control over the connection lifecycle, event subscriptions, and binary management.CameraClient
Typed HTTP client for all endpoints
EventStream
SSE client for real-time camera notifications
LiveViewStream
WebSocket client for continuous JPEG streaming
ServerManager
Low-level binary process manager
Client SDK vs HTTP API
| Client SDK | HTTP API | |
|---|---|---|
| Type safety | Full TypeScript types for all operations | Raw JSON request/response |
| SSE events | Built-in subscription via manager.on() and EventStream | Manual SSE client setup |
| Language | TypeScript/JavaScript only | Any language with HTTP support |

