Uira v0.1.1
Installation
# npm
npx @uiradev/uira@0.1.1 --version
npm install -g @uiradev/uira@0.1.1
# cargo
cargo install uira-cli@0.1.1 # uira-agent (main CLI)
cargo install uira-commit-hook-cli@0.1.1 # git hooks CLI
cargo install uira-mcp-server@0.1.1 # MCP server
Changes
- feat: initial Rust implementation of astrape by Junho Yeo (7690678)
- feat: implement core functionality by Junho Yeo (fb7a912)
- feat: add Biome preset generation on init by Junho Yeo (67e2b91)
- feat: implement install command for git hooks by Junho Yeo (178c24a)
- Update README by Junho Yeo (15781f8)
- feat: replace Biome with native oxc integration by Junho Yeo (7fc08eb)
- feat: add post-commit auto-push hook to defaults by Junho Yeo (8d0b170)
- chore: add astrape config for dogfooding by Junho Yeo (d4031bf)
- feat: add AI-assisted typos checking via opencode SDK by Junho Yeo (51812a4)
- refactor: reorganize source into modules by Junho Yeo (25dabaf)
- docs: update README with typos command and source structure by Junho Yeo (9b5778d)
- feat: add ai.model config for default AI model by Junho Yeo (18869b2)
- feat: add full opencode config with tool/MCP control by Junho Yeo (047dc10)
- refactor: simplify ai.model to provider/model format by Junho Yeo (ca30dc7)
- feat: add full port plan v4.0 and workspace crate structure by @junhoyeo (b0df0b9)
- feat(sdk): add astrape-sdk crate with Rust types mirroring TypeScript SDK by @junhoyeo (fcb6148)
- feat(sdk): add astrape-sdk crate with Rust types mirroring TypeScript SDK by @junhoyeo (cb30ed3)
- docs: add cover image by @junhoyeo (f7a8891)
- chore: remove deprecated src folder by @junhoyeo (2426ed3)
- fix: wrong opencode server start command by @junhoyeo (e871990)
- feat(sdk): add TypeScript bridge and Rust subprocess caller by @junhoyeo (6783ac5)
- feat(sdk): complete Phase 0.1 SDK integration prototype by @junhoyeo (efb772b)
- feat(comment-checker): add astrape-comment-checker crate - Phase 0.2 complete by @junhoyeo (0e4c9ce)
- fix(typos): batch AI processing and group by keyword by @junhoyeo (e2e2b61)
- feat(typos): add --stage flag for auto-staging modified files by @junhoyeo (d1d4cb9)
- feat(hooks): add astrape-hooks crate - Phase 0.3 complete by @junhoyeo (7f432f6)
- feat(prompts): add astrape-prompts crate - Phase 0.4 complete by @junhoyeo (edce709)
- feat(hooks): add core hook implementations - Phase 0.5 complete by @junhoyeo (3c0bc05)
- feat(hooks): add ultraqa, notepad, think-mode hooks - Phase 0.6 complete by @junhoyeo (10a2ef0)
- docs: update README with current implementation status by @junhoyeo (9cd490e)
- feat: add state-manager module, extend comment-checker languages, add format command by @junhoyeo in #2
- feat: complete multi-agent orchestration system (Phase 0-1) by @junhoyeo in #3
- docs: update README.md by @junhoyeo (7d46b63)
- fix: address code review violations by @junhoyeo in #4
- refactor: update state directory structure and configuration by @junhoyeo (787c0d7)
- fix: correct typo in _typos.toml by @junhoyeo (3ace704)
- fix: resolve test isolation and state management issues by @junhoyeo (4103a52)
- docs: improve ENV_TEST_LOCK error messages for debugging by @junhoyeo (17f3faa)
- refactor: remove unused code and add missing ModelType variant by @junhoyeo (8cccc31)
- feat: auto-fix fmt in pre-commit hook by @junhoyeo (f4b6c3a)
- feat: add project-local Claude Code plugin using Astrape NAPI by @junhoyeo (e281547)
- fix: disable oh-my-claudecode plugin in local settings by @junhoyeo (f174ad7)
- feat(ralph): comprehensive ralph loop improvements by @junhoyeo in #5
- feat: add Astrape plugin package for Claude Code by @junhoyeo (960548c)
- Enhance README with title and formatting by @junhoyeo (82ac850)
- refactor: use enabledPlugins instead of inline hooks by @junhoyeo (4a340c9)
- chore(plugin): update CLAUDE.md and make hooks executable by @junhoyeo (6f6c0b2)
- fix(plugin): convert to official Claude Code plugin format by @junhoyeo (ac6c2e0)
- feat: consolidate packages, add MCP server, and OXC-powered tools by @junhoyeo in #6
- feat: score-based verification goals for ralph loop by @junhoyeo in #9
- feat(proxy): Rust-based HTTP proxy with agent-based model routing by @junhoyeo in #10
- feat: auto-sync native binary to plugin on build by @junhoyeo in #12
- refactor(proxy): migrate from Axum to Actix Web by @junhoyeo in #13
- docs: reorganize README sections and remove redundant instructions by @junhoyeo (f5ffedc)
- refactor: major codebase cleanup by @junhoyeo in #14
- feat: custom model routing for agents via astrape-proxy by @junhoyeo in #16
- docs: update README for librarian agent and custom model routing by @junhoyeo (f9d9479)
- feat(mcp-server): auto-start astrape-proxy on initialize by @junhoyeo in #17
- feat: unified astrape npm package with subpath exports by @junhoyeo in #18
- fix: update paths from packages/claude-plugin to packages/astrape by @junhoyeo (d62ff1b)
- chore: remove obsolete publish-plugin.yml workflow by @junhoyeo (1903474)
- docs: update CLAUDE.md path to packages/astrape by @junhoyeo (2fda8c7)
- chore: remove unused astrape-mcp crate by @junhoyeo (b7577fa)
- fix: rename researcher agent to librarian by @junhoyeo in #19
- chore: remove deprecated by @junhoyeo (ab5b75b)
- feat: unified config system with JSONC support and proxy settings by @junhoyeo in #20
- refactor: eliminate LiteLLM, rename spawn_agent to delegate_task with background support by @junhoyeo in #21
- chore: rename
astrape -> uira by @junhoyeo (7a993f6)
- chore: run fmt and clippy by @junhoyeo (9220475)
- refactor: move explore and librarian to delegate_task only by @junhoyeo (e1d6f36)
- fix: auto-resolve agent model from uira.yml in delegate_task by @junhoyeo in #22
- feat: add OMC tech parity features by @junhoyeo in #23
- fix: use spawn_blocking for metrics query to avoid blocking tokio runtime by @junhoyeo (4d39823)
- feat: native Rust agent harness with multi-provider support by @junhoyeo in #24
- fix(security): harden session validation, file writes, and tool approval by @junhoyeo in #30
- feat(hooks): integrate diagnostics with embedded AgentWorkflow for AI-assisted fixing by @junhoyeo in #31
- chore: remove obsolete Claude plugin code by @junhoyeo in #33
- feat: OAuth, SSE streaming, and TUI improvements by @junhoyeo in #32
- feat(agent): wire tools, MCPs, keyword detection into harness by @junhoyeo in #35
- feat(agent): wire parallel tool execution for concurrent Read/Glob/Grep by @junhoyeo in #36
- Move necessary types from uira-sdk to uira-agents by @app/copilot-swe-agent in #37
- perf(parallel): use join_all for concurrent result collection by @junhoyeo in #38
- feat(npm): add @uiradev/uira and @uiradev/hook packages by @junhoyeo in #40
- refactor: standardize workspace dependencies and fix deprecations by @junhoyeo in #41
- feat: implement harness improvements with permissions, events, and telemetry by @junhoyeo (cfabe27)
- fix: oracle-identified integration issues (round 2) by @junhoyeo (774a1fe)
- feat: add persistent todo runtime, sidebar UI, and AGENTS.md directory injection by @junhoyeo in #42
- fix(build): stabilize napi scripts and local CLI fallback by @junhoyeo in #45
- feat(typos): implement native detection-first workflow by @junhoyeo in #44
- fix(sandbox): fix Linux landlock build errors — use correct SandboxError variant and import BitFlag trait by @junhoyeo (5aad6ac)
- fix(sandbox): add enumflags2 dep, fix remaining PolicyError in manager.rs, remove unused imports by @junhoyeo (d3818f1)
- chore: consolidate labels, add AGENTS.md, update todo-improvements by @junhoyeo (7263796)
- chore: migrate todo-improvements.md to GitHub issues by @junhoyeo (3a944a1)
- feat: add shell completion scripts by @junhoyeo in #74
- feat: add keyboard shortcuts for TODO sidebar by @junhoyeo in #77
- feat: add /review command for code review mode by @junhoyeo in #80
- feat(agent): add unlimited-resource assumption to system prompt by @junhoyeo in #82
- feat: add web search tool for live documentation by @junhoyeo in #86
- feat: implement context compaction with summarization by @junhoyeo in #88
- feat: add external editor support (Ctrl+G) by @junhoyeo in #75
- feat: add
@file syntax for fuzzy file reference by @junhoyeo in #79
- feat: add MCP client support for consuming external tools by @junhoyeo in #83
- feat: add session share to GitHub Gist by @junhoyeo in #76
- feat: add configurable TUI theme system by @junhoyeo in #81
- feat: add collapsible tool output in TUI by @junhoyeo in #78
- feat: add session branching with /tree and /fork commands by @junhoyeo in #87
- feat: support image and screenshot input in prompts by @junhoyeo in #89
- feat: add mid-response message queue with interrupt send by @junhoyeo in #91
- feat(cli): add JSON-RPC mode for programmatic integration by @junhoyeo in #92
- fix(tui): route tracing output through TUI event system by @junhoyeo (3049f8b)
- fix(hooks): prefer workspace uira in generated scripts by @junhoyeo (14d1758)
- fix(context): ensure summarize compaction can run by @junhoyeo (0b4a0b1)
- fix(agent): default to allow permissions without approval by @junhoyeo (4df6766)
- fix(tui): keep chronological output and show active model by @junhoyeo (e8d08bb)
- test(tui): add tmux smoke-check script by @junhoyeo (db833e4)
- fix(tui): show concrete active model id in footer by @junhoyeo (9dc6cd2)
- fix(provider): coerce tool input into Anthropic dictionary shape by @junhoyeo (748b652)
- feat(cli): add JSON-RPC mode for stdin/stdout integration by @junhoyeo in #94
- feat: add queued follow-up input during active responses by @junhoyeo in #93
- feat(tui): skip binary files during /review analysis by @junhoyeo (320f64d)
- docs: add /review slash command usage examples by @junhoyeo (2ceff7a)
- feat(tui): support external editor input with Ctrl+G by @junhoyeo (1f0cc54)
- fix: address Codex review comments from PRs #91, #93, #99, #100 by @junhoyeo (61fbb20)
- fix(tui): harden /review parsing for quoted and renamed paths by @junhoyeo (57e59b9)
- fix(tui): emit todo and background task events for sidebar/status updates by @junhoyeo in #101
- refactor(storage): consolidate paths to ~/.uira/ for CLI consistency by @junhoyeo in #102
- fix(tools): implement LSP multi-header parsing and AST search/replace by @junhoyeo in #104
- fix(hooks): remove deprecated attributes and rename LegacyHookAdapter to HookEventAdapter by @junhoyeo in #106
- docs: add commit message guidelines for atomic, descriptive commits by @junhoyeo (3e769b7)
- chore: remove rust-ci workflow by @junhoyeo (5f93d1a)
- feat(tools): replace DuckDuckGo with Exa/grep.app hosted MCP for web, code, and GitHub search by @junhoyeo in #110
- feat(providers): harden Anthropic and OpenAI providers with retry, error classification, and SSE fixes by @junhoyeo in #109
- refactor: consolidate workspace from 28 to 17 crates by @junhoyeo in #111
- feat(gateway): inject skill context into channel-created sessions by @junhoyeo in #112
- feat(gateway): wire up Telegram and Slack channels in CLI gateway startup by @junhoyeo in #113
- docs: enforce merge commits for PR merges in AGENTS.md by @junhoyeo (5588f28)
- refactor(config): remove orphaned config structs by @junhoyeo in #123
- refactor(types): remove dead AgentError variants by @junhoyeo in #128
- refactor(providers): remove dead ProviderError variants by @junhoyeo in #124
- fix(config): wire opencode settings into provider initialization by @junhoyeo in #126
- chore(commit-hook-cli): remove dead ai hook executor system by @junhoyeo in #127
- feat: wire todo continuation and custom sandbox policy paths by @junhoyeo in #129
- feat(gateway): use channel capabilities for outbound adaptation by @junhoyeo in #125
- feat(tui): overhaul TUI with viewport scrolling, expanded themes, and modern features by @junhoyeo in #119
- fix(tui): wrap todo text instead of truncating in sidebar by @junhoyeo in #131
- feat(tui): keyboard overhaul, session consolidation, sandbox & delegation fixes by @junhoyeo in #130
- fix(tui): separate input history from chat scrolling by @junhoyeo in #134
- fix(tui): harden sidebar context/session rendering and branch wiring by @junhoyeo in #132
- fix: replace hardcoded strings with centralized constants by @junhoyeo in #136
- refactor: merge uira-types, sandbox, permissions, hooks into core/security/orchestration and remove napi by @junhoyeo in #135
- feat(gateway): implement Telegram message streaming — replies flow live by progressively editing messages as tokens arrive by @junhoyeo in #138
- feat(release): add safe release workflow with single deployer script by @junhoyeo in #137
- feat: structured planning pipeline (analyst → planner → critic) by @junhoyeo in #142
- feat(tui): comprehensive TUI feature expansion by @junhoyeo in #145
- feat: skill injection and category selection at delegation time by @junhoyeo in #143
- feat: environment context auto-injection (date/time/timezone) by @junhoyeo in #144
- feat: dynamic prompt builder for metadata-driven orchestrator prompts by @junhoyeo in #140
- feat: agent switch mechanism with orchestrator personalities by @junhoyeo in #139
- feat: GPT/OpenAI-specific prompt variants for model-aware routing by @junhoyeo in #141
- fix: wire dead code integration and add agent cycling by @junhoyeo in #146
- fix(tui): clean up all compiler warnings in uira-tui by @junhoyeo in #147
- feat(tui): improve UX with user message backgrounds and native cursor by @junhoyeo in #149
- feat(gateway): add Discord channel integration by @junhoyeo in #150
- feat(memory): add uira-memory crate with local semantic memory system by @junhoyeo in #151
- feat(tui): add startup logo image with right-aligned rendering by Junho Yeo (179b536)
- fix(tui): replace image background with transparency for theme blending by Junho Yeo (28042ea)
- fix(tui): detect terminal background via OSC 11 for seamless logo compositing by Junho Yeo (f4959e1)
- feat(tui): make logo scrollable in chat view with show_logo config toggle by Junho Yeo (723caa8)
- fix(tui): composite logo against ChatView bg for correct transparency by @junhoyeo (37baa72)
- fix(tui): move App construction before terminal setup to prevent SGR mouse escape leak by @junhoyeo (1330a18)
- refactor(cli): improve flag naming for clarity by @junhoyeo in #152
- refactor(memory): unify MemoryConfig type across crates by @junhoyeo (d13c64a)
- fix(memory): propagate config to tools and use project-scoped container tags by @junhoyeo (2d2108e)
- feat(hooks): add AssistantTurnComplete hook event variant by @junhoyeo (bdb186c)
- refactor(memory): replace global OnceCell with session-scoped memory in HookContext and ToolContext by @junhoyeo (239a62b)
- feat(memory): per-turn capture with text-first storage and async embedding by @junhoyeo (ef1198b)
- feat(memory): recall dedup cache, configurable throttling, and turn cooldown by @junhoyeo (c37264c)
- feat: wire diff rendering for Edit/Write tools and fix TUI tool renderers by @junhoyeo in #153
- feat(memory): remove silent mock embedding fallback, require explicit provider config by @junhoyeo (ed8e856)
- feat(memory): add retention config with startup cleanup for old memories by @junhoyeo (9f446a6)
- docs: update README.md by @junhoyeo (0290d64)
- test(memory): add integration test for full memory system wiring by @junhoyeo (78c3366)
- docs(readme): add npm badges and tighten quick start formatting by @junhoyeo (0a567c5)
- docs(readme): improve gateway section with auth, discord, and endpoints table by @junhoyeo (318f04d)
- docs: update README.md by @junhoyeo (ac16347)
- docs: update package descriptions with unified tagline by @junhoyeo (9ac502a)
- fix(docs): add missing code fence in README Quick Start section by @junhoyeo (f436078)
- fix(ci): correct actions/setup-node pinned SHA for v4.4.0 by @junhoyeo (d367674)
- fix(deps): switch from native-tls to rustls-tls to fix Linux cross-compilation by @junhoyeo (e84615b)
- fix(ci): define BSD u_int*_t types via CFLAGS for musl targets by @junhoyeo (80fa2ae)
- fix: guard unix-only PermissionsExt behind cfg(unix) for Windows compat by @junhoyeo (5980993)
- fix(ci): add Cross.toml to passthrough CFLAGS into cross Docker containers by @junhoyeo (dc18f34)
- fix(release): add uira-memory to publish order and use workspace dep in uira-core by @junhoyeo (f88da5d)
- fix(release): remove --provenance from platform package npm publish by @junhoyeo (b5f8776)
- fix(release): use absolute path for npm publish to prevent git shorthand resolution by @junhoyeo (6c6b5b6)
- fix(npm): replace bun with npx in build scripts for CI compatibility by @junhoyeo (af5885d)
- fix(release): handle already-published npm packages gracefully on retry by @junhoyeo (d19a939)
- fix(release): use silent mode for npm publish to capture stderr for already-published detection by @junhoyeo (c5fc76f)
- fix(release): install workspace devDeps before npm build (tsup/typescript) by @junhoyeo (8e66760)
- fix(release): add @types/node devDep and relax npm engine requirement by @junhoyeo (4033315)
Binaries
| Platform |
uira-agent |
uira-commit-hook-cli |
uira-mcp |
| macOS ARM64 |
uira-agent-darwin-arm64 |
uira-commit-hook-cli-darwin-arm64 |
uira-mcp-darwin-arm64 |
| macOS x64 |
uira-agent-darwin-x64 |
uira-commit-hook-cli-darwin-x64 |
uira-mcp-darwin-x64 |
| Linux x64 |
uira-agent-linux-x64-gnu |
uira-commit-hook-cli-linux-x64-gnu |
uira-mcp-linux-x64-gnu |
| Linux ARM64 |
uira-agent-linux-arm64-gnu |
uira-commit-hook-cli-linux-arm64-gnu |
uira-mcp-linux-arm64-gnu |
| Linux x64 (musl) |
uira-agent-linux-x64-musl |
uira-commit-hook-cli-linux-x64-musl |
uira-mcp-linux-x64-musl |
| Linux ARM64 (musl) |
uira-agent-linux-arm64-musl |
uira-commit-hook-cli-linux-arm64-musl |
uira-mcp-linux-arm64-musl |
| Windows x64 |
uira-agent-win32-x64-msvc.exe |
uira-commit-hook-cli-win32-x64-msvc.exe |
uira-mcp-win32-x64-msvc.exe |