Harnesses overview
The coding assistants Syntax integrates with out of the box, and how the connect/disconnect lifecycle works.
A harness is the coding assistant you use day-to-day. Syntax ships with
its own Codex-based syntax-cli and integrates with four third-party
harnesses out of the box. Each one keeps using its own UX, its own
configuration file, and its own personality — Syntax just sits behind the
localhost endpoint they already talk to.
| Harness | Type | Streaming | Tool calls | Reasoning | Anthropic-compatible |
|---|---|---|---|---|---|
| Syntax CLI | Terminal (Syntax-native) | ✓ | ✓ | ✓ | ✓ |
| Codex | Terminal | ✓ | ✓ | ✓ | ✓ |
| Claude Code | Terminal / IDE | ✓ | ✓ | ✓ | ✓ (native) |
| OpenCode | Terminal | ✓ | ✓ | ✓ | ✓ |
| Pi | Terminal | ✓ | ✓ | ✓ | ✓ |
How the connect lifecycle works
Connecting any harness to Syntax follows the same lifecycle:
- Detect. Syntax checks whether the harness is installed in any of the standard locations for your OS.
- Locate config. It locates the harness's configuration file.
- Backup. It records the current configuration so it can be restored later.
- Edit. It rewrites the configuration to point at the local Bridge, and applies any harness-specific tweaks.
- Record. It writes a small ledger entry under your home directory so the change can always be undone.
syntax disconnect <agent> walks the ledger entry in reverse: restores
the original config, removes the ledger row, and the harness is back
exactly the way it was.
Connect from the CLI
syntax connect codex
syntax connect claude-code
syntax connect opencode
syntax connect piIf a harness isn't installed, the command prints the official install instructions and exits without making changes.
Connecting and disconnecting is a CLI-only flow. The Syntax CLI is the
only harness with no connect step — it ships with Syntax and is
available immediately.
What "connected" means concretely
A connected harness:
- Sends every chat request to the local Bridge instead of going directly to a provider.
- Inherits the active model policy (aliases, per-tier overrides, budgets).
- Streams tokens back in the wire format it expects.
- Can call any specialist tool the active deployment registers (when it's part of a multi-model party).
Multiple harnesses can be connected simultaneously without interfering with each other.
What this isn't
Connecting a harness to Syntax is not a fork or a plugin. The
harnesses are unmodified upstream binaries / extensions. Only their
own configuration files are edited, and only by syntax connect.
syntax disconnect is fully reversible.