URI Agent is a protocol-oriented terminal coding agent. Through URI protocols, it lets any tool load the way Skills do in other agents: the model sees only a compact name and description at first, then reads the full contract, instructions, and resources when it selects that tool.
Its built-in plugins register a small model-facing interface:
read(uri: string, body: string)
exec(uri: string, body: string)
replace(path: string, old_text: string, new_text: string)
apply_patch(patch: string)
read and exec route simple string input through URI protocols; their body is
always a string, including "" when empty. Typed tools handle arguments that
would be awkward or error-prone to encode as strings. Trusted WASM plugins can
register more protocols and typed tools at runtime.
Warning
URI Agent is not a sandbox. File and shell protocols, and enabled WASM
plugins, run with the authority of the uri-agent process. Use only projects,
configuration, and plugins you trust.
URI Agent is an early release and may change between dated versions. Model requests and their context are sent to the provider you select. Unless offline mode is enabled, URI Agent also fetches model catalog metadata from pi.dev and supported providers.
- Progressive context: protocol contracts, Skill resources, embedded documentation, and oversized output stay out of the model context until they are needed.
- Extensible tools: linked and trusted WASM plugins can add protocols or typed tools without changing the runtime dispatch path.
- Built-in MCP bridge:
:mcpmanages stdio and Streamable HTTP servers, exposing each one as an on-demand<name>-mcp://protocol with query-first arguments and a complete-JSON fallback for complex schemas. - ACP editor integration:
uri-agent --acpv1serves stable ACP v1 over stdio, with per-session model setup and conversations that can later reopen through the normal TUI. - Broad model access: the pi.dev catalog, provider-specific sign-in, and credential-scoped live discovery bring a wide provider ecosystem into one model selector.
- Durable work: long commands become managed tasks, while append-only SQLite sessions preserve drafts, frozen startup context, and compaction checkpoints across restarts.
- One terminal workflow: Queue and Steer, built-in web access, keyboard and
mouse controls, image input, and
@file or@@session references share one conversation surface.
URI Agent deliberately targets broad pi.dev compatibility rather than a fixed handful of models. As of 2026-08-30, the current catalog coverage is:
| Catalog measure | Supported |
|---|---|
| API families | 5 of 9 |
| Model entries | 1,073 of 1,274 (84.2%) |
| Provider IDs | 35 of 39 |
| Provider IDs with live discovery | 28 of 35 runnable |
The supported API families are OpenAI Responses, OpenAI Codex Responses, OpenAI Chat Completions, Anthropic Messages, and Google Generative AI. Live provider results are cached per credential and supplement the shared catalog, so newly available account models can appear before pi.dev adds them.
Dedicated integrations cover the places where generic catalog compatibility is not enough: ChatGPT Codex subscription OAuth and WebSocket transport, Cloudflare AI Gateway's credential-safe endpoint boundary, WorkBuddy China browser login and account model discovery, and the explicitly experimental Antigravity private protocol. URI Agent also supports provider-specific login flows for Anthropic, GitHub Copilot, Kimi Coding, xAI, Radius, and OpenRouter.
Catalog contents and account entitlements change; a listed model still requires the matching credentials, region, and subscription. See Models and configuration for current provider, discovery, authentication, and compatibility details.
- credentials for a supported model provider;
- a terminal with standard keyboard input. Mouse support is optional.
With Homebrew on Apple Silicon macOS:
brew tap 4fuu/uri-agent https://github.com/4fuu/uri-agent
brew install 4fuu/uri-agent/uri-agentWith Scoop on 64-bit Windows:
scoop bucket add uri-agent https://github.com/4fuu/uri-agent
scoop install uri-agentOn x86-64 or ARM64 Linux, the installer verifies the release checksum and writes to ~/.local/bin:
curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/4fuu/uri-agent/main/scripts/install.sh | shTo build from crates.io, install a stable Rust toolchain and run:
cargo install --locked uri-agentLaunch URI Agent with the project directory it should use:
uri-agent --cwd /path/to/project--cwd sets the project and default working directory; it is not a filesystem access boundary. If the project contains AGENTS.md, review it before launch: new sessions include those instructions and freeze their startup context.
URI Agent does not choose a default model. In the TUI:
- Run
:loginto save an API key or complete a supported OAuth flow. - Run
:modeland select a runnable model. - Press
Space, enter a request, and pressEnter.
The first session is working when protocol activity appears and the assistant returns an answer based on the project. Press F1 or run :help for the active commands and key bindings.
See Models and configuration for provider support, authentication, offline mode, environment variables, and custom endpoints.
After configuring model authentication in the TUI, configure an ACP client to launch:
uri-agent --acpv1
The client supplies each session's absolute project directory; one ACP process can host independent sessions for multiple projects. Compatible ACP clients can select an authenticated model and thinking level before the first prompt without changing URI Agent's defaults. The first prompt makes the session durable under its already assigned ID; it can reopen in the TUI after the client releases it. See ACP v1 for supported content, MCP servers, lifecycle operations, and ownership constraints.
| Goal | Guide |
|---|---|
| Connect an editor or other ACP client | ACP v1 |
| Choose providers, authenticate, or change settings | Models and configuration |
| Use the conversation, commands, keymap, terminal, or attachments | Terminal interface and terminal features |
| Understand tools, protocols, tasks, and complete output | Protocols, tasks, and output |
| Use project instructions or Skills | Startup context and Skills |
| Resume sessions or understand persistence and compaction | Sessions and context |
| Build or audit an extension | WASM plugins |
The docs/ index includes contributor and release guides. At
runtime, <protocol>://help is the authoritative reference for a protocol's
accepted URIs and body shape; F1 and :help show the active interface
reference.
The project builds on stable Rust. Read AGENTS.md before changing the repository; the development guide defines module ownership, change rules, and required verification.
MIT © 2026 4fuu