bbarit-oss

An open-source terminal AI coding agent: one Rust binary, 15+ providers, 1,000+ models, self-hostable.

Stars
★ 150
Last updated
3mo ago
License
NOASSERTION
Primary language
Rust

At a glance

How it runs
CLI
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
Rust toolchain (stable, only for building from source)Shell / CLINetwork accessLocal filesystemMCP Server
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)

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.

  1. Developers who live in the terminal and want to switch between Claude, GPT, Gemini and local Ollama models with one command set.
  2. 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).
  3. Security-sensitive teams that must run the agent offline or on an internal network with local models via Ollama.
  4. Engineers embedding a coding agent in scripts or CI: clean stdout via --print, structured NDJSON via --mode json.
  5. Individuals or small teams that want several subtasks — auditing, test writing, doc updates — running in parallel with --orchestrate.
  6. 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 | sh

One-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 | iex

Building 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 --help

Supported 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-oss

Or 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-5

For 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?

Pros
  • 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.
Limitations
  • 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?

FollowAgents source review · FARS-2.1
Major gaps
42/ 100 5-point scale 2.1 / 5
Trust 11/29
Reliability 5/14
Adaptability 9/18
Convention 8/18
Effectiveness 6/13
Verifiability 3/8
Why each dimension lost points
Trust11 / 29 · 1.9/5

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.

Reliability5 / 14 · 1.8/5

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.

Adaptability9 / 18 · 2.5/5

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.

Convention8 / 18 · 2.2/5

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.

Effectiveness6 / 13 · 2.3/5

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.

Verifiability3 / 8 · 1.9/5

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.

Risks and how to mitigate them
  • 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.
Evidence confidence: Low Reviewed Nov 02, 2026 Reviewed revision 2cb8b723f278
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.1.21
    Release notes excerpt
    Full Changelog: https://github.com/bbarit/bbarit-agent-oss/compare/v0.1.20...v0.1.21
    View on GitHub ↗
  2. v0.1.20
    Release notes excerpt
    Full Changelog: https://github.com/bbarit/bbarit-agent-oss/compare/v0.1.19...v0.1.20
    View on GitHub ↗
  3. v0.1.19
    Release notes excerpt
    Full Changelog: https://github.com/bbarit/bbarit-agent-oss/compare/v0.1.18...v0.1.19
    View on GitHub ↗

FAQ

Does it cost anything to use?
The software is MIT and free. You pay your own LLM provider per use, or run a local Ollama model at zero cost. Nothing routes through the vendor and there is no hosted subscription tier.
Where do my keys and code go?
The README states keys and code stay on your machine and are sent only to the provider you choose: nothing is hard-coded, no secrets ship in the binary and it does not phone home. All state lives under ~/.bbarit-oss/agent/, isolated from the BBARIT Terminal desktop app. With Ollama it runs fully offline.
Will it automatically pick up my Claude Code / Codex MCP servers?
Not by default — /interop is off. When enabled it only reads ~/.claude.json, ~/.claude/skills, ~/.codex/config.toml and ~/.codex/skills, loads only stdio MCP servers, skips entries marked disabled, and never writes to another tool's config.
Can auto-memory store things I don't want kept?
Extraction is deliberately conservative: only user/feedback/project/reference facts, skipping transient task state and anything derivable from code or git history, and it runs only when a turn adds 4+ messages (16 KB delta cap). Sub-agents never extract, avoiding recursive loops. Disable it with BBARIT_AUTO_MEMORY=0, or clean up with /memory forget and /memory reset.
Which platforms are supported?
macOS (Apple Silicon and Intel), Linux (x64 and arm64) and Windows x64 via the PowerShell installer into %LOCALAPPDATA%\Programs\bbarit-oss; Windows-on-ARM runs the x64 binary under emulation.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents