#monitoring #claude #terminal

mi6-client

Client library for mi6 - session monitoring, terminal focus, and process management

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)

MIT/Apache

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