SkillAgentSearch skills...

Uira

A lightweight, secure AI agent harness for your entire development lifecycle, fully written in Rust

Install / Use

/learn @junhoyeo/Uira
About this skill

Quality Score

0/100

Supported Platforms

Claude Code
Claude Desktop

README

<!-- <CENTERED SECTION FOR GITHUB DISPLAY> --> <div align="center">

Uira

</div>

Demo

A lightweight, secure AI agent harness for your entire development lifecycle, fully written in Rust

<div align="center">

GitHub Release npm version npm downloads GitHub Stars GitHub Issues License

</div> <!-- </CENTERED SECTION FOR GITHUB DISPLAY> --> <!-- TODO: Add TUI screenshots --> <!-- | TUI Chat | Model Selector | --> <!-- |:---:|:---:| --> <!-- | ![TUI Chat](.github/assets/tui-chat.png) | ![Model Selector](.github/assets/tui-models.png) | --> <!-- | Approval Overlay | Session Branching | --> <!-- |:---:|:---:| --> <!-- | ![Approval](.github/assets/tui-approval.png) | ![Fork](.github/assets/tui-fork.png) | -->

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

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@latest to ensure you're running the latest version. Plain npx uira may pick up a stale binary from your PATH (e.g. from a previous cargo 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
View on GitHub
GitHub Stars11
CategoryDevelopment
Updated21d ago
Forks1

Languages

Rust

Security Score

80/100

Audited on Mar 10, 2026

No findings