mi6-client

Crates.iomi6-client
lib.rsmi6-client
version0.2.8
created_at2026-01-08 19:33:10.357156+00
updated_at2026-01-24 19:03:35.104858+00
descriptionClient library for mi6 - session monitoring, terminal focus, and process management
homepage
repositoryhttps://github.com/paradigmxyz/mi6
max_upload_size
id2030940
size212,698
(sslivkoff)

documentation

README

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
Commit count: 0

cargo fmt