bbarit-oss
An open-source terminal AI coding agent: one Rust binary, 15+ providers, 1,000+ models, self-hostable.
- Source repo
- bbarit/bbarit-agent-oss
- Stars
- ★ 150
- Last updated
- 3mo ago
- License
- NOASSERTION
- Primary language
- Rust
- FA score
- 42/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformChatGPT · Codex · Claude Code · OpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- Developers who live in the terminal and want to switch between Claude, GPT, Gemini and local Ollama models with one command set.
- Not a fit if
- Teams that need a GUI IDE plugin rather than a terminal TUI
- Users unwilling to supply LLM API keys or run local Ollama
- Anyone needing a native Windows ARM binary (x64 only)
- Source review
- 42/100 · Major gaps
What does this agent do, and when should you use it?
bbarit-oss is a terminal-native AI coding agent distributed as a single static Rust binary with no Node or Python runtime to install. A unified model registry covers Anthropic Claude, OpenAI GPT/Codex, Google Gemini/Vertex, OpenRouter, Groq, Mistral, Together, Fireworks, DeepSeek, Cerebras, Amazon Bedrock, GitHub Copilot and local Ollama models — 15+ providers and 1,000+ models, switchable mid-session. At runtime it drives an iterative assistant → tool call → tool result loop, autonomously invoking read/write/edit, bash, grep/find/tree, bundled semble hybrid BM25 + semantic code search, web_search/web_fetch and task sub-agents. Beyond the interactive TUI it offers one-shot --print output, a --mode json event stream and --orchestrate multi-process parallel sub-agents. It ships 295 personas across 30 domains, qwen-code-derived cross-session auto-memory, a per-project markdown wiki, and an opt-in /interop mode that reuses Claude Code and Codex MCP servers and skills read-only. All credentials, sessions and memories live under ~/.bbarit-oss/agent/, and code and keys only reach the provider you pick; MIT licensed.
Launching bbarit-oss opens a full-screen TUI in the current directory; with no credentials it opens a login picker where /login <provider> completes OAuth or accepts an API key. You issue natural-language instructions, and the agent loops: call the LLM, parse its tool calls, execute read/write/edit (hash-checked targeted edits), bash commands, gitignore-aware grep/find/ls/tree, code_search (semble's hybrid BM25 + semantic retrieval), web_search/web_fetch, or spawn a focused sub-agent via task — until the model returns a final answer with no further tool calls. Before each turn src/memory.rs scores stored memories by keyword overlap and injects the most relevant ones with no extra LLM call; after the turn a background --print sub-agent extracts user/feedback/project/reference facts into <slug>.md files and a MEMORY.md index. The wiki tool's get/set/list/search/delete actions maintain per-project markdown pages under ~/Documents/octo-notes, scoped so one project's notes never leak into another's prompt. Sessions are stored as JSONL trees supporting fork/clone/resume and self-contained HTML export. --print keeps stdout to the final answer only, --mode json emits session/agent_start/message_update/turn_end/agent_end events, and --orchestrate runs each task as an independent sub-agent process in parallel.
- Developers who live in the terminal and want to switch between Claude, GPT, Gemini and local Ollama models with one command set.
- Teams with MCP servers and skills already wired into Claude Code or Codex who want a lighter single-binary tool without re-registering anything (enable /interop).
- Security-sensitive teams that must run the agent offline or on an internal network with local models via Ollama.
- Engineers embedding a coding agent in scripts or CI: clean stdout via --print, structured NDJSON via --mode json.
- Individuals or small teams that want several subtasks — auditing, test writing, doc updates — running in parallel with --orchestrate.
- Review workflows that need the agent constrained to a specialist role and forbidden from mutating files (--persona with %%mode=readonly).
How do you install or deploy this agent?
One-line install on macOS / Linux (installs to ~/.local/bin; override with BBARIT_INSTALL_DIR):
curl -fsSL https://bbarit.com/agent/install.sh | shOne-line install on Windows PowerShell (installs to %LOCALAPPDATA%\Programs\bbarit-oss and adds it to your user PATH):
irm https://bbarit.com/agent/install.ps1 | iexBuilding from source requires a stable Rust toolchain:
# install Rust first: https://rustup.rs
git clone https://github.com/bbarit/bbarit-agent-oss
cd bbarit-agent-oss
cargo build --release
./target/release/bbarit --helpSupported platforms: macOS (arm64/x64), Linux (x64/arm64), Windows (x64; Windows-on-ARM runs the x64 binary under emulation). Prebuilt binaries are also on the releases page.
How do you use this agent?
Start the interactive TUI from your project directory; on first launch with no credentials the login picker opens automatically:
cd my-project && bbarit-ossOr log in and pick a model explicitly (Anthropic uses an API key; browser OAuth is disabled):
/login anthropic sk-ant-api03-...
/login openai-codex
/model claude-sonnet-5For scripts, use one-shot mode where stdout carries only the final answer:
bbarit-oss --print --no-session \
--provider anthropic --model claude-sonnet-5 \
"Explain what this repo does in one paragraph"Parallel sub-agents and structured events:
bbarit-oss --orchestrate "audit auth.rs for bugs" "write tests for parser.rs" "update the README"
bbarit-oss --mode json "summarize the build scripts"Handy flags include --thinking low|medium|high, --persona <id>, -t/--tools allowlist, --no-tools, --append-system-prompt and --upgrade. API keys resolve in order --api-key → stored /login credentials → provider config → environment variables; you can also set ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, OPENROUTER_API_KEY and others. For fully offline use, point it at Ollama (auto-discovered from OLLAMA_HOST).
What are this agent's strengths and limitations?
- One static Rust binary with no Node/Python runtime, instant startup, cross-compiled for macOS/Linux/Windows and self-updating in place via --upgrade.
- Provider-agnostic by design: 15+ providers and 1,000+ models in one registry, switchable mid-session with /model, including local Ollama models for offline work.
- Bundled semble hybrid BM25 + semantic code search, qwen-code-derived cross-session auto-memory and a per-project markdown wiki cut repeated exploration cost.
- /interop reuses ~/.claude.json, ~/.claude/skills, ~/.codex/config.toml and ~/.codex/skills read-only, so existing MCP servers and skills work without re-registration — and it is off by default to keep fresh installs lean.
- Three programmatic interfaces — --print (clean stdout), --mode json (NDJSON events) and --orchestrate (parallel sub-agent processes) — make it embeddable in scripts and CI.
- The license field reports NOASSERTION; the README claims MIT and credits Pi (MIT), qwen-code (Apache-2.0) and the AgentLand persona library, so the actual terms need checking against LICENSE/NOTICE/PROVENANCE.md.
- Windows ships only an x64 binary (ARM devices run under emulation), and the project is maintained by a single organization with limited evidence of third-party ecosystem maturity.
- Its value depends on external LLM providers or a local Ollama install; you bear model costs, and the Anthropic path does not support browser OAuth — API key only.
- Persona injection, auto-memory and the project wiki add system-prompt and context overhead, and memory extraction still spends background sub-agent calls even with /interop off.
- Extension (JS/TS) and LSP support are only sketched in the README with no detailed API docs or examples; the claimed .pi config compatibility still needs verification.
How does this agent compare with similar options?
The README explicitly positions itself as a self-hostable, provider-agnostic alternative to Claude Code, Codex CLI and Gemini CLI, with a feature-by-feature table covering open source status, language/runtime, multi-provider support, local models, built-in personas, semantic code search, cross-session memory, project wiki, parallel sub-agents, reuse of Claude/Codex MCP and skills, MCP support and self-update. It also states the design is based on Pi (MIT, TypeScript/Node), rewritten in Rust to keep Pi's small core while adding the orchestrator, wiki, personas, auto-memory and interop that Pi lacks, with exact measured source overlap disclosed in PROVENANCE.md.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| bbarit-oss This agent | 42 · Major gaps | CLIFree + model costs | ★ 150 | 3mo ago | Rust | ChatGPT · Codex · Claude Code · OpenAI API · Claude API |
| Aster | 77 · Good | CLIFree + model costs | ★ 137 | 4d ago | Rust | OpenAI API |
| zerostack | 57 · Major gaps | CLIFree + model costs | ★ 1.7k | 2d ago | Rust | OpenAI API · Claude API |
| VT Code | 66 · Some gaps | CLIFree + model costs | ★ 897 | 1d ago | Rust | OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
README documents --tools/--exclude-tools/--no-tools, --approve project-trust gating, read-only personas refusing mutating tools, and /interop off-by-default reading external configs read-only. These are real least-privilege and confirmation designs but are documentation assertions with no code shown; bash and computer tools can run arbitrary commands and desktop control inside an autonomous loop with no per-action confirmation evidence, so least_privilege and user_confirmation score 1. Data-flow claims (keys local, no phone-home, offline-capable) are asserted, but wiki writes to ~/Documents/octo-notes and background sub-agent memory extraction leave on-disk and outbound boundaries underspecified, so data_flow_transparency and sensitive_data_handling score 1. Dependencies include enigo (desktop control), arboard, rsa, tungstenite with no audit or lockfile evidence, dependency_security 1. External effects (file writes, shell, desktop control) are gated in prose but no recovery mechanism is described beyond JSONL sessions and --no-session, rollback 1. Source attribution is supported by LICENSE, NOTICE, PROVENANCE.md references and Pi/qwen-code/AgentLand credits, source_attribution 2.
The README contradicts itself: the English section says /interop is off by default while the Korean section says it is on by default (기본 ON), so self_consistency is deducted to 1. Cargo.toml uses a path dependency on vendor/semble and edition 2024, but no vendor contents or lockfile are provided, dependency_availability 1. No failure-message or error-handling documentation or code is shown, failure_messages 1.
README targets terminal developers with interactive TUI, --print scripting mode, --mode json structured events, and --orchestrate parallel sub-agents, so audience_and_scenarios 2. Capability boundaries are partly described via the tool table and read-only personas, but dangerous operations, network scope, and model capability differences are not bounded, capability_boundaries 1. Slash commands and flags are listed without conflict or precedence rules, trigger_precision 1. Platform support and install paths for macOS/Linux/Windows are explicit, environment_fit 2.
README has a full table of contents and sections for install, quick start, tools, commands, and configuration, information_architecture 2. Install notes cover one-line scripts, source build, and a platform table, install_notes 2. Persona ids are called stable but the project is at 0.1.21 with no API stability promise, naming_stability 1. Examples exist but the FAQ section is truncated in the provided files, examples_and_faq 1. Known limitations are barely listed, known_limitations 1. LICENSE is MIT but metadata is NOASSERTION and the copyright year reads 2026, license 1. A version number exists but no CHANGELOG, versioning_changelog 1. Maintenance responsibility points to an unverified publisher and bbarit.com, maintenance_responsibility 1.
Output usability is supported by --print emitting only the final answer on stdout and --mode json streaming structured events, output_usability 2. Marginal value rests on being a Claude Code/Codex alternative that reuses their MCP servers and skills, but the differentiation is mostly asserted without comparative evidence, marginal_value 1. Cost-benefit claims (single binary, low memory, memory reducing re-exploration) have no benchmarks or measurements, cost_benefit 1.
Many specific claims (295 personas, 1,000+ models, 0.1% overlap) point to PROVENANCE.md/NOTICE, but those files are not included in the provided evidence, claim_traceability 1. Cross-source corroboration is limited to CI workflows and Cargo.toml partially confirming build and test setup; other claims lack a second source, cross_source_corroboration 1. README mixes marketing language with facts without marking which claims were measured, fact_inference_separation 1.
- README contradicts itself on /interop default state (English says off, Korean says on); verify against actual code/settings before use.
- bash and computer tools can run arbitrary commands and desktop control inside an autonomous loop; no per-action confirmation or sandbox evidence is shown, so use in an isolated environment and constrain with --tools/--no-tools.
- Auto-memory extracts conversation content via background sub-agents and persists it, and the wiki writes to ~/Documents/octo-notes; confirm how sensitive data is handled and cleared.
- Cargo.toml relies on a path dependency vendor/semble and edition 2024, but no vendor contents or lockfile are provided, so build reproducibility is uncertain.
- License metadata is NOASSERTION and the LICENSE year reads 2026; the publisher is unverified, so provenance and maintenance responsibility need independent confirmation.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
Full Changelog: https://github.com/bbarit/bbarit-agent-oss/compare/v0.1.20...v0.1.21View on GitHub ↗ -
Release notes excerpt
Full Changelog: https://github.com/bbarit/bbarit-agent-oss/compare/v0.1.19...v0.1.20View on GitHub ↗ -
Release notes excerpt
Full Changelog: https://github.com/bbarit/bbarit-agent-oss/compare/v0.1.18...v0.1.19View on GitHub ↗