magi-code 0.61.0

Repository-aware CLI coding agent for terminal work
Documentation
[package]
name = "magi-code"
version = "0.61.0"
edition = "2024"
rust-version = "1.88.0"
description = "Repository-aware CLI coding agent for terminal work"
license-file = "LICENSE"
repository = "https://github.com/magimetal/magi-code"
homepage = "https://github.com/magimetal/magi-code"
readme = "README.md"
keywords = ["cli", "coding-agent", "terminal", "developer-tools"]
categories = ["command-line-utilities", "development-tools"]
include = ["src/**", "prompts/**", "docs/features/**", "LICENSE", "README.md", "logo.png", "Cargo.toml", "Cargo.lock"]

[lib]
name = "magi_code"
path = "src/lib.rs"

[[bin]]
name = "magi-code"
path = "src/bin/magi-code.rs"

[dependencies]
# This CLI intentionally ships TUI, shell, markdown, syntax highlighting, and provider
# transports as unconditional default capabilities. No feature gates are introduced until
# there is measured packaging value and a maintained feature-matrix verification path.
anyhow = "1.0"
base64 = "0.22"
chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "std"] }
clap = { version = "4.5", features = ["derive"] }
crossbeam-channel = "0.5"
grep-matcher = "0.1.8"
grep-regex = "0.1.14"
grep-searcher = "0.1.16"
crossterm = "0.29"
dirs = "6.0"
libc = "0.2"
dom_smoothie = "0.18"
# ponytail: ignore_cookies required for fast_html2md v0.0.62 compilation, cannot omit.
fast_html2md = { version = "0.0.62", default-features = false, features = ["rewriter", "ignore_cookies"] }
serde = { version = "1.0", features = ["derive"] }
similar = "2"
schemars = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
jsonschema = "0.46"
# reqwest 0.13's `rustls` feature selects aws-lc-rs. `rustls-no-provider`
# avoids that native chain, but requires installing a rustls CryptoProvider before
# any Client construction; keep built-in provider to avoid runtime TLS panics.
reqwest = { version = "0.13", default-features = false, features = ["blocking", "form", "json", "rustls"] }
regex = "1.10"
sha2 = "0.11"
pulldown-cmark = "0.13"
ratatui = { version = "0.30", default-features = false, features = ["crossterm", "layout-cache", "unstable-rendered-line-info"] }
tui-scrollview = "0.6.7"
ratatui-comfy-tabs = "0.5.9"
ratatui-cheese = "0.7.0"
ratatui-core = "0.1.0"
rustyline = { version = "18.0", default-features = false }
syntect = { version = "5.2", default-features = false, features = ["default-syntaxes", "default-themes", "regex-fancy"] }
thiserror = "2.0"
unicode-width = "0.2"
unicode-segmentation = "1.12"
uuid = { version = "1.8", features = ["v4", "serde"] }
ignore = "0.4"
tree-sitter = "0.26"
tree-sitter-go = "0.25"
tree-sitter-python = "0.25"
tree-sitter-rust = "0.24"
tree-sitter-typescript = "0.23"
walkdir = "2.5"
xxhash-rust = { version = "0.8", features = ["xxh32"] }
tiktoken-rs = "0.12"
tokio = { version = "1.52.3", features = ["macros", "net", "rt", "sync", "time"] }

[dev-dependencies]
tempfile = "3.10"
proptest = "1"