[package]
name = "codeix"
version = "0.5.0"
edition = "2024"
description = "Fast semantic code search for AI agents — find symbols, references, and callers across any codebase"
license = "MIT OR Apache-2.0"
repository = "https://github.com/montanetech/codeix"
homepage = "https://codeix.dev"
documentation = "https://codeix.dev/spec/"
readme = "README.md"
keywords = ["code-index", "tree-sitter", "mcp", "code-search", "symbols"]
categories = ["command-line-utilities", "development-tools", "text-processing"]
exclude = ["npm/", "python/", ".github/", "spec/", "tests/fixtures/"]
[dependencies]
clap = { version = "4", features = ["derive"] }
clap-repl = "0.3"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
blake3 = "1"
tree-sitter = "0.26"
rusqlite = { version = "0.33", features = ["bundled", "vtab"] }
notify = "9.0.0-rc.1"
rmcp = { version = "0.14", features = ["server", "transport-io"] }
tokio = { version = "1", features = ["full"] }
anyhow = "1"
thiserror = "2"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
ignore = "0.4"
walkdir = "2"
fs2 = "0.4"
[features]
default = [
"lang-python", "lang-rust", "lang-javascript", "lang-typescript",
"lang-go", "lang-java", "lang-c", "lang-cpp", "lang-ruby", "lang-csharp",
"lang-markdown",
]
lang-python = ["dep:tree-sitter-python"]
lang-rust = ["dep:tree-sitter-rust"]
lang-javascript = ["dep:tree-sitter-javascript"]
lang-typescript = ["dep:tree-sitter-typescript"]
lang-go = ["dep:tree-sitter-go"]
lang-java = ["dep:tree-sitter-java"]
lang-c = ["dep:tree-sitter-c"]
lang-cpp = ["dep:tree-sitter-cpp"]
lang-ruby = ["dep:tree-sitter-ruby"]
lang-csharp = ["dep:tree-sitter-c-sharp"]
lang-markdown = ["dep:tree-sitter-md"]
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-rust]
version = "0.24"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-c]
version = "0.24"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-ruby]
version = "0.23"
optional = true
[dependencies.tree-sitter-c-sharp]
version = "0.23"
optional = true
[dependencies.tree-sitter-md]
version = "0.5"
features = ["parser"]
optional = true
[dev-dependencies]
tempfile = "3"