TypeScript WebSocket client for the Soothe daemon.
Provides a typed message protocol, session bootstrap, event helpers, and convenience RPCs for
interacting with a running soothe-daemon from Node.js.
npm install @mirasoth/soothe-client
# or
pnpm add @mirasoth/soothe-client
# or
yarn add @mirasoth/soothe-clientRequires Node.js >=19.
import { Client, bootstrapLoopSession, defaultConfig } from '@mirasoth/soothe-client';
const config = defaultConfig();
const client = new Client(config.daemonURL, config);
await client.connect();
const loopId = await bootstrapLoopSession(client, null, config);
client.on('message', (msg) => {
console.log('event:', msg);
});
await client.sendMessage({
type: 'loop_input',
loop_id: loopId,
input: 'hello soothe',
});defaultConfig() returns a Config object with sensible defaults. loadConfigFromEnv() reads
overrides from these environment variables:
| Variable | Default | Description |
|---|---|---|
SOOTHE_DAEMON_URL |
ws://localhost:8765 |
Daemon WebSocket URL |
SOOTHE_VERBOSITY |
normal |
quiet | minimal | normal | detailed | debug |
SOOTHE_MAX_RETRIES |
5 |
Reconnect attempts |
SOOTHE_DAEMON_READY_TIMEOUT_SEC |
20 |
Daemon-ready handshake timeout (seconds) |
SOOTHE_LOOP_STATUS_TIMEOUT_SEC |
60 |
Loop status wait timeout (seconds) |
SOOTHE_SUBSCRIPTION_TIMEOUT_SEC |
10 |
Subscription confirmation timeout (seconds) |
Client— WebSocket session, message I/O, request/response, RPC helpersbootstrapLoopSession,waitDaemonReady,connectWithRetries— session helperscheckDaemonStatus,fetchSkillsCatalog,fetchConfigSection— daemon RPCsencodeMessage/decodeMessage— protocol codecEvent*classes — typed event payloads (plan, explore, tacitus, tool, agent-loop)VerbosityTier,classifyEventVerbosity— verbosity filtering- Errors —
ConnectionError,DaemonError,TimeoutError
See dist/index.d.ts (published) or src/index.ts (source) for the full export list.
make help # list all targets
make install # install dependencies
make build # compile to dist/
make test # run unit tests
make verify # full pre-publish verification
make publish # publish to npm (after verify)See Makefile for the complete list of targets.
MIT — see LICENSE.