Skip to main content

AI-powered code search for the terminal and beyond.

Project description

Codebased

Codebased is the most powerful code search tool that runs on your computer.

Here's why it's great:

  • Search, simplified: Combines semantic and full-text search to find what you're looking for, not just what you typed.
  • Search code, not just text: Searches for complete code structures, not just lines of text, in 11 languages.
  • Ignores uninteresting files: Respects your .gitignore file(s) and ignores hidden directories.
  • Instant editing: Selecting a search result opens your favorite editor at the correct file and line number.
  • Fast: Indexes your code in seconds, searches in milliseconds, and updates in real-time as you edit your code.
  • Open-source, runs locally: No code is stored on remote servers.

Getting Started

The fastest way to install Codebased is with pipx:

pipx install codebased

Verify the installation by running:

codebased --version

If this fails, please double-check your pipx installation.

Next, run the following command in a Git repository to start searching:

codebased search

The first time you run Codebased, it will create a configuration file at ~/.codebased/config.toml. It will prompt you for an OpenAI key, you can access a testing key on the Discord.

Once this is finished, codebased will create an index of your codebase, stored in .codebased at the root of your repository. This takes seconds for most projects, but can take a few minutes for large projects. Most of the time is spent creating embeddings using the OpenAI API.

Once the index is created, a terminal UI will open with a search bar. At this point, you can start typing a search query and results will appear as you type.

  • You can use the arrow keys and the mouse to navigate the results.
  • A preview of the selected result is displayed.
  • Pressing enter on the highlighted result opens the file in your editor at the correct line number.
  • Pressing escape returns to the search bar.
  • As you edit your code, the index will be updated in real-time, and future searches will reflect your changes.

Codebased will run stat on all non-ignored files in your repository, which can take a few seconds, but after that will listen for filesystem events, so it's recommended to use the TUI.

Development

If you'd like to contribute, bug fixes are welcome, as well as anything in the list of issues.

Especially welcome is support for your favorite language, as long as:

  1. There's a tree-sitter grammar for it.
  2. There are Python bindings for it maintained by the excellent amaanq.

Also, if there's anything ripgrep does that Codebased doesn't, feel free to file an issue / PR.

Clone the repository:

git clone https://github.com/codebased-sh/codebased.git

Install the project's dependencies (requires poetry, using a virtual environment is recommended):

poetry install

Run the tests (some tests require an OPENAI_API_KEY environment variable, usage is de minimis):

poetry run pytest

Appendix

Languages

  • C
  • C#
  • C++
  • Go
  • Java
  • JavaScript
  • PHP
  • Python
  • Ruby
  • Rust
  • TypeScript
  • HTML / CSS
  • SQL
  • Shell
  • Swift
  • Lua
  • Kotlin
  • Dart
  • R
  • Assembly language
  • OCaml
  • Zig
  • Haskell
  • Elixir
  • Erlang
  • TOML?
  • YAML?

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codebased-0.6.2.tar.gz (31.3 kB view details)

Uploaded Source

Built Distribution

codebased-0.6.2-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

Details for the file codebased-0.6.2.tar.gz.

File metadata

  • Download URL: codebased-0.6.2.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for codebased-0.6.2.tar.gz
Algorithm Hash digest
SHA256 cf8368885d8173b5c091f97c499d63a1a2fcafe8990247c79b35e622abb11655
MD5 7ce346e35f21ffca40325d5f740cce95
BLAKE2b-256 9ab066f4f7e943ddf1790d1102098a8f63f9ff7003879fb69695982e9df23b70

See more details on using hashes here.

File details

Details for the file codebased-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: codebased-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for codebased-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 740a878a28f10647f2dd0db38860eeb4c42f50f184e1e273be3e82b526ef9a07
MD5 fc5abb8d75f3ef105cb06c7652458cfd
BLAKE2b-256 d310f548cde04a7ebc686f2e77815bd13575063c28330e5b432b0b41c99a6c32

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page