Synara doesn’t ship its own AI model. Instead, it wraps the AI coding agents you already have on your machine — tools like Claude Code, Codex, Gemini CLI, and others — and orchestrates them through a unified session layer. Each provider is one of those locally-installed CLIs or SDKs. Synara starts, monitors, and routes messages to each provider process on your behalf, so you can switch models, run multiple agents in parallel, and hand off context between providers without manually managing terminal sessions.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Emanuele-web04/synara/llms.txt
Use this file to discover all available pages before exploring further.
Provider kinds
Every session in Synara is backed by exactly oneProviderKind. The full list of supported providers is defined in the contracts layer:
codex
OpenAI Codex CLI. Requires the
codex binary on your PATH and a valid OpenAI authorization. Default provider when no other is specified.claudeAgent
Anthropic Claude Code CLI. Requires the
claude binary. Supports thinking tokens via maxThinkingTokens and custom launch args.cursor
Cursor agent CLI (
cursor-agent). Supports a configurable apiEndpoint for self-hosted or enterprise Cursor deployments.gemini
Google Gemini CLI. Requires the
gemini binary. Minimal additional configuration — drop in the binary and go.grok
xAI Grok CLI. Requires the
grok binary on your PATH. Configuration mirrors the Gemini provider shape.kilo
Kilo Code agent. Supports optional
serverUrl and serverPassword for connecting to a running Kilo server.opencode
OpenCode agent. Supports
serverUrl, serverPassword, and an experimentalWebSockets flag for real-time streaming.pi
Pi agent. Requires the
pi binary and optionally an agentDir pointing to your agent configuration directory.Provider session lifecycle
When Synara starts a thread, it opens a provider session for that thread. The session progresses through a well-defined set of statuses:| Status | Meaning |
|---|---|
connecting | Synara is spawning the provider process and establishing the IPC channel. |
ready | The session is live and waiting for a turn to be dispatched. |
running | A turn is actively in flight — the provider is processing a prompt. |
error | The session encountered an unrecoverable error. lastError carries the diagnostic message. |
closed | The session was stopped cleanly (user-requested or natural completion). |
OrchestrationSession tracks the current status, the active activeTurnId, and any lastError so the UI always reflects the real provider state.
Approval policy
ProviderApprovalPolicy controls when Synara pauses and asks you to review an action before the provider proceeds:
untrusted
Maximum friction. Every tool call is paused and shown to you for explicit approval before the provider can proceed. Use this when exploring an unfamiliar codebase or running a provider for the first time.
on-failure
Synara only interrupts when a tool call returns a non-zero exit code or otherwise fails. Successful operations run automatically.
on-request
The provider drives when it requests approval — Synara surfaces the request to you but does not add extra gates beyond what the provider natively asks for.
never
Fully autonomous. All provider actions are allowed without interruption. Equivalent to
--dangerously-skip-permissions in many provider CLIs. Pair with a safe sandbox mode when using this.Sandbox mode
ProviderSandboxMode constrains what the provider process is allowed to touch on disk:
| Mode | Allowed operations |
|---|---|
read-only | The provider can read files but cannot write, delete, or execute shell commands that modify state. |
workspace-write | Reads and writes are permitted within the project workspace root. Changes outside the worktree boundary are blocked. |
danger-full-access | No filesystem restrictions. The provider may read and write anywhere the OS user can. Use with caution. |
Runtime mode
RuntimeMode determines the base execution context the server is running in:
approval-required— mirrors the session into an interactive approval flow; the provider cannot proceed through tool calls without an explicitacceptoracceptForSessiondecision from the user.full-access— the default. The provider runs autonomously within the bounds of the configuredProviderSandboxMode.
RuntimeMode operates at the thread level and can be toggled mid-session via a thread.runtime-mode.set command without stopping the provider process.Model selection
Each thread carries aModelSelection that pins the provider and model for that conversation. Every provider kind has its own typed selection struct:
ModelSelection at the project level (OrchestrationProject.defaultModelSelection) and override it per-thread or even per-turn via the ThreadTurnStartCommand.
Provider discovery
Synara scans each provider’s capabilities at runtime through a discovery layer. Before a session starts, the server queries what the provider can do — which skills it exposes, which models it can list, whether it supports plugin discovery, thread compaction, or turn steering. TheProviderComposerCapabilities shape captures these flags:
ProviderListSkillsResult), native slash commands (ProviderListCommandsResult), and plugins (ProviderListPluginsResult) for the active worktree’s cwd. Results are cached and can be force-refreshed with forceReload: true.
Provider start options
Each provider exposes a typed options struct you can pass when starting a session. These map directly to CLI flags or API parameters for the underlying tool:ThreadTurnStartCommand via providerOptions or stored as defaults under settings.providers.<kind> in your settings file.
Provider setup guides
Step-by-step installation and authorization instructions for each supported provider.
Settings reference
Full reference for
settings.json including per-provider binary paths, custom models, and launch arguments.