Registry / devops / starlink-dish

starlink-dish

JSON →
library0.2.2jsnpmunverified

TypeScript client library and CLI for the Starlink dish local gRPC API (192.168.100.1:9200). Version 0.2.2, stable, actively maintained. Fills the gap for Node.js/TypeScript developers, unlike the Python (starlink-grpc-tools), Rust (starlink-rs), and Go alternatives. Ships full TypeScript types, offers both programmatic API and CLI with mock mode for testing without hardware. Supports status, history, speed test, and reboot operations.

npm install starlink-dish
INSTALL
IMPORT
SIG · STARLINK-DISH
S
starlink-dish
devopsjavascriptv0.2.2
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

initClient
import { initClient } from 'starlink-dish'
Connects to the gRPC service at 192.168.100.1:9200 by default.
getStatus
import { getStatus } from 'starlink-dish'
Returns dish status object including throughput, SNR, and alerts.
useMock
import { useMock } from 'starlink-dish'
Enables mock mode for offline testing; call before any API function.
speedTest
import { speedTest } from 'starlink-dish'
const { speedTest } = require('starlink-dish')
ESM-only package; use dynamic import() for require().
reboot
import { reboot } from 'starlink-dish'
Reboots the dish; returns true on success.

Demonstrates connecting to a Starlink dish and using both real and mock modes.

import { initClient, getStatus, closeClient, useMock } from 'starlink-dish'; // Option 1: Connect to real dish const connected = await initClient(); if (connected) { const status = await getStatus(); console.log(`Download: ${status?.downlinkThroughputBps / 1e6} Mbps`); closeClient(); } // Option 2: Mock mode - no hardware needed useMock(); const mockStatus = await getStatus(); console.log(`Mock SNR ok: ${mockStatus?.snrAboveNoiseFloor}`);
Debug
Known issues
breakingPackage is ESM-only. CommonJS require() will fail.
fix
Use import syntax or dynamic import() in CommonJS contexts.
affects: >=0.0.0
gotchaThe CLI command is 'starlink-dish', not 'starlink' or 'dish'.
fix
Run 'npx starlink-dish status' or install globally.
affects: >=0.0.0
gotchaMock mode must be enabled before calling any API function; otherwise real gRPC connection attempted.
fix
Call useMock() as the first thing before initClient or getStatus.
affects: >=0.0.0
gotchaDefault address is 192.168.100.1:9200. If dish uses different IP, use --address flag.
fix
Use starlink-dish --address <ip>:<port> status.
affects: >=0.0.0
deprecatedNo deprecations reported as of v0.2.2.
fix
N/A
affects: none
Errors
Common errors & fixes
Error: Dynamic require of "starlink-dish" is not supported
Package is ESM-only; CommonJS require() fails.
fix
Use import { ... } from 'starlink-dish' or dynamic import('starlink-dish').
Error: 14 UNAVAILABLE: Connection failed
Cannot connect to dish gRPC service at the default IP address.
fix
Use --address to specify correct IP:port, or use mock mode via --mock.
Error: Not connected to dish
Called an API function (e.g., getStatus) before initClient succeeded.
fix
Call initClient() and check the return value before calling other functions.
Error: useMock must be called before any other function
Called useMock after calling initClient or getStatus.
fix
Call useMock() at the very start of your script.
Upgrade
Version history
0.2.2latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
10 hits · last 30 days
node
10
Resources
starlink-dish — npm install starlink-dish · libregistry