Skip to content

Releases: OdradekAI/opi

v0.5.1

15 Jun 10:15

Choose a tag to compare

v0.5.1

Package ecosystem and process-adapter runtime: installable packages, manifest V2
[adapter] process adapters speaking the opi-extension-jsonl-v1 protocol, and
example adapter packages bridging tools/commands/hooks/events/state into the
extension API.

Added

  • opi-coding-agent: --fork <session-id> plus interactive /tree, /fork, and /clone session commands that copy the active branch into a new parented session without rewriting the source JSONL file.
  • opi-agent / opi-coding-agent: RPC/SDK extension_command support for dispatching correlated custom commands to registered extension registries.
  • opi-coding-agent: config-driven OpenAI-compatible provider profiles with model metadata, compatibility flags, runtime provider construction, and registry-backed --list-models output.
  • opi-web-ui: ConversationState now tracks resource metadata from session_info responses and the last successful compaction response payload.
  • opi-coding-agent: runtime session persistence now writes meaningful parent_id links and leaf pointers so continuing from a selected branch tip creates a same-file branch path.
  • opi-coding-agent: opi package add/remove/list/doctor now validates package manifests, writes lock entries, and reports installed package diagnostics.
  • opi-coding-agent: manifest V2 supports [adapter] process adapters with the opi-extension-jsonl-v1 JSONL protocol.
  • opi-coding-agent: installed package declarations are loaded during runtime startup so adapter tools, commands, hooks, events, state, and cancellation bridge into the extension API.
  • opi-coding-agent: example adapter packages demonstrate todo state, permission-gate example hooks, and protected path hooks through a runnable process adapter.

Changed

  • opi-agent: moved the core loop implementation out of lib.rs into an internal agent_loop module while preserving the public opi_agent::agent_loop export.

Fixed

  • opi-tui: SelectList and BranchPicker now account for selected-row markers and CJK display width when aligning labels with metadata.
  • opi-coding-agent: opi package doctor now rejects invalid manifest V2 adapter declarations and reports lock/source/resource/adapter diagnostics.
  • opi-coding-agent: Adapter state snapshots are persisted in session JSONL and restored on resume.
  • opi-coding-agent: Adapter event drops are diagnostic-visible, shutdown allows a bounded graceful exit, local package identity is canonicalized, SSH git source parsing is URL-aware, and relative adapter commands cannot escape package roots.
  • opi-coding-agent: Linux build and test correctness — removed a dead Unix-only import that failed clippy/test/doc under -D warnings, and test-binary locators no longer match cargo .d dep-info siblings (which lack the execute bit and caused EACCES when spawning adapters).

Install: cargo install opi-coding-agent

v0.5.0

07 Jun 13:14

Choose a tag to compare

v0.5.0

Phase 4: extension system, RPC JSONL protocol, SDK embedding surface,
progressive resource discovery, session branching, streaming proxy,
custom provider registration, and six extension examples.

Added

  • opi-coding-agent: RPC JSONL mode with correlated responses, async agent events, session/model/thinking/compaction commands, and tool-selection support.
  • opi-agent: shared unstable SDK command/response/event types for embedders.
  • opi-agent: extension API with lifecycle hooks, custom tools, custom commands, custom messages, and extension state.
  • opi-ai: custom provider/model registry APIs used by CLI model listing and runtime validation.
  • opi-coding-agent: config-driven discovery for extensions, packages, skills, prompt fragments, and themes, including package-composed resource layers.
  • opi-coding-agent: interactive /branch session branch selection.
  • opi-agent: streaming proxy primitives with framing, cancellation, backpressure, and secret redaction.
  • opi-web-ui: unpublished RPC/SDK event parser, conversation state, component models, and HTML rendering helpers.
  • opi-agent: session branching with tree reconstruction, branch picker, and branch-aware session writer.
  • opi-tui: branch picker widget with snapshot-tested rendering.
  • opi-coding-agent: extension examples for MCP adapter, todo, plan mode, sub-agent, protected paths, and permission gate patterns.
  • opi-coding-agent: progressive discovery for themes, prompt fragments, skills, and package resources.

Changed

  • opi-coding-agent: --list-models, interactive model picking, and runtime model validation now use provider registry metadata.
  • opi-coding-agent: example package manifests use the supported flat package.toml schema.
  • opi-agent: StreamingProxy::run is synchronous transport-agnostic I/O instead of an async wrapper around blocking reads.

Fixed

  • opi-coding-agent: Windows subprocess tests resolve opi.exe correctly.
  • opi-web-ui: RPC response data is preserved and updates session/model state.
  • opi-coding-agent: same-layer duplicate resource/package names now produce explicit errors.
  • opi-coding-agent: package resource containment checks no longer fall back to unresolved paths when canonicalization fails.
  • opi-agent: default secret redaction no longer redacts short benign sk- or eyJ-like strings.
  • opi-agent: SdkResponse now round-trips through JSON and serialization fallback events use SdkSerializationError.
  • opi-web-ui: ThinkingBlock is re-exported from the crate root with the other component models.
  • opi-coding-agent: phase 4 ledger hash check normalized for cross-platform consistency.

Removed

  • opi-agent: stale public Transport stub.

Install: cargo install opi-coding-agent --version 0.5.0

v0.4.0

02 Jun 08:44

Choose a tag to compare

What's new in v0.4.0

Phase 3: cloud provider expansion, image support, new tools, fuzzy picker, terminal image rendering, shell completions, and proxy support.

Added

  • Cloud providers: AWS Bedrock (SigV4), Azure OpenAI (deployment URL), Google Vertex AI (OAuth Bearer)
  • Proxy support: HTTP/HTTPS proxy via env-var or per-provider config
  • Image support: multimodal image input across the stack (prompts, tool results, TUI rendering)
  • New tools: find (file search) and ls (directory listing with metadata)
  • Shell completions: bash, zsh, fish, powershell, elvish via --generate-completion
  • Fuzzy picker: model and session selection with fuzzy filtering
  • Terminal images: rendering with protocol detection (kitty, sixel, iTerm2)
  • Context loading: AGENTS.md / CLAUDE.md auto-discovery
  • Tool safety: pi-style tool selection and safety hooks
  • Connection pooling: shared HTTP client reduces TLS handshake overhead

Fixed

  • Bedrock error mapping parses Retry-After header for 429 responses
  • Azure OpenAI endpoint validation returns clear config errors
  • Session picker sorted newest-first, char-aware truncation for non-ASCII paths
  • --list-models --json properly escaped output
  • Terminal image protocol hardening

Full Changelog: v0.3.0...v0.4.0

v0.3.0

25 May 02:00

Choose a tag to compare

What's new in v0.3.0

Phase 2 hardening: multi-provider support (6 LLM providers), session
persistence, context compaction, configurable TUI, and cost tracking.

Added

  • 6 LLM providers — OpenAI Chat, OpenAI Responses, Google Gemini, Mistral, OpenRouter, plus existing Anthropic support
  • opi-ai: retry/backoff/rate-limit support with configurable strategies
  • opi-ai: usage accumulation and cost tracking across turns
  • opi-agent: session v1 JSONL storage for conversation persistence
  • opi-agent: compaction engine with trigger and hook support
  • opi-agent: thinking config passed through to provider requests
  • opi-coding-agent: session list/resume/delete CLI flags
  • opi-coding-agent: --json NDJSON output mode for non-interactive use
  • opi-coding-agent: usage accumulation wired to TUI status bar
  • opi-coding-agent: edit tool captures before/after content
  • opi-coding-agent: workspace path validation for all tools
  • opi-tui: configurable keybindings with TOML parsing
  • opi-tui: Theme struct with default and monokai palettes
  • opi-tui: DiffView widget for edit/patch visualization

Fixed

  • Session runtime tests serialized to avoid env var races

Full Changelog: v0.2.0...v0.3.0

v0.2.0

21 May 17:07

Choose a tag to compare

Summary

Phase 1 MVP: functional Anthropic-based coding assistant with six tools, basic TUI, TOML config, and mock-provider integration tests.

Added

  • opi-ai: Provider-agnostic LLM streaming with Provider trait, message/stream types, Anthropic SSE provider, provider registry, and shared MockProvider test harness
  • opi-agent: Agent loop with turn lifecycle, Tool trait with JSON Schema validation, Agent wrapper with prompt/continue/abort/subscribe, hooks and steering/follow-up queues
  • opi-coding-agent: Six built-in tools (read, write, edit, bash, glob, grep) with workspace safety boundaries, system prompt builder, TOML config with 5-tier precedence, interactive TUI mode, and non-interactive mode with high-risk tool safety policy
  • opi-tui: TUI shell with message list, input editor, status bar, tool call view, markdown and code block rendering

Fixed

  • SSE parser surfaces malformed events instead of silently dropping them
  • SSE parser handles CRLF line endings for cross-platform robustness
  • BashTool uses cmd.exe on Windows, sh on Unix
  • Agent loop emits ToolExecutionStart before parallel tool spawning
  • AuthFailed error variant maps to exit code 3
  • Config: explicit --config validation and env precedence fix
  • Agent loop uses tokio::select! for responsive stream cancellation

Migration Notes

  • Config format is TOML with [defaults], [thinking], [providers.anthropic] sections
  • CLI flags: -m (model), -c (config), -s (system prompt), --non-interactive, --allow-mutating, -v (verbose), -V (version)
  • Non-interactive mode blocks write/edit/bash tools by default; use --allow-mutating or allow_mutating_tools = true in config to enable

What's NOT Included

Sessions, compaction, JSON output mode, MCP, plugins, web UI, rich diff views, and syntax-highlighted code blocks are not in this release.

v0.1.1

20 May 15:14

Choose a tag to compare

What's Changed

Added

  • opi-implement skill for structured implementation workflows with phased gates, verification tiers, and JSON ledger tracking.
  • CI workflows: ci.yml (fmt, clippy, test, doc) and release.yml (cross-platform binary builds on tag push).
  • Opi technical specification document (docs/opi-spec.md).

Fixed

  • Release skill: keep SHA256SUMS local-only, use version-based artifact directory.

Changed

  • opi-web-ui marked as publish = false (not ready for crates.io).

Full Changelog: v0.1.0...v0.1.1

v0.1.0 — scaffolding release

19 May 17:41

Choose a tag to compare

opi v0.1.0 — scaffolding release

Initial release of the opi workspace, a Rust reimplementation of earendil-works/pi.

This is a scaffolding release: the workspace layout, crate boundaries, and module structure are in place, but the implementations are stubs. The opi binary supports --version and --help; running it without arguments prints a placeholder message.

What's in this release

Five crates under lockstep versioning:

Crate Purpose
opi-ai Unified multi-provider LLM API
opi-tui Terminal UI with differential rendering
opi-agent Agent runtime with tool calling and transport
opi-web-ui Reusable web chat components
opi-coding-agent Produces the opi binary

The release also ships the opi-release skill — a seven-phase release workflow with explicit irreversibility gates for GitHub Releases and crates.io.

Binaries

Pre-built opi binary for Windows x64 is attached. Verify with the included SHA256SUMS.txt.

What's next

Implementation work begins in v0.2.0. Subsequent releases will add real functionality and publish to crates.io.