- Transport
- A command-line tool driven headless on your machine · claude
- Authentication
- The CLI’s own session, Deskworth never sees a credential
- State
- an adapter exists and a real request went through
- Evidence
- a real request showed it, on that date · 2026-09-09
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- 7 models discovered from https://code.claude.com/docs/en/model-config, relevé le 2026-10-08, read 2026-10-08
- What is missing
- The manifest records no blocking limit for this entry.
- Official source
- https://code.claude.com/docs
Connect a provider
Deskworth drives the provider CLIs you sign in to yourself, under each provider’s terms. It never holds your CLI sign-in, and it never resells a model, here is exactly what that means in practice.
Shipped in the current build. You can do this on your own machine today.
Deskworth is not a model provider. It looks for the command-line tools already installed on your machine, drives them headless in isolated workspaces, and reads their output stream. The subscription is yours, the credentials are yours, and they stay where the vendor put them.
LimitEach CLI runs with your own account: an API key, or a plan where the provider’s terms allow a tool like Deskworth to drive it. Deskworth never holds your CLI sign-in, each CLI keeps its own session, never pays for or resells usage, and never signs you in on a provider’s behalf. Any key you add stays in your Mac’s Keychain.
#Four served, twelve described
The core publishes a provider manifest, and this page reads it at the commit the site was built from 1. Four adapters are served today, three CLIs and a local model endpoint. Twelve more have a written descriptor and no adapter, they appear in the matrix below so the question has an answer, not to suggest a switch is about to be flipped.
EvidenceServed and expected never share a row. The manifest states it in its own words: an expected entry means the descriptor is written and the adapter is not. A guard refuses to file one among the other.
- VERIFIEDAnthropic, the claude binaryA real request went through on 2026-09-09, and that is the only reason this row says verified. Driven headless with a fixed argument list; the sign-in page opens only when its address matches a host declared for this vendor.
- AVAILABLEOpenAI, the codex binaryAn adapter exists and a Deskworth suite covers it without touching the network. Nobody watched a live request during this pass, so this row does not claim one.
- AVAILABLEGoogle, the gemini binarySame standing as Codex: covered by tests, not proven on the wire here. It has no sign-in command to drive, the CLI reads an environment variable, or signs in from its own interface. Deskworth says that in a sentence rather than offering a button that leads nowhere.
- PLANNEDTwelve adapters reached by API key or endpointDescriptors written, adapters not. Each row in the matrix names its transport, its authentication, what the vendor announces, where that was read, and what exactly is missing.
#What Deskworth never touches
- Your vendor credentials. Sign-in happens inside the CLI; whatever it stores, it stores where it normally does.
- The raw output of a sign-in. It contains an email address, a device token, the path of a credentials file, none of it crosses into the application, and none of it is logged.
- The command line. A connection runs a fixed argument list from a registry, never a string assembled at runtime and never a shell.
EvidenceExactly one thing is allowed through from a sign-in: an address, and only if it is https, its host matches one declared for that vendor, it carries no embedded credentials, and the host matches whole, a look-alike subdomain is refused, because comparing the end of a hostname is how look-alikes get in.
#Where to go next
- Driving a CLI, the ten states of a connection, and what each one asks of you.
- Providers by API key, what exists under that name today, and what does not.
- Provider adapters, the contract a command-line tool has to satisfy to be driven at all.
#The matrix
Read from the core’s own provider manifest, at the commit this site was built from. Nothing below is written by hand: an adapter appears here the day the core describes it, and cannot appear before.
Served now, 4
- Transport
- A command-line tool driven headless on your machine · codex
- Authentication
- The CLI’s own session, Deskworth never sees a credential
- State
- an adapter exists and a real request went through
- Evidence
- a Deskworth suite covers it, without touching the network
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- 10 models discovered from ~/.codex/models_cache.json, relevé le 2026-10-08 (client 0.160.1), read 2026-10-08
- What is missing
- The manifest records no blocking limit for this entry.
- Official source
- https://developers.openai.com/codex/cli
- Transport
- A command-line tool driven headless on your machine · gemini
- Authentication
- The CLI’s own session, Deskworth never sees a credential
- State
- an adapter exists and a real request went through
- Evidence
- a Deskworth suite covers it, without touching the network
- Announced capabilities
- streaming · tool calls · structured output · vision · files · cancellation
- Models
- 6 models discovered from @google/gemini-cli 0.52.0 packages/core/src/config/models.ts, relevé le 2026-10-08, read 2026-10-08
- What is missing
- The CLI does not publish a token quota, so usage reads « unavailable ».
- Official source
- https://google-gemini.github.io/gemini-cli/
- Transport
- An OpenAI-compatible endpoint on your own machine
- Authentication
- None, the endpoint answers on the loopback address only
- State
- an adapter exists and a real request went through
- Evidence
- a real request showed it, on that date · 2026-09-16
- Announced capabilities
- streaming · tool calls
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- Loopback only, and no redirection is followed. The capabilities belong to the loaded model: one without tool calling will answer without ever calling a tool. Stopping a card releases it without interrupting the request in flight, and no token count is reported yet.
- Official source
- https://docs.ollama.com/api/openai-compatibility
Expected adapters, 12
The descriptor is written; the adapter is not. These rows exist so the question has an answer, not to suggest a switch is about to be flipped.
- Transport
- The OpenAI Responses API
- Authentication
- A key you store in the macOS keychain
- State
- the descriptor is written, the adapter is not
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- No Responses adapter is written yet: the tool bridge, the streaming parser and the keychain round-trip all remain.
- Official source
- https://platform.openai.com/docs/api-reference/responses
- Transport
- The Anthropic Messages API
- Authentication
- A key you store in the macOS keychain
- State
- the descriptor is written, the adapter is not
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The CLI covers this vendor today; the direct API adapter is not written.
- Official source
- https://docs.claude.com/en/api/messages
- Transport
- The Google Generative Language API
- Authentication
- A key you store in the macOS keychain
- State
- the descriptor is written, the adapter is not
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- No adapter: the Google dialect names its tool calls differently from OpenAI's.
- Official source
- https://ai.google.dev/gemini-api/docs
- Transport
- The Mistral chat completions API
- Authentication
- A key you store in the macOS keychain
- State
- the descriptor is written, the adapter is not
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- No adapter written.
- Official source
- https://docs.mistral.ai/api/
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A key you store in the macOS keychain
- State
- an adapter is implemented and covered by tests; no real service has answered
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The OpenAI-compatible adapter serves this endpoint; nothing has been probed here. The region prefix differs between mainland and international accounts and must be chosen by the operator.
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A key you store in the macOS keychain
- State
- an adapter is implemented and covered by tests; no real service has answered
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The OpenAI-compatible adapter serves this endpoint; nothing has been probed here. No models endpoint is documented — the operator types the model id.
- Official source
- https://docs.z.ai/
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A key you store in the macOS keychain
- State
- an adapter is implemented and covered by tests; no real service has answered
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The OpenAI-compatible adapter serves this endpoint; nothing has been probed here.
- Official source
- https://api-docs.deepseek.com/
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A key you store in the macOS keychain
- State
- an adapter is implemented and covered by tests; no real service has answered
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The OpenAI-compatible adapter serves this endpoint; nothing has been probed here.
- Official source
- https://platform.moonshot.ai/docs
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A key you store in the macOS keychain
- State
- an adapter is implemented and covered by tests; no real service has answered
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The OpenAI-compatible adapter serves this endpoint; nothing has been probed here.
- Official source
- https://docs.x.ai/
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A key you store in the macOS keychain
- State
- an adapter is implemented and covered by tests; no real service has answered
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- The OpenAI-compatible adapter serves this gateway; nothing has been probed here. Capabilities belong to the model routed to, not to the gateway — each model must be probed on its own.
- Official source
- https://openrouter.ai/docs
- Transport
- An OpenAI-compatible server your organisation hosts, reached over HTTPS
- Authentication
- A key you store in the macOS keychain
- State
- the descriptor is written, the adapter is not
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- An OpenAI-compatible server your organisation hosts — vLLM, TGI, a private gateway — reached over HTTPS with a key, outside this machine. No adapter reaches it yet: its address cannot be entered, and nothing has been probed. The capabilities belong to the model it serves.
- Transport
- An OpenAI-compatible chat completions endpoint
- Authentication
- A signed cloud request, which Deskworth does not implement
- State
- neither an adapter nor an authentication path
- Evidence
- the vendor documents it; nobody verified it here
- Announced capabilities
- streaming · tool calls · structured output · vision · files · usage reporting · cancellation
- Models
- No discovery: the operator types the model id. Reference read 2026-10-08
- What is missing
- Request signing is not implemented, and the keychain holds keys, not AWS role sessions. This entry exists to say so, not to promise it.
- Official source
- https://docs.aws.amazon.com/bedrock/
#Sources
- The provider manifest, generated by the coreDeskworthInternal document, not published
- Deskworth OS, product state at 0.0.23DeskworthInternal document, not published