ditto-cli 0.3.5

Switch between Claude Code, Codex, opencode, OMP, and Prime Agent accounts
[package]
name = "ditto-cli"
version = "0.3.5"
edition = "2024"
rust-version = "1.85"
authors = ["Reyansh Gupta"]
description = "Switch between Claude Code, Codex, opencode, OMP, and Prime Agent accounts"
license = "MIT"
repository = "https://github.com/reyanshgupta/ditto-cli"
homepage = "https://www.reyanshgupta.com/projects/ditto-cli"
documentation = "https://github.com/reyanshgupta/ditto-cli#readme"
readme = "README.md"
keywords = ["claude-code", "codex", "opencode", "omp", "prime-agent"]
categories = ["command-line-utilities"]

# `cargo binstall` downloads the release archive rather than compiling, which
# matters here because a source build compiles bundled SQLite before it links
# anything. The names it guesses by default are not the ones the release
# workflow writes, so the pattern is spelled out; keep it in step with the
# packaging steps in .github/workflows/publish.yml.
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-{ target }{ archive-suffix }"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"

# The Windows archive is the one zip among the tarballs, because Compress-Archive
# is what the Windows runner has.
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"

[[bin]]
name = "ditto-cli"
path = "src/main.rs"

[dependencies]
anyhow = "1.0.104"
clap = { version = "4.6.3", features = ["derive"] }
crossterm = "0.29.0"
directories = "6.0.0"
ratatui = "0.30.2"
rusqlite = { version = "0.40.1", features = ["bundled"] }
serde = { version = "1.0.229", features = ["derive"] }
# `preserve_order` keeps Claude Code's settings in the order the user wrote
# them when Ditto adds or removes its status line.
serde_json = { version = "1.0.151", features = ["preserve_order"] }
toml = "1.1.3"

# Opening the pseudoterminal Ditto runs a tool inside, so it can name the
# profile in the title the tool sets for itself.
[target.'cfg(unix)'.dependencies]
libc = "0.2.180"

# Ctrl-C reaches every process sharing a Windows console, so Ditto has to say
# it handled the one meant for the tool rather than exit out from under it.
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61.2", features = [
    "Win32_Foundation",
    "Win32_System_Console",
] }

[dev-dependencies]
tempfile = "3.27.0"