{"id":51721161,"url":"https://github.com/bbarit/bbarit-agent-oss","last_synced_at":"2026-07-21T15:01:39.180Z","repository":{"id":371700027,"uuid":"1302289233","full_name":"bbarit/bbarit-agent-oss","owner":"bbarit","description":"Open-source AI coding agent for your terminal — one Rust binary, 15+ LLM providers, 1,000+ models. A self-hostable Claude Code / Codex CLI alternative (MIT).","archived":false,"fork":false,"pushed_at":"2026-07-19T08:57:23.000Z","size":5410,"stargazers_count":36,"open_issues_count":0,"forks_count":10,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-19T13:21:07.388Z","etag":null,"topics":["agentic","ai","ai-agent","anthropic","claude","cli","code-generation","codex","coding-agent","developer-tools","gemini","llm","ollama","open-source","openai","pi","rust","self-hosted","terminal","tui"],"latest_commit_sha":null,"homepage":"https://bbarit.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbarit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-16T04:00:27.000Z","updated_at":"2026-07-19T12:59:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bbarit/bbarit-agent-oss","commit_stats":null,"previous_names":["bbarit/bbarit-agent-oss"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/bbarit/bbarit-agent-oss","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbarit%2Fbbarit-agent-oss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbarit%2Fbbarit-agent-oss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbarit%2Fbbarit-agent-oss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbarit%2Fbbarit-agent-oss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbarit","download_url":"https://codeload.github.com/bbarit/bbarit-agent-oss/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbarit%2Fbbarit-agent-oss/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35688503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"ssl_error","status_checked_at":"2026-07-20T02:08:09.736Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic","ai","ai-agent","anthropic","claude","cli","code-generation","codex","coding-agent","developer-tools","gemini","llm","ollama","open-source","openai","pi","rust","self-hosted","terminal","tui"],"created_at":"2026-07-17T11:46:02.259Z","updated_at":"2026-07-20T14:00:47.217Z","avatar_url":"https://github.com/bbarit.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.png\" alt=\"bbarit-oss — open-source AI coding agent for the terminal\" width=\"360\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ebbarit-oss\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/demo.gif\" alt=\"bbarit-oss demo — the agent writes and runs code in your terminal\" width=\"760\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eAn open-source AI coding agent for your terminal — written in Rust, one binary, 15+ LLM providers, 1,000+ models.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"MIT License\" src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\"\u003e\u003c/a\u003e\n  \u003cimg alt=\"Rust\" src=\"https://img.shields.io/badge/built%20with-Rust-000000?style=flat-square\u0026logo=rust\"\u003e\n  \u003cimg alt=\"Platforms\" src=\"https://img.shields.io/badge/macOS%20%C2%B7%20Linux%20%C2%B7%20Windows-informational?style=flat-square\"\u003e\n  \u003ca href=\"https://bbarit.com\"\u003e\u003cimg alt=\"Website\" src=\"https://img.shields.io/badge/website-bbarit.com-ff3040?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"PROVENANCE.md\"\u003e\u003cimg alt=\"Provenance\" src=\"https://img.shields.io/badge/source-provenance-blue?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"CONTRIBUTING.md\"\u003e\u003cimg alt=\"PRs welcome\" src=\"https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **What bbarit-oss is, in one line.**\n\u003e **Pi's simplicity + qwen-code's memory + a project wiki + Rust + Pi's gaps\n\u003e closed (auto-loads Claude Code \u0026 Codex MCP servers and skills) + agent\n\u003e personas.**\n\u003e\n\u003e **한 줄 요약.** **Pi의 단순함 + qwen-code의 메모리 + 프로젝트 위키 + Rust + Pi\n\u003e 단점 보완(Claude·Codex의 MCP 서버·스킬 자동 로드) + 에이전트 페르소나.**\n\u003e\n\u003e **Origin.** bbarit-oss began as the agent **built into\n\u003e [BBARIT Terminal](https://bbarit.com)**, our desktop AI coding IDE, and is now\n\u003e extracted and released as a standalone open-source CLI.\n\u003e\n\u003e **Why it's built on [Pi](https://github.com/earendil-works/pi) (MIT).** We\n\u003e deliberately inherited Pi's core philosophy — a **small, legible agent loop and\n\u003e a tight set of first-class tools** — rather than reinventing the loop or\n\u003e reaching for a heavy framework. A coding agent has to be predictable and\n\u003e debuggable, and Pi proved a minimal core can still be capable. We kept that\n\u003e simplicity and its provider-agnostic model registry, then built well beyond it:\n\u003e a multi-process **orchestrator** for parallel sub-agents, a project **wiki**,\n\u003e **295 personas**, and bundled **semantic code search**. It is a from-scratch\n\u003e **Rust** rewrite — no Pi source lines (comment overlap 0.1%, prose 0%); only\n\u003e non-copyrightable design and data (model IDs, endpoints) are shared.\n\u003e\n\u003e **Why the memory design comes from [qwen-code](https://github.com/QwenLM/qwen-code) (Apache-2.0).**\n\u003e Pi has no cross-session memory. Instead of inventing a weaker ontology, we\n\u003e adopted qwen-code's proven auto-memory design — its durable-fact taxonomy\n\u003e (`user` / `feedback` / `project` / `reference`) and human-readable `MEMORY.md`\n\u003e index — and wrote the Rust implementation and prompts ourselves.\n\u003e\n\u003e **Why Rust.** One self-contained static binary — no Node, no Python, no runtime\n\u003e to install. Startup is instant, memory stays low, and parallel sub-agents plus\n\u003e live streaming are fast and memory-safe. It cross-compiles to macOS, Linux, and\n\u003e Windows as a single file — one-line installers on every platform (`curl … | sh`\n\u003e on macOS/Linux, `irm … | iex` on Windows) — and `--upgrade` self-updates in\n\u003e place everywhere.\n\u003e\n\u003e **Why a built-in wiki.** Left to itself, an agent forgets your codebase between\n\u003e sessions and burns time and tokens re-deriving how it works. The project wiki\n\u003e gives it a durable, human-readable markdown knowledge base about the code —\n\u003e architecture, subsystems, gotchas — so it stops re-exploring from scratch and\n\u003e stays consistent turn after turn. (Distinct from auto-memory: the wiki is\n\u003e knowledge *about the code*; memory is facts *about you and the project*.)\n\u003e\n\u003e **Why it auto-loads Claude Code \u0026 Codex MCP servers and skills (closing a Pi\n\u003e gap).** Re-registering MCP servers and skills for every new agent is friction Pi\n\u003e never removed. bbarit-oss reads your existing `~/.claude.json` /\n\u003e `~/.claude/skills` and `~/.codex/config.toml` / `~/.codex/skills` and reuses\n\u003e them **as-is — on by default** (`/interop`), so your tools work on day one with\n\u003e zero reconfiguration.\n\u003e\n\u003e **Why agent personas.** A generic assistant is mediocre at everything. **295\n\u003e curated personas** turn the agent into a domain specialist — a backend\n\u003e architect, a security auditor, a data-viz designer — each a full personality\n\u003e brief (expertise, working style, priorities, taboos), not a one-line \"act as X.\"\n\u003e\n\u003e The **exact** measured overlap and every difference are disclosed in\n\u003e **[PROVENANCE.md](./PROVENANCE.md)**; attributions are in **[NOTICE](./NOTICE)**.\n\n\u003e **한국어 — 왜 Pi를 택했나.** Pi의 핵심 철학, 즉 **작고 읽히는 에이전트 루프와\n\u003e 최소한의 1급 도구 세트**를 의도적으로 물려받았습니다 — 루프를 재발명하거나 무거운\n\u003e 프레임워크에 기대는 대신. 코딩 에이전트는 예측 가능하고 디버그 가능해야 하며, Pi는\n\u003e 최소 코어로도 충분히 유능할 수 있음을 증명했습니다. 그 단순함과 프로바이더 불가지론\n\u003e 모델 레지스트리는 그대로 유지하되, 그 위에 멀티프로세스 **오케스트레이터**, 프로젝트\n\u003e **위키**, **295 페르소나**, 번들 **시맨틱 코드검색**을 크게 쌓았습니다. **Rust**로\n\u003e 처음부터 재작성했으며(Pi 소스 0줄 — 주석 겹침 0.1%, 창작 텍스트 0%), 저작권 대상이\n\u003e 아닌 설계·데이터(모델 ID·엔드포인트)만 공유합니다.\n\u003e\n\u003e **한국어 — 왜 qwen-code의 메모리인가.** Pi에는 세션 간 메모리가 없습니다. 더 약한\n\u003e 온톨로지를 새로 만들기보다, qwen-code의 검증된 자동 메모리 설계 — 지속 사실 분류\n\u003e (`user` / `feedback` / `project` / `reference`)와 사람이 읽는 `MEMORY.md` 인덱스 —\n\u003e 를 채택하고, **Rust 구현과 프롬프트는 직접 작성**했습니다. 출처는 `NOTICE`에 명시.\n\u003e\n\u003e **한국어 — 왜 Rust로 개발했나.** 런타임 없이 도는 단일 정적 바이너리 —\n\u003e Node·Python·node_modules 불필요. 시작이 즉각적이고 메모리가 낮으며, 병렬\n\u003e 서브에이전트와 실시간 스트리밍이 빠르고 메모리 안전합니다. macOS·Linux·Windows로\n\u003e 크로스컴파일되는 단일 파일 — 모든 플랫폼 원라인 설치(macOS·Linux는 `curl … | sh`,\n\u003e Windows는 `irm … | iex`) — `--upgrade`는 모든 플랫폼에서 제자리 자기업데이트됩니다.\n\u003e\n\u003e **한국어 — 왜 위키를 쓰나.** 그냥 두면 에이전트는 세션이 바뀔 때마다 코드베이스를\n\u003e 잊고 구조를 다시 파악하느라 시간과 토큰을 낭비합니다. 프로젝트 위키는 코드에 대한\n\u003e 지속적·사람이 읽는 마크다운 지식베이스(아키텍처·서브시스템·함정)를 에이전트에 줘서,\n\u003e 매번 처음부터 재탐색하는 걸 멈추고 턴을 넘어 일관성을 유지하게 합니다. (자동 메모리와\n\u003e 구분: 위키는 *코드에 대한* 지식, 메모리는 *당신과 프로젝트에 대한* 사실입니다.)\n\u003e\n\u003e **한국어 — 왜 Claude·Codex의 MCP 서버·스킬을 자동 로드하나 (Pi 단점 보완).**\n\u003e 새 에이전트마다 MCP 서버와 스킬을 다시 등록하는 건 Pi가 없애지 못한 마찰입니다.\n\u003e bbarit-oss는 기존 `~/.claude.json` / `~/.claude/skills`, `~/.codex/config.toml` /\n\u003e `~/.codex/skills`를 **그대로 읽어 재사용**합니다 — **기본 ON**(`/interop`)이라\n\u003e 재설정 없이 첫날부터 도구가 작동합니다.\n\u003e\n\u003e **한국어 — 왜 에이전트 페르소나인가.** 범용 비서는 모든 걸 어중간하게 합니다. **295개\n\u003e 큐레이션 페르소나**가 에이전트를 도메인 전문가(백엔드 아키텍트·보안 감사자·데이터\n\u003e 시각화 디자이너)로 바꿉니다 — \"act as X\" 한 줄이 아니라 전문성·업무 스타일·우선순위·\n\u003e 금기를 담은 완전한 성격 브리프입니다.\n\n**bbarit-oss** is a fast, terminal-native **AI coding agent** — an open-source\nCLI that reads, writes, and edits your code, runs your shell, searches your\nrepository, and pair-programs with the LLM of your choice. It ships as a\n**single static Rust binary** with no runtime to install, and works with\n**Anthropic Claude, OpenAI GPT / Codex, Google Gemini, and a dozen more\nproviders** (plus local models via Ollama) from one unified model registry.\n\nThink of it as a self-hostable, provider-agnostic alternative to Claude Code,\nCodex CLI, and Gemini CLI — you own the keys, the data, and the binary.\n\n---\n\n## Table of contents\n\n- [Why bbarit-oss?](#why-bbarit-oss)\n- [Install](#install)\n- [Quick start](#quick-start)\n- [Usage](#usage)\n- [Providers \u0026 authentication](#providers--authentication)\n- [Tools](#tools)\n- [Slash commands](#slash-commands)\n- [Personas](#personas)\n- [Auto-memory](#auto-memory)\n- [Project wiki](#project-wiki)\n- [Sessions](#sessions)\n- [Skills, extensions, LSP \u0026 MCP](#skills-extensions-lsp--mcp)\n- [Configuration](#configuration)\n- [Self-update](#self-update)\n- [Comparison](#comparison)\n- [How it works](#how-it-works)\n- [Contributing](#contributing)\n- [FAQ \u0026 troubleshooting](#faq--troubleshooting)\n- [Credits \u0026 license](#credits--license)\n\n---\n\n## Why bbarit-oss?\n\n- 🦀 **One static binary, no runtime.** No Node, no Python, no `node_modules`.\n  Download and run — startup is instant.\n- 🔌 **Bring your own model.** Anthropic, OpenAI (+ Codex), Google (Gemini /\n  Vertex), OpenRouter, Groq, Mistral, Together, Fireworks, DeepSeek, Cerebras,\n  Amazon Bedrock, GitHub Copilot, and local models via **Ollama** — **1,000+\n  models** from one registry, switchable mid-session.\n- 🔒 **Private by default.** Your keys and code stay on your machine. Nothing is\n  hard-coded, no secrets ship in the binary, and it never phones home. Point it\n  at a local model and stay fully offline.\n- 🧠 **A real agent, with real tools.** It reads and edits files, runs your\n  shell, greps and finds, does semantic **code search** over your repo, fetches\n  the web, and spawns parallel sub-agents — in an autonomous tool-use loop.\n- 🎭 **295 built-in personas** across 30 domains — turn the agent into a\n  specialist (backend, SRE, security, data, design, …) with one flag.\n- 🧩 **Extensible \u0026 standard.** Local skills, extensions, LSP servers, and MCP\n  servers plug straight in.\n- 🖥️ **A genuinely nice TUI.** Word-wrapped transcript, live token streaming,\n  syntax highlighting, model/login pickers, themes, and shell-style history.\n\n## Install\n\n### One line (macOS / Linux)\n\n```sh\ncurl -fsSL https://bbarit.com/agent/install.sh | sh\n```\n\nDownloads a prebuilt `bbarit-oss` binary for your platform and installs it into\n`~/.local/bin` (override with `BBARIT_INSTALL_DIR`).\n\n### One line (Windows, PowerShell)\n\n```powershell\nirm https://bbarit.com/agent/install.ps1 | iex\n```\n\nInstalls into `%LOCALAPPDATA%\\Programs\\bbarit-oss` (override with\n`BBARIT_INSTALL_DIR`) and adds it to your user PATH. Binaries are also\npublished on the [releases page](https://github.com/bbarit/bbarit-agent-oss/releases).\n\n### From source\n\nRequires the [Rust toolchain](https://rustup.rs) (stable).\n\n```sh\ngit clone https://github.com/bbarit/bbarit-agent-oss\ncd bbarit-agent-oss\ncargo build --release\n./target/release/bbarit --help\n```\n\n### Supported platforms\n\n| OS | Architectures |\n|---|---|\n| macOS | Apple Silicon (arm64), Intel (x64) |\n| Linux | x64, arm64 |\n| Windows | x64 |\n\n## Quick start\n\n```sh\n# 1. Launch the interactive TUI in your project directory\ncd my-project \u0026\u0026 bbarit-oss\n\n# 2. First launch with no credentials opens the login picker automatically —\n#    pick a provider (OAuth in your browser, or paste an API key). Or any time:\n/login anthropic sk-ant-api03-...   # Claude API key (browser OAuth is disabled)\n/login openai-codex                 # also: github-copilot, google, openrouter, groq, ...\n\n# 3. Pick a model (optional — there's a sensible default)\n/model claude-sonnet-5\n\n# 4. Just talk to it\nadd a --json flag to the CLI and update the tests\n```\n\nThe agent plans, edits files, runs commands, and shows you every tool call. Hit\n`Esc` to interrupt; `Up`/`Down` recall previous inputs; `Tab` opens the menu.\n\n## Usage\n\n### Interactive TUI (default)\n\nRun `bbarit-oss` with no arguments to open the full-screen agent in the current\ndirectory. Type instructions in natural language; use `/`-commands for control.\n\n### One-shot (`--print`) — for scripts and other agents\n\n```sh\nbbarit-oss --print --no-session \\\n  --provider anthropic --model claude-sonnet-5 \\\n  \"Explain what this repo does in one paragraph\"\n```\n\n`stdout` carries **only** the final answer (narration and tool activity go to\n`stderr`), so `bbarit-oss --print … 2\u003e/dev/null` is safe to pipe into other tools.\n\n### Structured events (`--mode json`)\n\nStreams newline-delimited JSON (`session` / `agent_start` / `message_update` /\n`turn_end` / `agent_end`) for programmatic consumers. See **[CLI.md](./CLI.md)**.\n\n### Parallel sub-agents (`--orchestrate`)\n\n```sh\nbbarit-oss --orchestrate \"audit auth.rs for bugs\" \"write tests for parser.rs\" \"update the README\"\n```\n\nRuns each task as an independent sub-agent process in parallel and collects the\nresults.\n\n### Handy flags\n\n| Flag | Effect |\n|---|---|\n| `--provider \u003cid\u003e` · `--model \u003cid\u003e` | Choose provider / model |\n| `--thinking low\\|medium\\|high` | Reasoning effort |\n| `--persona \u003cid\u003e` | Start in a specialist persona |\n| `-t, --tools bash,read,edit` | Allowlist tools · `--no-tools` disables all |\n| `--no-session` | Don't write a session file |\n| `--append-system-prompt \"…\"` | Extra system instructions |\n| `--print` / `--mode json` | Non-interactive output modes |\n| `--upgrade` | Update bbarit-oss itself, then exit |\n\nFull list: `bbarit-oss --help`.\n\n## Providers \u0026 authentication\n\nOne registry, many providers. On a **fresh install with no credentials,\nbbarit-oss opens the login picker automatically** on first launch — you're one\nkeystroke from signing in. After that, log in any time with `/login \u003cprovider\u003e`\n(OAuth where supported, otherwise an API key), or set the provider's environment\nvariable.\n\n| Provider | Auth |\n|---|---|\n| Anthropic (Claude) | API key — `/login anthropic sk-ant-…` or `ANTHROPIC_API_KEY` (browser OAuth is disabled) |\n| OpenAI | `OPENAI_API_KEY` |\n| OpenAI Codex (ChatGPT) | OAuth / device login |\n| Google Gemini | `GEMINI_API_KEY` |\n| Google Vertex | ADC / `GOOGLE_CLOUD_API_KEY` |\n| OpenRouter | `OPENROUTER_API_KEY` |\n| Groq · Mistral · Together · Fireworks · DeepSeek · Cerebras | provider API key |\n| Amazon Bedrock | AWS credentials / profile |\n| GitHub Copilot | device login |\n| Ollama (local) | none — auto-discovered from `OLLAMA_HOST` |\n\nSwitch models any time with `/model`; browse with `/models`.\n\n## Tools\n\nThe agent calls these autonomously inside its loop:\n\n| Tool | Purpose |\n|---|---|\n| `read` · `write` · `edit` | Read and modify files (targeted, hash-checked edits) |\n| `bash` | Run shell commands in the project directory |\n| `grep` · `find` · `ls` · `tree` | Navigate and search the tree (gitignore-aware) |\n| `code_search` | Hybrid BM25 + semantic search over your repo (bundled `semble`) |\n| `web_search` · `web_fetch` | Look things up and fetch pages |\n| `task` | Spawn a sub-agent for a focused subtask |\n| `computer` | Opt-in screenshot + mouse/keyboard control (`/computer on`) |\n\nRestrict what the agent may do with `--tools` / `--exclude-tools` /\n`--no-tools`, and gate mutations behind project trust (`--approve`).\n\n## Slash commands\n\nA selection (run `/help` for the full list):\n\n| Command | Description |\n|---|---|\n| `/login`, `/logout`, `/accounts` | Manage provider credentials |\n| `/model`, `/models`, `/providers` | Choose model / provider |\n| `/thinking` | Set reasoning effort |\n| `/persona` | Adopt a specialist persona |\n| `/session`, `/sessions`, `/new`, `/resume`, `/fork`, `/clone` | Session control |\n| `/export`, `/import`, `/share` | Save / load / share as HTML |\n| `/skills`, `/prompts`, `/themes`, `/extensions` | Load resources |\n| `/memory`, `/wiki` | Cross-session memory \u0026 project wiki |\n| `/lens` | Review your uncommitted changes |\n| `/computer on\\|off` | Toggle desktop control |\n| `/reload`, `/help`, `/quit` | Housekeeping |\n\n## Personas\n\nbbarit-oss ships **295 curated personas** across **30 domains** — engineering,\ndata/AI, security, SRE, design, product, growth, finance, legal, game dev, and\nmore. A persona is not a one-line \"act as X\" hint: each one is a full\n**personality brief** (expertise, working style, priorities, taboos) that the\nagent adopts completely.\n\n**The library at a glance.** 295 personas across 30 domains — pick one with\n`/persona \u003cid|name|search\u003e`, or browse them all in the TUI picker (fuzzy search\nacross id, name, and description).\n\n| Domain | Count | Examples |\n|---|--:|---|\n| Specialized | 54 | `accounts-payable-agent`, `agentic-identity-trust` |\n| Marketing | 36 | `aeo-foundations`, `agentic-search-optimizer` |\n| Engineering | 34 | `ai-data-remediation-engineer`, `ai-engineer` |\n| Design | 21 | `accessibility-designer`, `brand-guardian` |\n| GIS \u0026 mapping | 13 | `3d-scene-developer`, `analyst` |\n| Content creation | 12 | `ad-creative-director`, `brand-storyteller` |\n| Security | 10 | `appsec-engineer`, `architect` |\n| Sales | 9 | `account-strategist`, `coach` |\n| Testing | 8 | `accessibility-auditor`, `api-tester` |\n| Paid media | 7 | `auditor`, `creative-strategist` |\n| Project management | 7 | `experiment-tracker`, `jira-workflow-steward` |\n| Spatial computing | 6 | `macos-spatial-metal-engineer`, `terminal-integration-specialist` |\n| Support | 6 | `analytics-reporter`, `executive-summary-generator` |\n| Academic | 5 | `anthropologist`, `geographer` |\n| Finance | 5 | `bookkeeper-controller`, `financial-analyst` |\n| Game development | 5 | `game-audio-engineer`, `game-designer` |\n| Product | 5 | `behavioral-nudge-engine`, `feedback-synthesizer` |\n| Ad performance | 4 | `google-ads-specialist`, `media-buyer` |\n| Business \u0026 startup | 4 | `biz-dev-manager`, `pricing-strategist` |\n| Commerce ops | 4 | `crm-retention-manager`, `ecommerce-operator` |\n| Data \u0026 AI | 4 | `automation-builder`, `data-analyst` |\n| Health \u0026 wellness | 4 | `fitness-programmer`, `habit-architect` |\n| HR \u0026 education | 4 | `career-coach`, `curriculum-designer` |\n| Image prompting | 4 | `character-illustrator-prompter`, `midjourney-prompter` |\n| Legal \u0026 finance | 4 | `accounting-organizer`, `contract-reviewer` |\n| Media, audio \u0026 photo | 4 | `audio-engineer`, `music-producer` |\n| Real estate \u0026 space | 4 | `interior-planner`, `office-space-designer` |\n| Sales (pro) | 4 | `account-manager`, `outbound-sales-hunter` |\n| Video production | 4 | `cinematographer`, `live-stream-pd` |\n| Writing \u0026 translation | 4 | `book-author-coach`, `speech-writer` |\n\n**Source \u0026 license.** The persona briefs are adapted from\n[AgentLand](./personas/LICENSE) (MIT, © 2025 AgentLand Contributors); the persona\n*system* around them (injection, read-only mode, picker, overrides) is our own.\n\n**How a persona is defined.** Each persona is a markdown file at\n`personas/\u003cdivision\u003e/\u003cid\u003e.md`. The file stem is its stable id, the parent\ndirectory is its division, and the frontmatter carries `name`, `description`,\n`emoji`, `color`, and a one-line `vibe`; the body below the frontmatter is the\nbrief itself. Drop your own `.md` file into a `personas/` directory (project or\nuser level) and it joins the library — no code changes.\n\n**How to adopt one.**\n\n```sh\nbbarit-oss --persona backend-engineer      # at startup (id, name, or search term)\nBBARIT_PERSONA=sre-oncall bbarit-oss       # via environment (how a launcher assigns one)\n# or in a session:\n/persona security-auditor              # adopt\n/persona off                           # drop back to the neutral agent\n```\n\nThe active persona is injected into the system prompt as a\n`\u003cpersona id=\"…\" name=\"…\"\u003e` block, and the TUI title bar shows its emoji +\nname badge so you always know **who** the agent currently is. A\n`defaultPersona` in settings makes every new session open in character.\n\n**Read-only personas.** A brief containing `%%mode=readonly` turns the persona\ninto a pure advisor: mutating tools (write/edit/bash/…) are refused while it is\nactive — perfect for reviewer or auditor personas that must never touch the\ntree. The picker lists engineering first, the rest alphabetically, and fuzzy\nsearch works across id, name, and description.\n\n## Auto-memory\n\nThe agent remembers what matters **across sessions** — automatically. The\ndesign is adapted from qwen-code (see [PROVENANCE.md](./PROVENANCE.md)); the\nimplementation is `src/memory.rs`.\n\n**Recall (turn start).** Before each turn, stored memories are scored against\nyour prompt by keyword overlap — **no LLM call, no added latency** — and the\nmost relevant ones are injected as background context. The agent simply \"knows\"\nyour preferences, your project constraints, and the corrections you made last\nweek.\n\n**Extraction (turn end).** After a turn, a background `--print` sub-agent reads\nthe conversation delta and extracts **durable facts only** — things that will\nstill be useful in future sessions. Each fact is typed:\n\n| Type | What it captures |\n|---|---|\n| `user` | who you are — role, expertise, preferences |\n| `feedback` | corrections and confirmed ways of working (\"always X, never Y\") |\n| `project` | goals, decisions, constraints not derivable from the code |\n| `reference` | pointers to external resources |\n\nExtraction is deliberately conservative: it skips transient task state,\nanything derivable from code or git history, and it only runs when the turn\nadded enough new conversation (4+ messages, capped at a 16 KB delta). A\nper-session cursor guarantees nothing is extracted twice, and sub-agents\n(`BBARIT_SUBAGENT=1`) never extract — no recursive memory loops.\n\n**Storage you can read and edit.** Every memory is a plain\n`\u003cslug\u003e.md` file (frontmatter: name, description, type) under the agent's\n`memory/` directory, with a one-line-per-memory `MEMORY.md` index. Open them in\nany editor; the agent treats your edits as truth.\n\n```sh\n/memory                    # list stored memories\n/memory show \u003cname\u003e        # view one in full\n/memory forget \u003cname\u003e      # delete one\n/memory reset              # clear all memories\nBBARIT_AUTO_MEMORY=0       # turn the whole feature off\n```\n\n## Project wiki\n\nA **per-project knowledge base** the agent maintains as it works\n(`src/wiki.rs`). Pages are plain markdown in a shared note vault\n(`~/Documents/octo-notes`), with each project scoped to its own\n`projects/\u003cslug\u003e/` corner — one project's knowledge is **never** injected into\nanother project's prompt.\n\n**The agent writes it, you read it — or vice versa.** The `wiki` tool gives the\nagent five actions: `get`, `set`, `list`, `search`, `delete`. The system prompt\ntells it to record what it learns about the codebase and what it changed, and\nto read the wiki back before related work — so hard-won context (build quirks,\narchitecture decisions, gotchas) survives session boundaries and compactions.\n\n```sh\n/wiki                      # list this project's pages\n/wiki \u003cquery\u003e              # full-text search with snippets\n/wiki get \u003cname\u003e           # load and view a note in full\n/wiki delete \u003cname\u003e        # delete one note\n/wiki reset                # clear this project's notes (other projects untouched)\n```\n\nMutating actions (`set` / `delete`) are gated exactly like file edits: blocked\nin plan mode and under read-only personas. Pages are ordinary markdown files —\nwikilinks and tags included — so they double as human notes, and BBARIT\nTerminal's notes app shows the same vault. Legacy per-project wiki stores are\nimported once, without clobbering existing notes.\n\n## Sessions\n\nEvery conversation is a **JSONL tree session** you can branch, fork, clone,\nrename, resume, and export to self-contained HTML. Sessions live in the agent's\nconfig directory and are pruned to the most recent 30 automatically.\n\n## Reuse your Claude Code \u0026 Codex setup\n\nYou have probably already wired up MCP servers and skills in **Claude Code** or\n**Codex**. bbarit-oss reads those configs **as-is** and loads the same servers\nand skills — so your existing toolbox works on the first run, with nothing to\nre-register.\n\nWhere it looks (highest priority first — first match wins on a name clash):\n\n| Source | MCP servers | Skills |\n|---|---|---|\n| **This project** | `./.mcp.json` | `.agents/skills/` |\n| **bbarit-oss (yours)** | `~/.bbarit-oss/agent/mcp.json` | `~/.bbarit-oss/agent/skills/` |\n| **Claude Code** | `~/.claude.json` → `mcpServers` | `~/.claude/skills/`, `./.claude/skills/` |\n| **Codex** | `~/.codex/config.toml` → `[mcp_servers]` | `~/.codex/skills/` |\n\n**Read-only, and safe.** bbarit-oss only *reads* Claude/Codex files — it never\nwrites to another tool's config. Only stdio MCP servers are used; entries marked\n`disabled`/`enabled = false` are skipped, exactly as those tools would.\n\n**It is a toggle**, because not everyone wants it:\n\n```sh\n/interop            # show current state\n/interop off        # ignore Claude/Codex; use only bbarit-oss's own configs\n/interop on         # re-enable (the default)\n```\n\nOr set `BBARIT_INTEROP=0` in the environment or `~/.bbarit-oss/agent/.env`. The\nsetting is remembered, and `/settings` shows the live state.\n\n## Skills, extensions, LSP \u0026 MCP\n\n- **Skills** — drop `SKILL.md` files (with frontmatter) into a skills directory;\n  the agent loads them on demand.\n- **Extensions** — local JS/TS extensions can add commands, tools, hooks,\n  shortcuts, and even custom providers.\n- **LSP** — language servers provide diagnostics and code intelligence.\n- **MCP** — connect Model Context Protocol servers to add tools and resources.\n  Register one without hand-editing JSON:\n\n  ```sh\n  /mcp add filesystem npx -y @modelcontextprotocol/server-filesystem .\n  /mcp                 # list servers and how many tools each exposes\n  /mcp remove filesystem\n  ```\n\n  `/mcp add` writes the entry to this project's `.mcp.json` and connects it\n  immediately; the tools appear in the agent's toolset on the next turn.\n\n- **New skills, instantly.** Scaffold a project skill and start editing:\n\n  ```sh\n  /skill new deploy-steps \"run the deploy checklist in order\"\n  ```\n\n  This creates `.agents/skills/deploy-steps/SKILL.md` (frontmatter + body) and\n  loads it automatically — fill in the body and the agent can pull it in on\n  demand.\n\n## Configuration\n\nbbarit-oss is **fully self-contained**: everything lives under its own\n`~/.bbarit-oss/agent/` directory — credentials, settings, sessions, memories,\nthe wiki note vault (`notes/`), and its dotenv (`.env`). It shares **nothing**\nwith the BBARIT Terminal desktop app or any other tool; installing or removing\nit never touches other programs' state. (A legacy `~/.pi/agent` layout is\nmigrated once, and per-project `./.pi` settings keep working for Pi-ecosystem\ncompatibility.)\n\nAPI keys resolve in this order: `--api-key` → stored `/login` credentials →\nprovider config → environment variables. Nothing is hard-coded and no secrets\nare compiled into the binary.\n\nUseful environment variables:\n\n| Variable | Meaning |\n|---|---|\n| `BBARIT_AGENT_MODE=1` | Agent mode (set when a program pipes to bbarit-oss) |\n| `BBARIT_AUTO_CONTEXT=0` | Disable start-of-turn code-context injection |\n| `BBARIT_AUTO_MEMORY=0` | Disable auto-memory recall/extract |\n| `BBARIT_PERSONA=\u003cid\u003e` | Startup persona |\n| `BBARIT_UPDATE_BASE=\u003curl\u003e` | Override the update/install server |\n\n## Self-update\n\n```sh\nbbarit-oss --upgrade\n```\n\nChecks the release manifest, downloads the latest prebuilt binary for your\nplatform, and atomically replaces the running executable. Downgrades are\nrefused, and a failed download never leaves a broken binary behind.\n\n**At startup**, bbarit-oss also checks for a newer release in the background\n(non-blocking) and shows a one-line hint when one is available — run `/update`\nin the session, or `bbarit-oss --upgrade`. To upgrade automatically at launch,\nset `BBARIT_AUTO_UPGRADE=1`; to turn the check off, set `BBARIT_NO_UPDATE_CHECK=1`.\n\n## Comparison\n\n| | bbarit-oss | Claude Code | Codex CLI | Gemini CLI |\n|---|---|---|---|---|\n| Open source | ✅ MIT | ❌ | ✅ | ✅ |\n| Language / runtime | Rust, single binary | Node | Rust | Node |\n| Multi-provider | ✅ 15+ | Anthropic | OpenAI | Google |\n| Local models (Ollama) | ✅ | ❌ | ❌ | ❌ |\n| Built-in personas | ✅ 295 | ❌ | ❌ | ❌ |\n| Semantic code search | ✅ bundled | ❌ | ❌ | ❌ |\n| Cross-session auto-memory | ✅ | ❌ | ❌ | ❌ |\n| Project wiki | ✅ | ❌ | ❌ | ❌ |\n| Parallel sub-agents | ✅ multi-process | ❌ | ❌ | ❌ |\n| Reuse Claude Code + Codex MCP/skills | ✅ `/interop` | — | — | — |\n| MCP support | ✅ | ✅ | ✅ | ✅ |\n| Self-update (`--upgrade`) | ✅ every platform | ✅ | ✅ | ✅ |\n\n\u003e Also compared to **[Pi](https://github.com/earendil-works/pi)** (our MIT upstream, TypeScript/Node): bbarit-oss keeps Pi's small, legible core but rewrites it in **Rust** (single binary, no runtime) and adds the orchestrator, wiki, personas, auto-memory, and interop that Pi doesn't have — see [PROVENANCE.md](./PROVENANCE.md) for the exact overlap.\n\n## How it works\n\n```\nyou ─▶ TUI / CLI ─▶ agent loop ─▶ LLM (your provider)\n                        │              │\n                        ▼              ▼\n                     tools ◀──── tool calls\n              (read/edit/bash/search/…)\n```\n\nThe agent runs an iterative **assistant → tool call → tool result** loop until\nthe model produces a final answer with no further tool calls. A background,\nprocess-global **code index** (semble) keeps repository search fast without\nblocking turns. Context is compacted automatically as sessions grow.\n\n## Contributing\n\nContributions are welcome — see **[CONTRIBUTING.md](./CONTRIBUTING.md)** and our\n**[Code of Conduct](./CODE_OF_CONDUCT.md)**. In short:\n\n```sh\ncargo fmt --all\ncargo build\ncargo test\n```\n\nOpen an issue for bugs and ideas, or a PR for changes. CI runs fmt, build, and\ntests on Linux and macOS (clippy is advisory).\n\n## FAQ \u0026 troubleshooting\n\n**How is this different from Claude Code / Codex CLI / Gemini CLI?**\nIt is open source, model-agnostic (any provider, or a local model), and ships as\na single Rust binary with no runtime.\n\n**Is it related to Pi?**\nYes — its design is based on [Pi](https://github.com/earendil-works/pi) (MIT). It\nis an independent Rust rewrite; we publish the exact measured source overlap and\nthe full list of differences in [PROVENANCE.md](./PROVENANCE.md). If you found Pi\nand want a single-binary, multi-provider version, bbarit-oss is it.\n\n**Which LLM providers are supported?**\nAnthropic Claude, OpenAI (GPT + Codex), Google Gemini / Vertex, OpenRouter, Groq,\nMistral, Together, Fireworks, DeepSeek, Cerebras, Amazon Bedrock, GitHub Copilot,\nand local models via **Ollama** — 15+ providers, 1,000+ models from one registry.\n\n**Can I use it with a local model / offline?**\nYes. Point it at **Ollama** (`/ollama`) to run entirely on your machine — no API\nkey, no data leaving your computer.\n\n**Is it free?**\nThe agent is free and open source (MIT). You only pay your own LLM provider (or\nrun a local model for $0).\n\n**How do I install it on Windows?**\nOne line in PowerShell: `irm https://bbarit.com/agent/install.ps1 | iex` — it\ninstalls to `%LOCALAPPDATA%\\Programs\\bbarit-oss` and adds it to your PATH\n(Windows-on-ARM runs the x64 binary under emulation). `--upgrade` self-updates\nit in place. Binaries are also on the\n[releases page](https://github.com/bbarit/bbarit-agent-oss/releases).\n\n**Is my code private?**\nYes — your keys and code stay on your machine and go only to the provider you\nchoose. It is fully self-hostable; nothing routes through us.\n\n**`bbarit-oss: command not found` after install.**\nAdd the install directory to your `PATH`: `export PATH=\"$HOME/.local/bin:$PATH\"`.\n\n**Login didn't open a browser.**\nCopy the URL bbarit-oss prints and open it manually; the callback still completes.\n\n**Does it phone home?**\nNo. Your API keys and code stay on your machine.\n\n## Credits \u0026 license\n\nReleased under the [MIT License](./LICENSE). Based on\n[Pi](https://github.com/earendil-works/pi) (MIT, © 2025 Mario Zechner); Pi's\ncopyright notice is preserved in [NOTICE](./NOTICE), and the measured source\noverlap is disclosed in [PROVENANCE.md](./PROVENANCE.md). Bundles the MIT-licensed\n[`semble`](https://github.com/johunsang/semble_rs) code-search engine.\n\n---\n\n\u003csub\u003e\nbbarit-oss — open-source AI coding agent · terminal coding agent · CLI coding\nassistant · open-source Claude Code alternative · Codex CLI alternative · Gemini\nCLI alternative · Rust coding agent · LLM agent · AI pair programming · autonomous\ncoding agent · Anthropic Claude · OpenAI GPT · Google Gemini · OpenRouter · Ollama\n· local LLM · MCP · developer tools.\n\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbarit%2Fbbarit-agent-oss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbarit%2Fbbarit-agent-oss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbarit%2Fbbarit-agent-oss/lists"}