bifrost
开发工具 活跃维护

bifrost

BrokkAi/bifrost

支持多语言代码静态分析,可无缝适配智能体开发、编辑器增强及超大规模代码仓库场景,无需额外复杂配置即可快速接入,精准识别代码风险与潜在问题,有效保障代码质量与开发效率。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
2
Open Issues
Rust
主要语言
Apache-2.0
开源协议
21.5 MB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:BrokkAi/bifrost
git clone https://github.com/BrokkAi/bifrost.git
git clone git@github.com:BrokkAi/bifrost.git
README.md master

Bifrost

Bifrost — code intelligence for AI, with structural queries and multi-language analysis designed for repository-scale use

Latest release crates.io PyPI npm Apache-2.0

Quickstart · Documentation · Ten-minute evaluation · Discord

Why Bifrost?

bifrost is Brokk's Rust-based static analysis toolbox for AI coding harnesses,
editors, and large repositories.

Bifrost gives every supported language a shared intermediate representation, so
the same structural query and navigation workflows work across a mixed-language
repository instead of stopping at language boundaries.

  • One multi-language IR. Parse unbuilt or partially broken workspaces and
    normalize their source structure for cross-language analysis.
  • A real query language. Use JSON CodeQuery or the Rune Query Language
    (RQL) to find language-neutral code shapes and traverse indexed declarations,
    references, calls, imports, and type relationships.
  • Built for agents and editors. Expose structured MCP tools to coding
    agents, LSP features to editors, and the same analyzer through the CLI,
    Python, and Rust.
  • Designed for active repositories. Snapshot isolation, incremental updates,
    content-based caching, and git/worktree awareness keep analysis responsive as
    a repository changes.

See Choose Bifrost for the
right interface for your workflow, and the Language and Analysis
Capabilities
matrix for
language-by-language support, precision tiers, and current analysis boundaries.

Run Your First Query

Install the released CLI, clone the small verified evaluation fixture, and run
its saved RQL query:

curl -fsSL https://raw.githubusercontent.com/BrokkAi/bifrost/refs/heads/master/install.sh | bash
git clone --depth 1 https://github.com/BrokkAi/bifrost.git
cd bifrost/docs/fixtures/ten-minute-evaluation
bifrost --root . --query-file queries/find-audit.rql

Users with uv or
pipx can instead run uv tool install brokk-bifrost or
pipx install brokk-bifrost; both install the same native bifrost command
from a platform wheel in an isolated environment. uvx brokk-bifrost --version
runs it without a persistent install.

Node users can run npm install -g @brokkai/bifrost or use
npx -y @brokkai/bifrost --version. The npm package installs the same released
native command for the current platform.

The installer downloads the checksum-verified release binary into ~/.local/bin
on macOS (Apple Silicon and Intel), Linux (x86-64 glibc or musl, ARM64 glibc),
WSL, and Android under Termux. Homebrew users on macOS and Linux (x86-64 and
ARM64 glibc) can run brew install brokkai/tap/bifrost
instead. On Windows, and on ARM64 musl distributions such as Alpine, build from
source with cargo install brokk-bifrost --locked. See
Install Bifrost for the full platform
table.

The result identifies the normalized Python call and its exact source location:

{
  "isError": false,
  "structuredContent": {
    "results": [
      {
        "enclosing_symbol": "src.app.handle",
        "end_line": 5,
        "kind": "call",
        "language": "python",
        "path": "src/app.py",
        "result_type": "structural_match",
        "start_line": 5,
        "text": "audit(value)"
      }
    ],
    "truncated": false
  }
}

Continue with the ten-minute
evaluation
to run the same
query through the CLI, an MCP-connected coding agent, and VS Code.

See Bifrost in Action

Turn Source into a Query in VS Code

Selecting Python source in VS Code, inspecting its normalized Rune IR, using the generated starter RQL, and browsing the exact query result

Select a source construct and run Bifrost: Show Rune IR to inspect its
language-neutral .rune form and get a conservative starter RQL query. Run that
query from the editor, browse typed results grouped by file, and jump to the
exact source range. The extension also provides definitions, references, hover,
rename, symbols, hierarchy, diagnostics, completion, and other LSP features.

Use the Same Analyzer from the CLI

Running a saved RQL query with the Bifrost CLI and receiving an exact structured match

Run saved RQL or JSON queries directly, or call the same named tools exposed over
MCP for shell scripts and reproducible analysis workflows.

Language Coverage

Bifrost includes analyzers for C, C++, C#, Go, Java, JavaScript, Kotlin, PHP,
Python, Ruby, Rust, Scala, and TypeScript. See the capability
matrix
for the supported
analysis and precision boundaries in each language.

Documentation

The public documentation site lives in docs/ and is published at
bifrost.brokk.ai.

Useful starting points:

Run the docs site locally with:

cd docs
npm install
npm run dev

GitHub Pages publication is handled by .github/workflows/docs.yml. Release tag
builds publish both the latest docs site and a versioned snapshot under
versions/<tag>/.

Repository Layout

The repository is organized around the public product surfaces:

  • Core analysis: crates/ contains the Rust workspace crates;
    src/ provides the top-level facade and CLI; schemas/
    holds shared data contracts.
  • Integrations and distribution: editors/ contains editor
    integrations; plugins/ contains coding-agent plugins; and
    npm/, packaging/, and
    bifrost_searchtools/ expose or package the
    analyzer.
  • Documentation and examples: docs/ is the documentation site;
    examples/ contains runnable examples.
  • Analysis data and project defaults: semantic-packs/
    contains shipped semantic knowledge; .bifrost/ contains
    project-level analysis defaults.
  • Development support: benchmark/ covers reproducible
    measurements; scripts/ and tools/ hold maintenance
    and release helpers. Root manifests plus .github/, .cargo/, and .config/
    define builds, checks, and automation.

License and Commercial Use

Bifrost's public open core is licensed under Apache-2.0 and may be used in
research, internal systems, hosted services, and commercial products. Read the
License page for the project
terms and Third-Party Notices
for the additional terms that apply to official binaries and semantic packs.

Contributing

Project contributors   @jbellis @DavidBakerEffendi @foundev @sontek @alexswearingen @joshuadavidthomas

The public repository is projected from Bifrost's open-core source, so its
GitHub contributor graph does not reflect everyone who helped build the project.

For local development, test commands, repository-local Python workflow, and
release tagging, see CONTRIBUTING.md.