Releases: OdradekAI/opi
v0.5.1
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/clonesession commands that copy the active branch into a new parented session without rewriting the source JSONL file.opi-agent/opi-coding-agent: RPC/SDKextension_commandsupport 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-modelsoutput.opi-web-ui:ConversationStatenow tracks resource metadata fromsession_inforesponses and the last successful compaction response payload.opi-coding-agent: runtime session persistence now writes meaningfulparent_idlinks andleafpointers so continuing from a selected branch tip creates a same-file branch path.opi-coding-agent:opi package add/remove/list/doctornow validates package manifests, writes lock entries, and reports installed package diagnostics.opi-coding-agent: manifest V2 supports[adapter]process adapters with theopi-extension-jsonl-v1JSONL 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 oflib.rsinto an internalagent_loopmodule while preserving the publicopi_agent::agent_loopexport.
Fixed
opi-tui:SelectListandBranchPickernow account for selected-row markers and CJK display width when aligning labels with metadata.opi-coding-agent:opi package doctornow 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 failedclippy/test/docunder-D warnings, and test-binary locators no longer match cargo.ddep-info siblings (which lack the execute bit and causedEACCESwhen spawning adapters).
Install: cargo install opi-coding-agent
v0.5.0
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/branchsession 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 flatpackage.tomlschema.opi-agent:StreamingProxy::runis synchronous transport-agnostic I/O instead of an async wrapper around blocking reads.
Fixed
opi-coding-agent: Windows subprocess tests resolveopi.execorrectly.opi-web-ui: RPC responsedatais 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 benignsk-oreyJ-like strings.opi-agent:SdkResponsenow round-trips through JSON and serialization fallback events useSdkSerializationError.opi-web-ui:ThinkingBlockis 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 publicTransportstub.
Install: cargo install opi-coding-agent --version 0.5.0
v0.4.0
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) andls(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 --jsonproperly escaped output- Terminal image protocol hardening
Full Changelog: v0.3.0...v0.4.0
v0.3.0
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 strategiesopi-ai: usage accumulation and cost tracking across turnsopi-agent: session v1 JSONL storage for conversation persistenceopi-agent: compaction engine with trigger and hook supportopi-agent: thinking config passed through to provider requestsopi-coding-agent: session list/resume/delete CLI flagsopi-coding-agent:--jsonNDJSON output mode for non-interactive useopi-coding-agent: usage accumulation wired to TUI status baropi-coding-agent: edit tool captures before/after contentopi-coding-agent: workspace path validation for all toolsopi-tui: configurable keybindings with TOML parsingopi-tui: Theme struct with default and monokai palettesopi-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
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
Providertrait, message/stream types, Anthropic SSE provider, provider registry, and sharedMockProvidertest harness - opi-agent: Agent loop with turn lifecycle,
Tooltrait with JSON Schema validation,Agentwrapper 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
BashToolusescmd.exeon Windows,shon Unix- Agent loop emits
ToolExecutionStartbefore parallel tool spawning AuthFailederror variant maps to exit code 3- Config: explicit
--configvalidation 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-mutatingorallow_mutating_tools = truein 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
What's Changed
Added
opi-implementskill for structured implementation workflows with phased gates, verification tiers, and JSON ledger tracking.- CI workflows:
ci.yml(fmt, clippy, test, doc) andrelease.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-uimarked aspublish = false(not ready for crates.io).
Full Changelog: v0.1.0...v0.1.1
v0.1.0 — scaffolding release
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.