Connections: Composio and host CLIs
The instance reaches third-party tools through **connections**. There is one Settings surface for both:
- Composio — hosted toolkits, OAuth in the browser.
- Host CLI — a paired
doso-runtimeon a machine that already has a CLI such asgwsorimsg. Tokens and files stay on that host.
Product index: docs/product/00-index.md.
Composio#
- Open Settings → Connections.
- Provider Composio. Paste a project or
ck_consumer key and save. - Search the toolkit catalog, connect an app, finish OAuth, then Check status.
- Enable the capabilities the workflow should see.
Host CLI (Desktop runtime)#
CLIs that need a keyring, browser consent, or Full Disk Access cannot run inside the API container. Pair a runtime instead.
- Install the CLI on the host (example:
brew install googleworkspace-cli). Authenticate it with whatever that CLI documents (gws auth login, …). - In Settings → Connections, create a pairing code under Desktop runtimes.
- On the host:
1doso-runtime pair --server http://127.0.0.1:8080 --code <code> --name "My computer"2doso-runtime serve- Add a Host CLI connection, choose that runtime, Connect, then enable capabilities.
doso-runtime loads ~/.config/doso/runtime-manifest.json (or
DOSO_RUNTIME_MANIFEST). If the file is missing it uses the built-in gws
example. Copy crates/doso-runtime/runtime-manifest.example.json
and add another clis[] entry to declare a different executable.
HTTP is allowed only for loopback pairing; hosted instances must use HTTPS.
Optional bulk ingest#
doso-sync is a host-side helper that execs those same CLIs and POSTs
documents into /v1/content/documents. It is not a second product — it is
ingest through the API.
1cargo run -p doso-sync -- gmail --since 7d2cargo run -p doso-sync -- calendar --days 303cargo run -p doso-sync -- imessage --since 7d| Entry point | API base URL | Credential |
|---|---|---|
doso-sync | --api or DOSO_API | --api-key or DOSO_API_KEY / a dsa_… service account |
make sync-* | API_URL | inherited DOSO_API_KEY |
On a JWKS instance, prefer a service-account token over a loopback skip.
Stable URIs (idempotent):
| Source | URI |
|---|---|
| Gmail | gmail://messages/{id} |
| Calendar | gcal://events/{calendarId}/{eventId} |
| iMessage DM | imessage://messages/{guid} |
| iMessage group | imessage://chats/{id}/day/{YYYY-MM-DD} |
gws and imsg appear here only as example CLIs, not as engine special cases.