9 releases
Uses new Rust 2024
| 0.2.8 | Jan 24, 2026 |
|---|---|
| 0.2.7 | Jan 15, 2026 |
#879 in Development tools
Used in 2 crates
(via mi6-tui)
1.5MB
26K
SLoC
mi6-client
Client library for mi6 - session monitoring, terminal focus, and process management.
Features
- Session monitoring: Fetch session data with CPU/memory/git enrichment
- Terminal focus: Bring terminal windows to front (iTerm2, Terminal.app, tmux, WezTerm, Kitty)
- Session killing: Terminate sessions and optionally close their terminals
- Process tree: Aggregate stats across process trees
Usage
use mi6_client::{SessionMonitor, SessionState, focus_session};
// Create a session monitor using the builder pattern
let mut monitor = SessionMonitor::builder().build()?;
// Get all sessions with CPU/memory/git info
let sessions: Vec<SessionState> = monitor.get_sessions()?;
for session in &sessions {
println!("{}: {} CPU, {} MB",
session.session.session_id,
session.os.cpu_percent.unwrap_or(0.0),
session.os.memory_bytes / 1_000_000
);
}
// Focus a session's terminal window
if let Some(session) = sessions.first() {
if let Some(pid) = session.session.pid {
focus_session(pid, session.os.tty.as_deref())?;
}
}
For faster startup (useful for TUIs):
use mi6_client::SessionMonitor;
// Skip initial system refresh - CPU/memory will be 0 until first refresh
let monitor = SessionMonitor::builder()
.skip_initial_refresh()
.build()?;
For testing or alternative storage backends:
use mi6_client::SessionMonitor;
use std::sync::Arc;
// Inject mock storage for testing
let mock_storage: Arc<dyn Storage> = Arc::new(MockStorage::new());
let monitor = SessionMonitor::builder()
.storage(mock_storage)
.build()?;
Supported Terminals (for focus/kill)
| Terminal | Focus | Kill |
|---|---|---|
| iTerm2 | ✅ AppleScript | ✅ AppleScript |
| Terminal.app | ✅ AppleScript | ✅ AppleScript |
| tmux | ✅ tmux CLI | ✅ tmux kill-pane |
| WezTerm | ✅ wezterm CLI | ❌ |
| Kitty | ✅ kitty @ CLI | ❌ |
| Other (macOS) | ✅ App activation | ❌ |
| Other (Linux) | ✅ wmctrl/xdotool | ❌ |
Dependencies
~28–46MB
~725K SLoC