Skip to main content

Go SDK

The Go client (bcclient) mirrors AgentView, sends typed intents, and supports pluggable WebRTC media. Use it for terminal tools and services.

Install

These pages describe the current source API. The public github.com/babelforce/babelconnect-sdk-go release v0.1.0 predates the Connect transport and cannot connect to current servers. Obtain a matching SDK and generated protocol module from babelforce before using these examples; go get github.com/babelforce/babelconnect-sdk-go alone does not supply that API.

Current source requires Go 1.25+. Its module path is github.com/babelforce/babelconnect-sdk-go (package bcclient); generated messages come from github.com/babelforce/babelconnect-proto/gen/go/babelconnect/v1.

What it does

The client opens Subscribe and sends unary Send requests over Connect / HTTP/1.1. Options.Addr is host:port; the implementation prepends http://. It has no TLS option and cannot accept an HTTPS URL. Use a trusted local tunnel or explicitly trusted network; do not send production bearer tokens over an untrusted plaintext connection.

Dial opens the subscription but does not wait for the cache's first snapshot. Its context does not cancel the long-lived stream; explicitly call Close.

Which entry point?

GoalGuide
Dial, accept and reject from a terminalProgrammatic client
Observe state, send SMS or exercise silent mediaBack-end automation
Hear microphone/speaker audioSupply a MediaFactory

Default media is cgo-free WebRTC sending PCMA silence and counting received RTP. It needs no system audio libraries, but it is still a WebRTC stack. It does not produce audible mic/speaker audio.

API reference

pkg.go.dev describes the public release, which may differ from these pages. Use the supplied source's Go documentation for current signatures, the protocol reference for messages, and TypeScript vs Go for behavior differences.

Next steps

Run the terminal example, then add authentication and recovery.