| Crates.io | cockpit |
| lib.rs | cockpit |
| version | 0.2.2 |
| created_at | 2025-12-24 20:38:38.377218+00 |
| updated_at | 2025-12-25 16:41:25.400509+00 |
| description | Terminal multiplexer library for Ratatui applications |
| homepage | |
| repository | https://github.com/centy-io/cockpit |
| max_upload_size | |
| id | 2003824 |
| size | 474,796 |
A terminal multiplexer library for Ratatui applications.
Cockpit enables running multiple OS processes in split panes with crash isolation. Each pane runs in its own PTY (pseudo-terminal), so if one process crashes, the others continue running unaffected.
portable-ptyvt100Add to your Cargo.toml:
[dependencies]
cockpit = "0.1"
use cockpit::{PaneManager, SpawnConfig, PaneSize, Layout};
#[tokio::main]
async fn main() -> cockpit::Result<()> {
// Create a pane manager
let mut manager = PaneManager::new();
// Spawn two panes
let size = PaneSize::new(24, 80);
let pane1 = manager.spawn(SpawnConfig::new(size))?;
let pane2 = manager.spawn(SpawnConfig::new(size))?;
// Set up a vertical split layout
let layout = Layout::vsplit_equal(
Layout::single(pane1.id()),
Layout::single(pane2.id()),
);
manager.set_layout(layout);
// Send input to the focused pane
manager.send_input(b"echo hello\r").await?;
Ok(())
}
Run the interactive example:
cargo run --example basic
Controls:
Licensed under either of:
at your option.