Syntax

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.

HarnessTypeStreamingTool callsReasoningAnthropic-compatible
Syntax CLITerminal (Syntax-native)
CodexTerminal
Claude CodeTerminal / IDE✓ (native)
OpenCodeTerminal
PiTerminal

How the connect lifecycle works

Connecting any harness to Syntax follows the same lifecycle:

  1. Detect. Syntax checks whether the harness is installed in any of the standard locations for your OS.
  2. Locate config. It locates the harness's configuration file.
  3. Backup. It records the current configuration so it can be restored later.
  4. Edit. It rewrites the configuration to point at the local Bridge, and applies any harness-specific tweaks.
  5. 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 pi

If 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.