Skip to content
Install

Compatibility

Clients and API formats tested for this release.

Pentect tests its gateways with mock provider servers. Each release also installs and starts every public client launcher with the release binary. A daily workflow installs current upstream client versions so compatibility drift is visible before the next release.

Pentect currently supports four core AI coding clients: Codex CLI, Claude Code, OpenCode, and Pi. Compatibility work is focused on these four rather than on adding more client launchers. Codex App and Claude Desktop entries are separate desktop surfaces within those client families, not additional core clients.

The four protected CLI launchers supervise their native client processes while preserving normal exit status and terminal job control. On Linux, the guardian uses subreaper support, pidfds, and /proc child discovery, when available, to stop ordinary descendants even when a client gives them another process group. If those facilities are unavailable, Pentect warns and falls back to managing only the original process group; this does not impose a new minimum kernel version. On macOS, supervision is process-group based, so a client or ordinary child such as an MCP server can create another group outside that boundary.

On Windows, a kill-on-close job contains ordinary descendants of protected Codex, Claude Code, OpenCode, and Pi launches; this path must pass its Windows CI lifecycle gate before release. These are lifecycle boundaries, not a sandbox or a universal cleanup mechanism. Killing the guardian itself, an unkillable kernel wait, or an intentional OS-level containment escape can remain outside the guarantee, and cleanup of temporary files owned by the wrapper or client is not universal. Desktop launchers have separate lifecycle contracts.

ClientTestProtected launch
Codex CLI 0.149.0Real launch on Linux and all installer platformspentect codex
Claude Code 2.1.238Real launch on Linux and all installer platformspentect claude
OpenCode 1.18.20Real launch on Linux and all installer platformspentect opencode
Pi 0.84.2Real launch, npm extension, and provider discoverypentect pi or @pentect/pi
ChatGPT desktop app, Codex modeExecutable launch contract and Responses protocol tests, including computer-use screenshotspentect codex app
Claude DesktopProtocol tests; Windows current-user trust-store launch path awaiting real-account release verificationpentect claude app with explicit certificate confirmation

Release pins are separate from the daily current-client monitor. The latest successful monitor on 2026-09-03 exercised the published Pentect binary on Windows, macOS, and Linux:

ClientCurrent-client evidenceInstalled handle path
Codex CLI 0.153.0Passed on all three platformsOpenAI Responses, local shell tool arguments, cancellation recovery, and image redaction
Claude Code 2.1.259Passed on all three platformsAnthropic Messages and local Bash tool arguments
OpenCode 1.18.27Passed on all three platformsConfigured OpenAI Chat and local tool arguments
Pi 0.84.4Passed on all three platformsConfigured OpenAI Chat and local Bash tool arguments

These are compatibility observations, not retroactive changes to a release's pinned gate. The installed test uses real client binaries and a localhost provider fixture; it does not make a paid provider request.

Not implemented

These clients have status pages, but no public launcher in the current release. The proposed commands return an unknown-command error. Starting the client normally does not route it through Pentect and provides no Pentect protection.

ClientStatus page
Antigravity CLINot implemented
AiderNot implemented
Continue CLINot implemented
Cline CLINot implemented
Roo CodeNot implemented
ZedNot implemented
Goose CLINot implemented
Junie CLINot implemented
Gemini CLINot implemented

API tests cover text, streaming, completed tool calls, structured data, file links, broken data, custom gateway paths, and Codex zstd-compressed requests.

Provider contracts

LaunchContract Pentect checksNotes
pentect codexOpenAI ResponsesIncludes streaming events and completed tool calls
pentect claudeAnthropic MessagesIncludes streaming content blocks and tool use
pentect opencodeSelected OpenAI Responses, OpenAI Chat, or Anthropic Messages adapterThe current installed-client E2E uses OpenAI Chat; unrelated OpenCode providers are not implied
pentect piSelected OpenAI Responses, OpenAI Chat, or Anthropic Messages adapterThe current installed-client E2E uses OpenAI Chat; other Pi API adapters are not implied
pentect codex appResponses routes used by supported Codex mode, including documented computer_call_output screenshotsOther ChatGPT modes are outside this claim
pentect claude appSupported Claude Chat and attachment routes on a compatible app buildClaude Code should use pentect claude; Cowork and Voice are outside this claim

“Supported” means Pentect recognizes and checks the route and content shapes documented here. “Tested” means the release suite exercised them with fake secrets. It does not mean every provider model, account feature, or future client build has been tested.

The version numbers are release gates, not strict version locks. A newer client may work, but a new request or stream shape can be blocked until Pentect learns it. Run pentect update --check after a client update.

API format adapters

You can use an API adapter when a model provider does not offer OpenAI Responses or Anthropic Messages. The adapter changes the provider API into a format Pentect supports. Pentect then checks the normal client-side format.

sh
pentect codex --upstream http://127.0.0.1:8080/openai/v1
pentect claude --upstream http://127.0.0.1:8080/anthropic

Bifrost can provide both API formats. Pentect tests its /openai/v1 and /anthropic paths. LiteLLM and other gateways can also work when they offer the same APIs. Pentect does not test every gateway release.

See Custom upstreams for setup and recovery steps.

Desktop testing

Short-lived CI machines do not sign in to or drive the official desktop user interfaces. Instead, Windows, Linux, and macOS execute process-contract fixtures that validate the proxy, certificate, and isolated profile arguments, while protocol tests exercise the supported routes. Pentect therefore does not list a desktop app version as fully UI-tested. Tests use fake secrets and check that local handles are not printed.

Desktop surfaceCurrent scope
Codex AppSupported Codex mode using the Responses protocol; signed-in UI execution remains a manual release check
Claude DesktopProtocol support exists, but current build compatibility is restricted as described below
Other app modesNot claimed unless listed here

Current Claude Desktop builds on Windows reject Chromium's certificate-pin switch. Pentect instead asks before installing a session-specific public CA in the current user's trust store, launches Claude with its local proxy setting, and removes the certificate on exit. The CA private key stays process-local. Windows may also show its own Root-store security confirmation, which Pentect does not suppress or bypass. Crash residue is journaled and removed before the next protected launch. This gateway is also monitored after startup; an unexpected gateway exit terminates the protected Desktop process and releases its temporary trust state. This command reports protection as active only after Claude Desktop accepts the session certificate and establishes an inspected connection. If that does not happen within 30 seconds, Pentect warns without terminating an app that may still be waiting for login or user input. This path still requires a real-account release verification before it is listed as fully supported; use pentect claude for Claude Code when Desktop coverage is not acceptable.

Not covered

  • ChatGPT Chat, Work, and Voice routes outside supported Codex mode
  • Codex cloud tasks and the Codex Remote control channel; a Remote task is covered only if its connected-computer worker actually uses a separately verified local Pentect path
  • Remote Claude Cowork execution; Claude Voice content is not inspected (the exact Voice WebSocket can only be relayed after the user enables unknown format pass-through)
  • Independent web-search, hosted-tool, browser, and MCP connections that do not pass through a listed provider contract
  • Copilot, VS Code inline suggestions, and private traffic from other extensions
  • Test binary formats
  • Unknown future routes
  • Every provider and release behind a third-party gateway

Files referenced only by an unknown remote ID are not treated as inspected just because the surrounding JSON is valid. See Files and images for the exact upload, URL, image, and PDF boundaries.

Pentect blocks unknown or unsupported content by default. It does not claim to protect content that it cannot check. If you see this error, first try the default provider, then follow the unknown-format recovery steps.

Pentect is open source.