@@ -16,9 +16,9 @@ name = "codey"
1616path = " src/main.rs"
1717
1818[dependencies ]
19- # TUI
20- ratatui = { version = " 0.30.0-beta.0" , features = [" scrolling-regions" ] }
21- crossterm = { version = " 0.28" , features = [" event-stream" ] }
19+ # TUI (CLI only)
20+ ratatui = { version = " 0.30.0-beta.0" , features = [" scrolling-regions" ], optional = true }
21+ crossterm = { version = " 0.28" , features = [" event-stream" ], optional = true }
2222
2323# Async runtime
2424tokio = { version = " 1" , features = [" full" ] }
@@ -31,10 +31,10 @@ genai = "0.4.4"
3131reqwest = { version = " 0.12" , features = [" stream" , " json" , " rustls-tls" ], default-features = false }
3232futures = " 0.3"
3333
34- # Web content extraction (reader view)
35- chromiumoxide = { version = " 0.7" , features = [" tokio-runtime" ], default-features = false }
36- readability = " 0.3"
37- htmd = " 0.1"
34+ # Web content extraction (CLI only - reader view)
35+ chromiumoxide = { version = " 0.7" , features = [" tokio-runtime" ], default-features = false , optional = true }
36+ readability = { version = " 0.3" , optional = true }
37+ htmd = { version = " 0.1" , optional = true }
3838
3939# Serialization
4040serde = { version = " 1" , features = [" derive" ] }
@@ -44,8 +44,8 @@ serde_json = "1"
4444toml = " 0.8"
4545dirs = " 5"
4646
47- # CLI arguments
48- clap = { version = " 4" , features = [" derive" , " env" ] }
47+ # CLI arguments (CLI only)
48+ clap = { version = " 4" , features = [" derive" , " env" ], optional = true }
4949
5050# Error handling
5151anyhow = " 1"
@@ -61,7 +61,7 @@ urlencoding = "2"
6161base64 = " 0.22"
6262sha2 = " 0.10"
6363rand = " 0.8"
64- open = " 5"
64+ open = { version = " 5" , optional = true }
6565
6666# Logging
6767tracing = " 0.1"
@@ -71,12 +71,14 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] }
7171async-trait = " 0.1"
7272async-stream = " 0.3"
7373dotenvy = " 0.15.7"
74- ratskin = " 0.3"
7574typetag = " 0.2.21"
7675
77- # Neovim RPC
78- nvim-rs = { version = " 0.9" , features = [" use_tokio" ] }
79- textwrap = " 0.16.2"
76+ # TUI rendering (CLI only)
77+ ratskin = { version = " 0.3" , optional = true }
78+ textwrap = { version = " 0.16.2" , optional = true }
79+
80+ # Neovim RPC (CLI only)
81+ nvim-rs = { version = " 0.9" , features = [" use_tokio" ], optional = true }
8082
8183[dev-dependencies ]
8284tokio-test = " 0.4"
@@ -92,7 +94,15 @@ strip = false
9294debug = true
9395
9496[features ]
95- default = []
97+ default = [" cli" ]
98+
99+ # Full CLI with TUI, IDE integration, and web extraction
100+ cli = [
101+ " ratatui" , " crossterm" , " clap" , " nvim-rs" , " open" ,
102+ " chromiumoxide" , " readability" , " htmd" ,
103+ " ratskin" , " textwrap"
104+ ]
105+
96106# Enable performance profiling with JSON export
97107# Build with: cargo build --release --features profiling
98108profiling = [" dep:sysinfo" ]
0 commit comments