K
KernoDocs
Docs/Connecting services

Connecting services

Where to grab the credential for each connector. All are optional.

Each connector field in the wizard has a Test button. Test before saving — fast feedback if a token is wrong.

ServiceWhereNotes
Google Workspaceconsole.cloud.google.comOne OAuth client covers Calendar, Gmail, Tasks, Docs, Drive. Tokens are captured automatically when you sign in — no separate auth step.
Slackapi.slack.com/appsCreate app → OAuth & Permissions → Bot token (xoxb-…). Need channels:history, chat:write, users:read.
Linearlinear.app/settings/apiPersonal API key. Full read/write on your workspace.
Notionnotion.so/my-integrationsCreate integration → grab secret. Then share each Notion page/database with the integration.
GitHubgithub.com/settings/tokensPersonal Access Token with repo scope. Powers the Software Engineer agent in Dev Mode.
Anthropicconsole.anthropic.comRequired only for Dev Mode. Powers the Claude Sonnet 4.6 engineer agent.
Serperserper.devWeb search. Free tier covers most personal use.

Reconfigure any of these later from /admin. Tokens are encrypted at rest in the DB config store; the only place they're decrypted is in-memory at request time.

Google connectors — automatic

The Google Workspace connector is special. The same Google sign-in that authenticates you with Kerno also captures the OAuth tokens for Calendar, Gmail, Tasks, Drive, and Docs. The first sign-in's consent screen lists every scope; approve once, and every connector lights up immediately.

If you only want sign-in (no Workspace access), you can revoke individual scopes from your Google account permissions page. Kerno will skip connectors whose scopes aren't granted.

Embeddings provider

Semantic memory uses any OpenAI-compatible /embeddings endpoint. Defaults to Mistral with mistral-embed. Configure under the wizard's LLM step (or /admin → LLM):

FieldDefaultNotes
Embeddings API Key(reuses the LLM key)Only fill if your embedding provider differs
Embeddings Base URLhttps://api.mistral.ai/v1OpenAI: https://api.openai.com/v1
Embeddings Modelmistral-embedOpenAI: text-embedding-3-small

The pgvector column is fixed at 1024 dimensions. Mistral / Cohere / Voyage all return 1024 natively. OpenAI's text-embedding-3-* accept a dimensions parameter (Kerno sends 1024 automatically). text-embedding-ada-002 is 1536-only and won't work.