[workspace]
members = ["tests/helpers/setup-select-test", "tests/helpers/dev-detach"]
default-members = [".", "tests/helpers/dev-detach"]
[package]
name = "worktrunk"
version = "0.5.2"
edition = "2024"
rust-version = "1.89"
build = "build.rs"
repository = "https://github.com/max-sixty/worktrunk"
description = "A CLI for Git worktree management, designed for parallel AI agent workflows"
license = "MIT OR Apache-2.0"
default-run = "wt"
[package.metadata.release]
allow-branch = ["*"]
consolidate-commits = true
[package.metadata.cargo-udeps.ignore]
normal = ["which"]
[features]
default = ["syntax-highlighting"]
syntax-highlighting = ["dep:tree-sitter", "dep:tree-sitter-bash", "dep:tree-sitter-highlight"]
shell-integration-tests = []
git-wt = []
[lib]
name = "worktrunk"
path = "src/lib.rs"
[[bin]]
name = "wt"
path = "src/main.rs"
[[bin]]
name = "git-wt"
path = "src/git_wt.rs"
required-features = ["git-wt"]
[dependencies]
anyhow = "1.0"
anstream = "0.6"
anstyle = "1.0"
ansi-str = "0.9"
color-print = "0.3"
askama = { version = "0.14", default-features = false, features = ["derive", "std"] }
chrono = "0.4"
clap = { version = "4.5", features = ["derive", "unstable-ext", "wrap_help"] }
clap_complete = { version = "4.5", features = ["unstable-dynamic"] }
config = { version = "0.15", features = ["convert-case"] }
crossbeam-channel = "0.5"
crossterm = "0.29"
env_logger = "0.11"
indexmap = { version = "2.12", features = ["serde"] }
etcetera = "0.11"
log = "0.4"
minijinja = "2.14"
rayon = "1.11"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
shell-escape = "0.1"
shellexpand = "3.1"
strum = { version = "0.27", features = ["derive"] }
synoptic = "2"
terminal_size = "0.4"
toml = { version = "0.9", features = ["preserve_order"] }
toml_edit = "0.23"
tree-sitter = { version = "0.25", optional = true }
tree-sitter-bash = { version = "0.25", optional = true }
tree-sitter-highlight = { version = "0.25", optional = true }
unicode-width = "0.2"
wrap-ansi = "0.1"
osc8 = "0.1.0"
home = "0.5.12"
dirs = "6.0"
normalize-path = "0.2.1"
pathdiff = "0.2"
which = "8.0"
dunce = "1.0"
termimad = "0.34.1"
[target.'cfg(unix)'.dependencies]
skim = "0.20"
[target.'cfg(unix)'.dev-dependencies]
nix = { version = "0.30", default-features = false, features = ["process", "signal"] }
[build-dependencies]
vergen-gitcl = { version = "1.0.8", features = ["build"] }
[dev-dependencies]
insta = { version = "1.44.3", features = ["yaml", "redactions", "filters"] }
insta-cmd = "0.6"
rstest = "0.26"
tempfile = "3.23"
toml = "0.9"
criterion = "0.8"
portable-pty = "0.9"
regex = "1.12"
vt100 = "0.16"
ansi-to-html = "0.2.2"
[[bench]]
name = "completion"
harness = false
[[bench]]
name = "list"
harness = false
[lints.rust]
unsafe_code = "forbid"
[profile.dist]
inherits = "release"
lto = "thin"