[package]
name = "codexctl"
version = "0.9.0"
edition = "2024"
authors = ["Bhanu Korthiwada"]
description = "Codex Controller - Full control plane for Codex CLI"
license = "MIT"
repository = "https://github.com/repohelper/codexctl"
readme = "README.md"
keywords = ["codex", "controller", "cli", "automation", "openai"]
categories = ["command-line-utilities", "development-tools"]
rust-version = "1.94.1"
[[bin]]
name = "codexctl"
path = "src/main.rs"
[dependencies]
clap = { version = "4.6", features = ["derive", "env", "cargo", "string", "unicode", "wrap_help"] }
clap_complete = "4.6"
tokio = { version = "1.51", features = ["full", "tracing"] }
toml = "1.1.2"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
anyhow = "1.0"
directories = "6.0"
dirs = "6.0"
chrono = { version = "0.4", features = ["serde", "now"] }
colored = "3.1"
indicatif = "0.18"
dialoguer = "0.12"
console = "0.16"
walkdir = "2.5"
tempfile = "3.27"
flate2 = "1.1"
tar = "0.4"
base64 = "0.22"
semver = { version = "1.0", features = ["serde"] }
aes-gcm = { version = "0.11.0-rc.3", optional = true }
rand = "0.10.1"
which = "8.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "ansi", "json"] }
prettytable-rs = "0.10"
reqwest = { version = "0.13", features = ["json", "rustls", "stream"] }
age = { version = "0.11" }
secrecy = "0.10"
[features]
default = ["encryption"]
encryption = ["aes-gcm"]
full = ["encryption"]
[dev-dependencies]
assert_cmd = "2.2"
predicates = "3.1"
tempfile = "3.27"
serial_test = "3.4"
criterion = { version = "0.8", features = ["async_tokio"] }
mockall = "0.14"
[profile.release]
opt-level = 3
lto = "fat"
strip = true
panic = "abort"
codegen-units = 1
overflow-checks = false
[profile.dev]
opt-level = 0
debug = true
incremental = true
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
unreachable_pub = "allow"
unused_crate_dependencies = "allow"
[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "allow", priority = -1 }
cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
correctness = { level = "deny", priority = -1 }
perf = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
style = { level = "allow", priority = -1 }
multiple_crate_versions = { level = "allow" }
collapsible_if = { level = "allow" }
[lints.rustdoc]
all = "warn"