[package]
name = "codex-codes"
version = "0.101.0"
edition = "2021"
rust-version = "1.85"
authors = ["Matthew Goodman <d3a6d0cec0c16f3e@inboxnegative.com>"]
description = "A tightly typed Rust interface for the OpenAI Codex CLI JSON protocol"
documentation = "https://docs.rs/codex-codes"
homepage = "https://github.com/meawoppl/rust-code-agent-sdks"
repository = "https://github.com/meawoppl/rust-code-agent-sdks"
license = "Apache-2.0"
readme = "README.md"
keywords = ["codex", "openai", "ai", "json", "protocol"]
categories = ["api-bindings", "encoding", "parsing"]
exclude = [
"test_cases/",
".claude/",
"*.sh",
]
[dependencies]
log = { version = "0.4.29", optional = true }
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.143"
thiserror = "2.0.16"
tokio = { version = "1.49.0", features = ["full"], optional = true }
[dev-dependencies]
env_logger = "0.11.9"
serde_json = "1.0.143"
tokio = { version = "1.49.0", features = ["full"] }
[features]
default = ["types", "sync-client", "async-client"]
types = []
sync-client = ["types", "dep:log"]
async-client = ["types", "dep:tokio", "dep:log"]
integration-tests = ["async-client", "sync-client"]
[[example]]
name = "async_client"
required-features = ["async-client"]
[[example]]
name = "basic_repl"
required-features = ["async-client"]
[[example]]
name = "sync_client"
required-features = ["sync-client"]