Uira
A lightweight, secure AI agent harness for your entire development lifecycle, fully written in Rust
Install / Use
/learn @junhoyeo/UiraQuality Score
Category
Development & EngineeringSupported Platforms
README

<div align="center"> </div> <!-- </CENTERED SECTION FOR GITHUB DISPLAY> --> <!-- TODO: Add TUI screenshots --> <!-- | TUI Chat | Model Selector | --> <!-- |:---:|:---:| --> <!-- |  |  | --> <!-- | Approval Overlay | Session Branching | --> <!-- |:---:|:---:| --> <!-- |  |  | -->A lightweight, secure AI agent harness for your entire development lifecycle, fully written in Rust
Overview
Uira (Māori: "lightning") is a standalone AI coding agent built entirely in Rust. It combines multi-provider model orchestration, platform-native sandboxing, and AI-powered developer workflows into a single binary with zero external runtime dependencies.
Three pillars:
- Lightweight — Single Rust binary. No Node.js, no Python, no Docker. Fast startup, low memory footprint.
- Secure — Platform-native sandboxing (macOS Seatbelt, Linux Landlock), configurable permission rules with glob patterns, and inline TUI approval overlays for every tool invocation.
- Dev Lifecycle — Not just an agent — a complete harness. AI-assisted git hooks, score-based goal verification, session branching, semantic memory, and channel integrations (Slack, Telegram, Discord) from commit to deploy.
Contents
- Overview
- Features
- Quick Start
- Usage
- TUI Commands & Shortcuts
- Configuration
- Multi-Provider Model Routing
- Security & Sandboxing
- AI Agent Harness
- Session Persistence
- MCP Integration
- Gateway & Channels
- Architecture
- Development
- Contributing
- License
Features
- Standalone Native Binary — Zero-dependency Rust binary, no Node.js or Python required
- Multi-Provider Orchestration — Anthropic, OpenAI, Gemini, Ollama, and OpenCode with per-agent model routing
- Platform-Native Sandboxing — macOS Seatbelt (
sandbox-exec), Linux Landlock — not containers, real OS-level isolation - Ratatui TUI — Terminal interface with approval overlays, model selector, thinking display, and syntax highlighting
- AI Agent Harness — Embedded agent workflows for typos, diagnostics, and comment review at commit time
- MCP Server & Client — Built-in LSP and AST-grep tools via Model Context Protocol, plus external MCP server discovery
- Session Persistence — Append-only JSONL sessions with branching, forking, and resume
- Goal Verification — Score-based verification loops for persistent task completion
- Semantic Memory — Local hybrid search memory system with embedding support
- Gateway & Channels — WebSocket gateway with Telegram, Slack, and Discord integrations
- Skills System — Loadable SKILL.md instruction files for extending agent capabilities
- Smart Context Compaction — Automatic context summarization to stay within token limits
- OAuth Authentication — Multi-provider OAuth with secure credential storage
- OXC Tooling — Rust-native JavaScript/TypeScript linting, parsing, and transformation
Quick Start
# Install via npm (prebuilt binaries, recommended)
npm i -g @uiradev/uira
# Or run directly without installing
npx uira@latest
# Or build from source
git clone https://github.com/junhoyeo/uira
cd uira
cargo build --release
cargo install --path crates/uira-cli
Note: Always use
npx uira@latestto ensure you're running the latest version. Plainnpx uiramay pick up a stale binary from your PATH (e.g. from a previouscargo install) instead of downloading from npm.
npm packages:
| Package | Description | Binaries |
|---------|-------------|----------|
| @uiradev/uira | Agent + git hooks (prebuilt) | uira, uira-agent, uira-commit-hook-cli |
| @uiradev/hook | Git hooks only | uira-hook |
| uira | Alias for @uiradev/uira | Same as above |
Credential Setup
Credentials are resolved per-provider in the following priority order:
| Priority | Source | Details |
|----------|--------|---------|
| 1 | OAuth login | uira-agent auth login <provider> — stored in ~/.uira/auth.json |
| 2 | Environment variable | ANTHROPIC_API_KEY, OPENAI_API_KEY, etc. |
Environment variables per provider:
| Provider | Variable | Notes |
|----------|----------|-------|
| Anthropic | ANTHROPIC_API_KEY | Default provider |
| OpenAI | OPENAI_API_KEY | Also supports OAuth (Codex) |
| Gemini | GEMINI_API_KEY or GOOGLE_API_KEY | Either works |
| Ollama | — | No auth required (local) |
| OpenCode | OPENCODE_API_KEY | For OpenCode session API |
OAuth (recommended — tokens auto-refresh): | Provider | Flow | Notes | |----------|------|-------| | Anthropic | Code-copy | Opens browser → authorize → copy code → paste in terminal | | OpenAI | Device code | Automatic polling | | Google | Device code | Automatic polling |
uira-agent auth login anthropic # Start OAuth flow
uira-agent auth login openai
uira-agent auth login google
uira-agent auth status # Check all credentials
uira-agent auth logout anthropic # Remove stored credentials
Credentials stored in ~/.uira/auth.json.
Usage
Interactive TUI
# Launch the interactive terminal UI (default)
uira-agent
# With a specific model
uira-agent --model claude-sonnet-4-20250514
# With a specific provider
uira-agent --provider openai --model gpt-4o
# Full-auto mode (no approval prompts)
uira-agent --full-auto
# Ralph mode (persistent task completion)
uira-agent --ralph
# With a specific agent personality
uira-agent --agent architect
Single Task Execution
# Execute a prompt non-interactively
uira-agent exec "Fix the TypeScript errors in src/"
# Output as JSON
uira-agent exec "Summarize this codebase" --json
Session Management
# List recent sessions
uira-agent sessions list
# List with fork tree structure
uira-agent sessions list --tree
# Show session details
uira-agent sessions info <session-id>
# Delete a session
uira-agent sessions delete <session-id>
# Resume a previous session
uira-agent resume <session-id>
# Fork from a session (branch point)
uira-agent resume <session-id> --fork
# Fork keeping only the first N messages
uira-agent resume <session-id> --fork --fork-at 10
Configuration Management
# Show current config
uira-agent config show
# Get a specific value
uira-agent config get theme
# Set a value
uira-agent config set theme dracula
# Reset to defaults
uira-agent config reset
Goal Verification
# Run all goal checks
uira-agent goals check
# List configured goals
uira-agent goals list
# Show verification status
uira-agent goals status
Background Tasks
# List running tasks
uira-agent tasks list
# Check task status
uira-agent tasks status <task-id>
# Cancel a task
uira-agent tasks cancel <task-id>
Gateway
# Start the WebSocket gateway server
uira-agent gateway start
# With custom host/port
uira-agent gateway start --host 0.0.0.0 --port 18790
# With authentication
uira-agent gateway start --auth-token "secret"
Skills
# List discovered skills
uira-agent skills list
# Show skill details
uira-agent skills show <name>
# Install a skill from a local path
uira-agent skills install ./my-skill/
Shell Completions
# Generate completions for your shell
uira

