@alpha-sdk/client is the official TypeScript client for the Alpha Camera REST API. It ships ESM + CJS bundles and has zero runtime dependencies beyond its own resource clients.
- npm:
@alpha-sdk/client - Latest:
0.3.0 - Example app:
alpha-sdk-typescript
Install
localhost:8080 (or wherever you point the client). Install the server package and start it:
ServerManager class.
Initialize
Constructor options
Common operations
List + connect a camera
Read a single property
Read every property at once
Set a property
Trigger the shutter
Pull a single live-view JPEG
liveView.enableOsd({ cameraId }):
Disconnect
Error handling
Every method rejects with a typed subclass ofAlphaSDKError:
statusCode, body (raw response), and message. Network failures and timeouts throw the base AlphaSDKError with statusCode: undefined.
Advanced
Custom request headers per call
Override the underlying fetch
Useful for proxying, caching, or test harnesses:Wire-level logging
Cancellation
Pass anAbortSignal via the per-call request options:
What’s NOT in the client
By design, the following live in recipes rather than the generated SDK:- SSE events (
/api/events,/api/cameras/{id}/events) — use nativeEventSourcein the browser, orfetch+ReadableStreamin Node 18+. - Discovery + reconnect orchestration — copy from the discovery + reconnect recipe.
Versioning
@alpha-sdk/client follows SemVer. Bumps:
- Patch — additive non-breaking changes (new optional fields).
- Minor — new endpoints or method signatures.
- Major — breaking changes.
Migrating from camera-remote-web-api
camera-remote-web-api is deprecated and will not receive updates after 1.3.7. Migration table:
| Old | New |
|---|---|
import { CameraClient } from "camera-remote-web-api" | import { AlphaSDKClient } from "@alpha-sdk/client" |
import { ServerManager } from "camera-remote-web-api/server" | import { ServerManager } from "@alpha-sdk/api" |
import { EventStream } from "camera-remote-web-api/server" | See SSE events recipe |
import { LiveViewStream } from "camera-remote-web-api/server" | See live-view polling recipe |
import { CameraManager } from "camera-remote-web-api/server" | See discovery + reconnect recipe |
client.list() | client.cameras.list() |
client.connect(...) | client.cameras.connect({ cameraId, ... }) |
client.getProperty(camId, name) | client.properties.get({ cameraId, propertyName }) |

