Briar
Integrates with Bitbucket repositories and pull requests for knowledge extraction and coding agent workflows.
Integrates with GitHub repositories, pull requests, and issues for knowledge extraction and coding agent workflows, including opening draft PRs.
Integrates with Jira to read tickets and projects as knowledge and to let coding agents implement tickets.
Integrates with Linear to read issues and projects as knowledge and to let coding agents work on tickets.
Adds OpenAI as an LLM provider for briar's coding agents and chat.
Adds HashiCorp Vault integration for managing credentials and secrets.
briar
briar is a command-line tool that runs on your own machine. It does two things:
It reads what is going on in your team's tools (GitHub or Bitbucket, Jira or Linear, AWS, Fireflies) and saves it as markdown "knowledge".
It runs AI coding agents that use that knowledge. One agent takes a ticket and opens a draft PR. Another fixes the review comments on a PR.
There is no briar server and no account. briar talks only to the services you set up: your code host, your tracker, your cloud, and your LLM provider. Your credentials stay in a file on your machine.
Install
pip install briar-cli
briar versionYou get briar-cli 1.1.75 (or newer). briar needs Python 3.10 or later.
The base install covers GitHub, Bitbucket, AWS, Jira, Linear, Fireflies, Anthropic (Claude) and AWS Bedrock, with a file or Postgres store. It also runs the coding agents. Extras add more:
pip install 'briar-cli[mcp]' # briar mcp serve, briar chat, MCP tools for agents
pip install 'briar-cli[all]' # everything belowThe extras are [openai], [gemini], [mcp], [gcp], [azure] and
[vault].
To run briar agent or briar plan run you also need git and the
GitHub CLI gh, because the agent runs them.
The [mcp] extra adds three things:
briar mcp serveandbriar chat. They do not start without it.The tool servers listed under
mcp:in a runbook. An agent run with such a runbook stops without the extra.Two small helper tools for agents, "think" and "time". Without the extra, briar skips them, logs one warning and goes on.
Since 1.1.74 a plain install runs agents. Older versions stopped with
MCP support requires the `mcp` package unless you passed
--no-default-mcp.
Related MCP server: Mnela MCP Server
Quickstart
# 1. Save a GitHub token and Jira login. They go to ~/.config/briar/secrets.env
briar auth login github-pat --company acme
briar auth login jira-token --company acme
# 2. Give briar a Claude key. It reads it from your shell.
export ANTHROPIC_API_KEY=sk-ant-your-key
# 3. Read the repo's recent PRs and its tools into the blob knowledge:acme
briar extract --company acme --repo acme-co/acme-app \
--include pr-archaeology --include codebase-conventions --max 50
# 4. Read what was saved
briar context get knowledge:acme
# 5. Print the agent's prompt for ticket ACME-42. No cost, nothing pushed.
briar agent implement --company acme --repo acme-co/acme-app \
--ticket-key ACME-42 --tracker jira --dry-run
# 6. Run it for real: clone, branch, code, test, open a draft PR
briar agent implement --company acme --repo acme-co/acme-app \
--ticket-key ACME-42 --tracker jiraAfter step 3 you have ./knowledge/knowledge/acme.md. After step 6 you
have a branch chore/acme-42 and a draft PR on acme-co/acme-app.
Less typing with .briar.toml
Every setting is looked up in this order: the flag you type, then an
environment variable, then .briar.toml, then the built-in default. The
repo owner and name can also come from the git origin remote.
Write a starter file in your repo:
briar init --company acmeYou get a .briar.toml with the company, the store, and the repo taken
from git. The [agent] part comes commented out. Uncomment it to set
agent defaults:
company = "acme"
store = "file"
[repo]
owner = "acme-co"
repo = "acme-app"
provider = "github"
[agent]
model = "claude-sonnet-4-6"
git_user_name = "Acme Bot"
git_user_email = "bot@acme.com"Inside that repo the commands get short:
briar extract --include pr-archaeology
briar agent implement --ticket-key ACME-42briar config show prints each setting and where it came from.
briar doctor checks the config, git, credentials and store.
eval "$(briar completion bash)" turns on tab completion (zsh works too).
See setup.md.
Run with Docker
The image iklob1/briar has briar, the [mcp] extra, git and gh.
Nothing else to install:
docker run --rm iklob1/briar versionTo work on a repo, mount it and your briar config folder:
docker run --rm \
-v "$PWD":/work -w /work \
-v "$HOME/.config/briar":/home/briar/.config/briar \
-e ANTHROPIC_API_KEY \
iklob1/briar extract --company acme --include pr-archaeology-v "$PWD":/work -w /workmounts your repo, so.briar.tomland./knowledgework as on your machine.-v "$HOME/.config/briar":/home/briar/.config/briarmounts the credentials thatbriar auth loginsaved.-e ANTHROPIC_API_KEYpasses a variable from your shell. Repeat-efor others. Saved credentials need no-e.
Some commands need more:
Command | Add |
|
|
|
|
|
|
docker run --rm -it -v "$HOME/.config/briar":/home/briar/.config/briar \
iklob1/briar auth login github-pat --company acme
docker run --rm -p 8080:8080 -v "$PWD":/work -w /work \
iklob1/briar dashboard --host 0.0.0.0Run an agent in Docker
Since 1.1.75 the image can run briar agent and briar plan run. Add
two keys and your git name and email:
docker run --rm \
-v "$PWD":/work -w /work \
-v "$HOME/.config/briar":/home/briar/.config/briar \
-e GITHUB_TOKEN -e ANTHROPIC_API_KEY \
iklob1/briar agent implement --company acme --repo acme-co/acme-app \
--ticket-key ACME-42 --tracker jira \
--git-user-name "Dana Lee" --git-user-email dana@acme.comIt runs the same steps as on your machine: a branch chore/acme-42 and a
draft PR on acme-co/acme-app. Add --dry-run to see the prompt first.
--git-user-nameand--git-user-emailgive the commits your name and email. You can mount~/.gitconfiginstead, read-only:-v "$HOME/.gitconfig":/home/briar/.gitconfig:ro.-e GITHUB_TOKENletsgit pushandghlog in to GitHub. In the image, git asksghfor the login, andghreadsGITHUB_TOKEN.-e ANTHROPIC_API_KEYis the Claude key.-e CLAUDE_CODE_OAUTH_TOKENworks too.The Jira keys come from the mounted config folder.
--repocan also come from[repo]in the mounted.briar.toml.
Good to know:
A
~/.gitconfigfrom a Mac works.gh auth setup-gitwrites the path ofghon your machine into it (/usr/local/bin/ghor/opt/homebrew/bin/gh). Since 1.1.79 the image hasghat both paths. Before that, the push failed with "gh: not found".briar can also read owner and repo from the mounted repo's git
originremote. Since 1.1.79 this works whoever owns the folder. Before that, on Linux, git refused a folder not owned by uid 1000 ("detected dubious ownership"), and you had to pass--repo.The image sets up the git login for GitHub only. For Bitbucket, run agents from a local install.
The image sets
BRIAR_NO_DEFAULT_MCP=1, because it has nonpxoruvxfor the agent's helper tools. An image of your own that adds them can pass-e BRIAR_NO_DEFAULT_MCP=0.The image is built for
linux/amd64only. On Apple Silicon, Docker runs it with emulation.The container runs as user
briar(uid 1000). On Linux, the folders you mount must be writable by that uid.Tags are
latestand each version, for exampleiklob1/briar:1.1.75.
Commands
Each command has a manual in agents/.
The same reference, with more examples, is at
usebriar.com/docs.
Command | What it does | Manual |
| Reads your tools into a knowledge blob (23 extractors). | |
| Takes one ticket and opens a draft PR. | |
| Fixes and answers the review comments on one PR. | |
| Turns a Jira or GitHub Projects board into a plan, then runs it card by card. | |
| Runs extractors from a YAML file, once or on a schedule. | |
| Reads, writes, lists and deletes knowledge blobs. | |
| Writes a JSON config bundle for an agent workflow. | |
| Saves credentials ( | |
| Shows which credentials are missing ( | |
| Shows the decisions that | |
| Serves a read-only status page. | |
| Serves briar as MCP tools, or drives them from a chat in your terminal. | |
| Setup helpers. | |
| Shows or changes what usage data is sent. | |
| Prints the version. |
Recipes that chain these commands are in flows.md. A runbook that uses every feature is examples/all_features.yaml.
Three flags work with every command, anywhere on the line:
Flag | What it does |
| Output shape. Lists default to |
| Debug logs on stderr. |
| Print the version and exit. |
Telemetry
briar sends error reports and usage counts by default. No prompts, file
contents, ticket keys, repo names, paths or secret values leave your
machine. Turn it off with briar telemetry off, BRIAR_TELEMETRY=off
or DO_NOT_TRACK=1.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Personal knowledge graph as an AI memory layer over MCP - read, save, and link your memories.
- ContexelOAuthai.contexel
Shared AI memory. ChatGPT, Claude, Cursor and any MCP app read and write the same memory.
shared AI-context layer for teams — persistent memory your agents search and update over MCP
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceLocal-first dev memory: indexes Git commits, PRs, Jira/Linear tickets, Confluence docs, Slack threads, and Calendar events into a local SQLite/FTS5/ONNX index, and exposes them as MCP tools so Claude Code, Cursor, and Codex can search and cite your past work.175MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to read and write into a self-hosted personal knowledge base built from imported chats, documents, and notes, with a knowledge graph and AI-powered enrichment.1MIT
- AlicenseNot gradedqualityDmaintenanceLocal-first knowledge base that ingests activity from Slack, GitHub, agent sessions, and CLI, stores provenance in SQLite, and exposes the brain via MCP, CLI, Slack, and dashboard for recall and skill proposals.MIT
- AlicenseNot gradedqualityDmaintenanceLocal-first Knowledge Management System that exposes markdown-based durable memory as MCP tools for Codex and ChatGPT, enabling search, read, write, and promotion workflows with project and global scopes.MIT