[package]
name = "vtcode"
version = "0.55.1"
edition = "2024"
authors = ["vinhnx <vinhnx@users.noreply.github.com>"]
description = "A Rust-based terminal coding agent with modular architecture supporting multiple LLM providers"
license = "MIT"
readme = "README.md"
homepage = "https://github.com/vinhnx/vtcode"
repository = "https://github.com/vinhnx/vtcode"
documentation = "https://docs.rs/vtcode"
keywords = ["ai", "coding", "agent", "llm", "cli"]
categories = ["command-line-utilities", "development-tools", "api-bindings"]
exclude = [
"target/",
".github/",
"docs/",
"scripts/",
"screenshots/",
"logs/",
"prompts/",
"dist/",
"npm/",
"vtcode-core/embedded_assets_source/",
]
default-run = "vtcode"
[workspace.dependencies]
base64 = "0.22.1"
crossterm = "0.28"
md5 = "0.7"
schemars = "1.1.0"
thiserror = "2.0.17"
unicode-width = "0.2.0"
serde_json = "1.0"
tempfile = "3.24"
tokio = { version = "1.48", features = ["full"] }
anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] }
regex = "1.12"
num_cpus = "1.16"
[workspace]
members = [
"vtcode-acp-client",
"vtcode-core",
"vtcode-commons",
"vtcode-config",
"vtcode-llm",
"vtcode-markdown-store",
"vtcode-indexer",
"vtcode-tools",
"vtcode-bash-runner",
"vtcode-exec-events",
]
exclude = ["zed-extension", "third-party/mcp-types"]
[patch.crates-io]
vtcode-commons = { path = "vtcode-commons" }
vtcode-markdown-store = { path = "vtcode-markdown-store" }
vtcode-indexer = { path = "vtcode-indexer" }
vtcode-bash-runner = { path = "vtcode-bash-runner" }
vtcode-exec-events = { path = "vtcode-exec-events" }
mcp-types = { path = "third-party/mcp-types" }
[workspace.lints]
rust = {}
[workspace.lints.clippy]
expect_used = "deny"
identity_op = "deny"
manual_clamp = "deny"
manual_filter = "deny"
manual_find = "deny"
manual_flatten = "deny"
manual_map = "deny"
manual_memcpy = "deny"
manual_non_exhaustive = "deny"
manual_ok_or = "deny"
manual_range_contains = "deny"
manual_retain = "deny"
manual_strip = "deny"
manual_try_fold = "deny"
manual_unwrap_or = "deny"
needless_borrow = "deny"
needless_borrowed_reference = "deny"
needless_collect = "deny"
needless_late_init = "deny"
needless_option_as_deref = "deny"
needless_question_mark = "deny"
needless_update = "deny"
redundant_clone = "deny"
redundant_closure = "deny"
redundant_closure_for_method_calls = "deny"
redundant_static_lifetimes = "deny"
trivially_copy_pass_by_ref = "deny"
uninlined_format_args = "deny"
unnecessary_filter_map = "deny"
unnecessary_lazy_evaluations = "deny"
unnecessary_sort_by = "deny"
unnecessary_to_owned = "deny"
unwrap_used = "deny"
[dependencies]
vtcode-acp-client = { path = "vtcode-acp-client", version = "0.55.1" }
vtcode-config = { path = "vtcode-config", version = "0.55.1" }
vtcode-core = { path = "vtcode-core", version = "0.55.1" }
anyhow = { workspace = true }
clap = { version = "4.5", features = ["derive"] }
serde_json = { workspace = true }
tokio = { workspace = true }
webbrowser = "1.0"
tokio-util = { version = "0.7", features = ["compat"] }
serde = { workspace = true }
toml = "0.9.8"
futures = "0.3"
walkdir = "2.5"
itertools = "0.14.0"
memchr = "2.7"
tempfile = { workspace = true }
once_cell = "1.19"
libc = "0.2"
chrono = { version = "0.4", features = [
"serde",
] }
path-clean = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
indicatif = { version = "0.18", default-features = false }
async-trait = "0.1.89"
dotenvy = "0.15"
dirs = "6.0"
sha2 = "0.10"
md5 = { workspace = true }
anstyle = "1.0"
anstyle-git = "1.1"
anstyle-crossterm = "3.0"
colorchoice = "1.0"
agent-client-protocol = "0.7.0"
percent-encoding = "2.3"
url = "2.5"
shell-words = "1.1"
dialoguer = "0.12.0"
crossterm = { workspace = true }
ratatui = { version = "0.29", default-features = false, features = [
"crossterm",
] }
regex = { workspace = true }
smallvec = "1.13"
serde_yaml = "0.9"
[features]
default = ["tool-chat"]
tool-chat = []
tree-sitter-swift = ["vtcode-core/swift"]
profiling = []
[profile.dev]
split-debuginfo = "unpacked"
debug = false
lto = true
codegen-units = 1
panic = "abort"
[profile.release]
codegen-units = 1
lto = true
opt-level = 3
strip = true
panic = "abort"
incremental = false
[profile.ci]
inherits = "dev"
debug = 0
incremental = false
overflow-checks = false
[[bin]]
name = "vtcode"
path = "src/main.rs"
[dev-dependencies]
tempfile = { workspace = true }
assert_fs = "1.1"
indexmap = { version = "2.12", features = ["serde"] }
rand = "0.9"
regex = { workspace = true }
assert_cmd = "2.1"
predicates = "3.1"
insta = "1.39"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
"Win32_Foundation",
"Win32_System_SystemServices",
"Win32_System_Threading",
] }
[package.metadata.cargo-machete]
ignored = ["anstyle-crossterm"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]