How to read this page
“Implemented” means the code path exists. “Tested” means an automated test exists and passed locally. “Verified” is reserved for the environment named in the claim. “Unverified” means the adapter exists but the real external service was not exercised.
This is a compatibility page. Each edge is labeled by the evidence behind it.
Support matrix
Model
OpenAI-compatible provider
Chat completions with tool calling. Tested against a fake HTTP server; no live provider call.
Model
Local OpenAI-compatible endpoint
Loopback HTTP is allowed. Useful for local models that expose a compatible API. No live endpoint is bundled.
Channel
Telegram Bot API
Long polling, private chats only, pairing required, groups ignored. Tested against a fake Bot API.
Channel
CLI
Local commands for init, serve, status, chat, sessions, approvals, doctor, and secrets.
Runtime
Gateway HTTP API
Loopback JSON API with bearer auth. The CLI is a client. Endpoint coverage is tested at the handler level.
Runtime
SQLite with FTS5
WAL mode, integrity check on startup, derived search index, rebuild through doctor --repair.
Runtime
Docker sandbox contract
Fail-closed when Docker is unavailable. No execution tool and no escape test suite.
Runtime
Encrypted vault
Argon2id and AES-GCM. New writes use the DreenMind AAD; legacy vault reads are supported.
OS
Linux
Primary target. Cross-build and local tests are part of the verification path.
OS
Windows
Builds and tests run locally. Untrusted execution remains disabled.
Unsupported
MCP
No MCP client or server. Tool loading is static and deny-by-default.
Unsupported
Native Anthropic API
The provider contract is OpenAI-compatible. A native Anthropic adapter is not implemented.
Unsupported
Slack, Discord, email
No additional channels. Telegram is the only optional network channel.
Unsupported
Streaming responses
Provider responses are non-streaming. The CLI does not render token-by-token output.
Unsupported
Embeddings and vector memory
Search is FTS5. There is no embedding pipeline or semantic recall.
Unsupported
Images and audio
No multimodal input or output. The provider contract is text and tool calls.
Unsupported
Telegram groups
Group and channel chats are ignored. Pairing only applies to private chats.
Unsupported
Multi-user and remote nodes
One operator, one gateway, one state owner. No shared tenancy or remote worker fleet.
What an integration must prove
- Authentication: who can call it, and what happens when the credential is missing or wrong.
- Failure model: timeout, retry, partial output, and what the gateway records.
- Data boundary: what leaves the machine, and what is stored locally.
- Test evidence: a deterministic test where possible, and a named environment where not.
- Status label: implemented, tested, verified, unverified, partial, or planned.
An integration without those five answers is a demo, not a supported edge.
Provider behavior
The provider adapter speaks OpenAI-compatible chat completions with tool calling. Requests have a 60-second timeout. The default maximum output is 1024 tokens. Errors are sanitized before they are recorded.
There are no automatic retries, no idempotency keys, and no streaming. A failed provider call becomes a recorded failure, not a silent second attempt. The model name is configuration, not a guarantee of capability.
Telegram behavior
The adapter uses long polling. It accepts private chats only. A chat must be paired before messages are processed. Pairing codes are short-lived, limited to three active codes, and protected by an attempt limit.
Duplicate updates are suppressed for seven days. Replies are plain text and chunked under the Bot API message limit. Approval decisions are not exposed as Telegram buttons; use the CLI or HTTP API. The live Bot API has not been exercised.
Failure behavior
| Failure | Behavior |
|---|---|
| Provider error or timeout | Recorded as a failed turn; the raw provider body is not trusted. |
| Tool timeout | Recorded as a tool error; no silent retry. |
| Approval timeout | The call is denied after the 60-second wait. |
| Sandbox unavailable | The sandbox path fails closed; no host fallback. |
| Database corruption | Startup integrity check fails; the gateway does not reset state. |
| Search index damaged | Search is degraded until doctor --repair rebuilds it. |
| Gateway not running | CLI requests fail; they are not queued in memory. |