codex-helper 0.12.1

A Rust-based local helper / proxy for Codex CLI traffic with multi-provider routing, usage-aware switching, filtering, and session helpers.
[package]
name = "codex-helper"
version = "0.12.1"
edition = "2024"
license = "MIT OR Apache-2.0"
authors = ["Mingzhen Zhuang <superfrankie621@gmail.com>"]
description = "A Rust-based local helper / proxy for Codex CLI traffic with multi-provider routing, usage-aware switching, filtering, and session helpers."

readme = "README_EN.md"

keywords = ["codex", "proxy", "cli", "ai"]

categories = ["command-line-utilities", "development-tools", "asynchronous"]

repository = "https://github.com/Latias94/codex-helper"

homepage = "https://github.com/Latias94/codex-helper"



[workspace]

members = ["crates/core", "crates/tui", "crates/gui"]



[[bin]]

name = "codex-helper"

path = "src/main.rs"



[[bin]]

name = "ch"

path = "src/main.rs"



[features]

# Desktop GUI (Windows-first, cross-platform best-effort).

# Build with: `cargo run --bin codex-helper-gui --features gui`

gui = ["dep:codex-helper-gui"]



[[bin]]

name = "codex-helper-gui"

path = "src/bin/codex-helper-gui.rs"

required-features = ["gui"]



[dependencies]
codex-helper-core = { path = "crates/core", version = "0.12.1" }
codex-helper-tui = { path = "crates/tui", version = "0.12.1" }
codex-helper-gui = { path = "crates/gui", version = "0.12.1", optional = true }
anyhow = "1.0.100"
base64 = "0.22.1"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
toml = "0.8"
tokio = { version = "1.48.0", features = ["macros", "rt-multi-thread", "signal", "fs"] }

axum = { version = "0.8.7", features = ["http2", "macros", "ws"] }

hyper = { version = "1.8.1", features = ["full"] }

reqwest = { version = "0.13.1", features = ["json", "stream"] }

tracing = "0.1.41"

tracing-appender = "0.2.3"

tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }

thiserror = "2.0.17"

dirs = "6.0.0"

uuid = { version = "1.18.1", features = ["v4"] }

rand = "0.8.5"

futures-util = "0.3.31"

clap = { version = "4.5.53", features = ["derive"] }

regex = "1.12.2"

atty = "0.2.14"

owo-colors = "4.2.3"

humantime = "2.1.0"



[target.'cfg(windows)'.dependencies]

winreg = "0.52.0"

windows-sys = { version = "0.59.0", features = ["Win32_Foundation", "Win32_System_Threading", "Win32_Security"] }



[dev-dependencies]

pretty_assertions = "1.4.1"



[package.metadata.binstall]

# `cargo-binstall` provides `{ repo }` as a full URL (e.g. https://github.com/OWNER/REPO),

# and our cargo-dist release assets are named like `{ name }-{ target }.tar.xz` under the `v{ version }` tag,

# with binaries located under the top-level directory `{ name }-{ target }/`.

pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.tar.xz"

pkg-fmt = "txz"

bin-dir = "{ name }-{ target }/{ bin }{ binary-ext }"



[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]

pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.zip"

pkg-fmt = "zip"

bin-dir = "{ bin }{ binary-ext }"



# The profile that 'dist' will build with

[profile.dist]

inherits = "release"

lto = "thin"