- src/term.rs: self-contained module spawning `claude --session-id <uuid>` with ANTHROPIC_BASE_URL pointed at our proxy, inside a portable-pty; wezterm-term models the screen (and answers terminal queries), a small renderer paints cells into the ratatui buffer. - Toggle with alt-c; off by default, hiding keeps the session alive. - Modifier-split input: plain keys go to claude, alt-keys drive the feed (alt-q quit, alt-j/k scroll, alt-f filter, alt-n/p session). - Dynamic pane height: the tap flags AskUserQuestion/ExitPlanMode in the embedded session (matched via --session-id) before Claude Code renders the prompt → pane grows 35%→60%; shrinks when the tool_result echoes back in the next request. - wezterm-term isn't on crates.io: pinned git rev of the monorepo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
24 lines
932 B
TOML
24 lines
932 B
TOML
[package]
|
|
name = "claude-thinking"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.102"
|
|
axum = "0.8"
|
|
futures-util = "0.3.32"
|
|
ratatui = { version = "0.29", features = ["unstable-rendered-line-info"] }
|
|
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] }
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = "1.0.150"
|
|
tokio = { version = "1.52.3", features = ["full"] }
|
|
tui-markdown = "=0.3.5"
|
|
|
|
# Embedded terminal module (src/term.rs): wezterm's terminal model is not
|
|
# published on crates.io, so we pin a rev of the monorepo. portable-pty is
|
|
# from the same project.
|
|
portable-pty = "0.9"
|
|
wezterm-term = { git = "https://github.com/wezterm/wezterm", rev = "891bed31b75f7a71b78e8f42ad07ae89bf99a7de" }
|
|
wezterm-surface = { git = "https://github.com/wezterm/wezterm", rev = "891bed31b75f7a71b78e8f42ad07ae89bf99a7de" }
|
|
uuid = { version = "1", features = ["v4"] }
|