One runtime lifecycle
Model calls, tools, child work, native events and OpenTelemetry settle together. Cancellation waits for owned cleanup.
One bounded lifecycle for models, tools, policy, streaming, cancellation and traces—across a CLI, terminal, ACP and your Rust host.
pablo run "Map this repository." --no-shellOn six synthetic non-coding knowledge-work tasks, Pablo had the lowest measured CPU utilization and peak process-tree memory of Pablo, Claude Code, Codex and Pi.
Pablo is the execution layer between your application and a model. It streams a task through a typed provider, exposes only the tools your host admits, and returns one native outcome with exact accounting. It does not take over your product’s state or permission model.
Run one task, emit a machine envelope, or work from a compact interactive terminal.
Explore the terminal →02Connect an editor or application over the stable Agent Client Protocol with streamed updates.
Integrate over stdio →03Inject a provider, tracer, event sink and cancellation token into the runtime directly.
Embed the runtime →04Compose model routes, tools, policy, output contracts and telemetry in inspectable TOML.
Configure a host →Every admitted task ends as completed, cancelled, timed_out, policy_denied, limit_exceeded, or failed. Failure preserves delivery certainty, so a host can distinguish a request that was never sent from one a remote service may have received.
Prerelease status
Pablo is currently 0.1.0-dev.1 and must be built from source. Release archives, installers, signing limits and the full four-platform acceptance matrix are still in progress. The current runtime contract is intentionally versioned and may change before 0.1.