Skip to main content
Some tools act on a user’s behalf — reading their GitHub, posting to their Slack, querying their database. Those credentials are bound to the session when your backend mints it, never in the browser.
This is unrelated to the session token. That authenticates the user to SideNet; these authenticate the tools to other services.

How it works

Pass tools_auth to POST /v1/token, keyed by tool provider id:
The SDK then needs nothing — initSidenet({ auth }) carries them implicitly.
There is no browser-side equivalent. Anything a page sends alongside a session token is ignored server-side, so a client cannot substitute its own credentials.

Discovering what each provider needs

Call GET /v1/copilots/{copilotId} from your backend once. Its runtimeAuthProviders list names the fields:
Include only the providers you are actually supplying. A provider whose authFields is empty is configured server-side already and needs nothing from you.

Entry shape

Credentials are encrypted at rest, bound to the session, and injected server-side on every call. They are never returned, logged, or cached.

Changing a credential

Mint a new session with the updated tools_auth and swap it in — no teardown, and the open conversation survives:
Browser-side runtime auth was removed in v2.0.124. updateSidenetRuntimeAuth() and getSidenetRuntimeAuthProviders() no longer exist, and runtimeAuth is no longer an initSidenet() option.The RuntimeAuthProvider type is still exported — it now describes the runtimeAuthProviders entries above. RuntimeAuthCredentials is gone.