Skip to main content

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.

Pi (published as @earendil-works/pi-coding-agent) is a coding agent that Synara treats as an unopinionated harness — Synara does not impose permissions or plan-mode semantics on top of it. What you get is a direct integration where Synara manages the thread lifecycle and checkpoint system while Pi handles the actual coding work.
Pi is the only built-in Synara provider that ships with an empty default model list. All models are discovered at runtime or added via customModels, so the model picker will be empty until you supply at least one slug or the Pi agent reports its available models.

Prerequisites

The pi CLI binary must be installed. Install it via the package registry for @earendil-works/pi-coding-agent and ensure the binary is available on your PATH, or supply the full path via binaryPath.

Configuration

Provider settings live in the providers.pi block of your Synara settings.json. See Configuration: Settings for the full settings file reference.
enabled
boolean
default:"true"
Enables or disables the Pi provider. When false, Synara will not invoke the pi binary.
binaryPath
string
default:"pi"
Path to the pi executable. Accepts a bare binary name resolved from PATH or an absolute path.
agentDir
string
default:""
Custom directory for the Pi agent’s working data. When empty, Pi uses its built-in default location. Override this if you want to isolate Pi’s state — for example when running multiple Synara workspaces on the same machine.
customModels
string[]
Model slugs to display in Synara’s model picker. Because Pi has no built-in static model list, you must supply at least one entry here (or Pi must report models at runtime) before you can select a model for a new thread.

Thinking levels

Pi exposes a thinkingLevel option that controls how much internal reasoning the agent performs before responding. The full set of valid values, sourced from the contracts layer, is:
ValueDescription
offNo internal reasoning — fastest, lowest cost.
minimalBare-minimum reasoning pass.
lowLight reasoning.
mediumBalanced reasoning and speed.
highDeep reasoning for complex tasks.
xhighMaximum reasoning depth — slowest, highest quality on hard problems.
You choose the thinking level per-thread when starting a turn, not in settings.json. The value is passed to the Pi agent as part of PiModelOptions.
For routine edits and quick fixes, off or minimal keep response times short. Switch to high or xhigh when working through architectural decisions or debugging subtle bugs.

Pi as an unopinionated harness

Unlike other Synara providers, the Pi adapter does not layer additional permission prompts or plan-mode flows on top of the agent. Synara still provides its own approval system at the orchestration layer, but Pi itself is given full latitude to operate. This makes Pi a good fit for workflows where you want maximum agent autonomy with Synara’s checkpointing and thread management on top.
Because Synara does not restrict Pi’s tool access at the adapter level, consider running Pi threads in Synara’s approval-required runtime mode if you want to review tool calls before they execute. See Configuration: Settings for runtime mode options.

Example settings.json

{
  "providers": {
    "pi": {
      "enabled": true,
      "binaryPath": "pi",
      "customModels": ["pi-default"]
    }
  }
}

Build docs developers (and LLMs) love