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?
| Goal | Guide |
|---|---|
| Dial, accept and reject from a terminal | Programmatic client |
| Observe state, send SMS or exercise silent media | Back-end automation |
| Hear microphone/speaker audio | Supply 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.