/bloop

bloop is a fast code search engine written in Rust.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

bloop logo

bloop is a developer assistant that uses GPT-4 to answer questions about your codebase. The agent searches both your local and remote repositories with natural language, regex and filtered queries.

Some of the ways engineers use bloop to improve their efficiency when working on large codebases:

  • Summarising how large files work and how multiple files work together
  • Understand how to use open source libraries when documentation is lacking
  • Identify the origin of errors
  • Ask questions about English language codebases in other languages
  • Reduce code duplication by checking for existing functionality
  • Write new code, taking into account existing codebase context (eg: "write a dockerfile for this project")

Features

  • GPT-4 based conversational search
  • Blazing fast regex search
  • Sync your local and GitHub repositories (support for more code hosts coming soon!)
  • Sophisticated query filters so you can narrow down your results
  • Find functions, variables or traits with symbol search
  • Precise code navigation (go-to-reference and go-to-definition) for 10+ of the most popular languages built with Tree-sitter

bloop stands on the shoulders of the Rust ecosystem. Our search indexes are powered by Tantivy and Qdrant, and our multi-platform app is built with Tauri.

code search demo

Get Started

The simplest way to get started with bloop is to download the app and follow the onboarding steps. Checkout our getting started guide and our references for conversational and regex search.

For instructions on how to build from source or run bloop from the command line, check out these pages:

Note that it is currently not possible to run conversational GPT-4 search where bloop has been built from source (we're working on this). You can run regex searches and use code-navigation.

If you encounter any index issues you can wipe the bloop cache and reindex. Instructions on how to do this on different platforms are here.

Contributing

Open in Gitpod

We welcome contributions big and small! Before jumping in please read our contributors guide and our code of conduct.

Here's how to find your way around the repo:

  • apps/desktop: The Tauri app
  • server/bleep: The Rust backend which contains the core search and navigation logic
  • client: The React frontend

We use Git LFS for dependencies that are expensive to build.

To make sure you have everything you need to start building, you'll need to install the git-lfs package for your favourite operating system, then run the following commands in this repo:

git lfs install
git lfs pull

If you find a bug or have a feature request, open an issue!

Privacy

We store as little data as possible. Opting in now to send telemetry to bloop helps us identify bugs and make data-driven product decisions. This option sends us crash reports, logs and high level information about feature usage (so we can tell that a search was made, but we wouldn't be able to see the query or results). If you change your mind, you can always disable this later in Settings!

You can read our full privacy policy here.

License

Portions of this software are licensed as follows:

  • All content that resides under the server/bleep/src/ee/ directory of this repository, if that directory exists, is licensed under the license defined in server/bleep/src/ee/LICENSE.
  • All third party components incorporated into the bloop Software are licensed under the original license provided by the owner of the applicable component.
  • Content outside of the above mentioned directories or restrictions above is available under the Apache 2.0 license as defined in LICENSE.