Rmux: Bộ đa nhiệm terminal có thể lập trình với phong cách SDK Playwright

Phần mềm21 tháng 5, 2026·3 phút đọc

Rmux là một terminal multiplexer mới được viết bằng ngôn ngữ Rust, giải quyết các hạn chế trong việc tự động hóa tmux truyền thống. Công cụ này cung cấp giao diện dòng lệnh tương thích với tmux và một SDK Rust mạnh mẽ, cho phép kiểm soát và tự động hóa terminal theo phong cách Playwright trên nhiều nền tảng.

Rmux: Bộ đa nhiệm terminal có thể lập trình với phong cách SDK Playwright

Rmux là một giải pháp đa nhiệm terminal (terminal multiplexer) phổ quát được xây dựng cho "kỷ nguyên của các tác nhân AI" (agentic era). Được viết lại từ đầu bằng ngôn ngữ Rust, Rmux không chỉ duy trì khả năng tách rời (detachable) và quản lý phiên làm việc như tmux, mà còn thêm vào một lớp lập trình (programmable layer) mạnh mẽ.

Rmux LogoRmux Logo

Tại sao lại là Rmux?

Tác giả của dự án chia sẻ rằng Rmux ra đời từ sự thất vọng khi sử dụng tmux trong nhiều năm. Việc tự động hóa các tác vụ trên tmux thường rất khó khăn, đòi hỏi phải sử dụng grep và các lệnh sleep để "cạo" (scrape) dữ liệu đầu ra một cách thô sơ.

Rmux được thiết kế để giải quyết vấn đề này bằng cách cung cấp một SDK có kiểu dữ liệu (typed SDK) và các snapshot có cấu trúc. Điều này cho phép các nhà phát triển viết mã để điều khiển terminal một cách chính xác, tương tự như cách Playwright tự động hóa trình duyệt web.

Tính năng nổi bật

Rmux cung cấp hai giao diện chính hoạt động trên cùng một daemon (quy trình nền):

  1. CLI tương thích tmux: Hỗ trợ khoảng 90 lệnh của tmux, cho phép bạn sử dụng các phím tắt và cấu hình quen thuộc mà không cần thay đổi thói quen.
  2. SDK Rust bất đồng bộ: Cung cấp API để điều khiển terminal từ mã nguồn, bao gồm các ID pane ổn định, snapshot có cấu trúc và cơ chế chờ theo kiểu locator.

Rmux VersionRmux Version

Công cụ này hỗ trợ đa nền tảng native trên Linux, macOS và Windows (sử dụng ConPTY thực sự, không cần WSL), giúp việc triển khai và orchestration các tác vụ dài hạn trở nên dễ dàng hơn bao giờ hết.

Cài đặt nhanh

Bạn có thể cài đặt Rmux dễ dàng thông qua script cài đặt hoặc sử dụng Cargo:

macOS và Linux:

curl -fsSL https://rmux.io/install.sh | sh

Windows (PowerShell):

irm https://rmux.io/install.ps1 | iex

Từ Cargo:

cargo install rmux --locked

SDK và Tự động hóa

Điểm mạnh nhất của Rmux nằm ở khả năng lập trình. Dưới đây là ví dụ nhanh về cách sử dụng SDK để tạo một phiên làm việc, gửi lệnh và chờ kết quả:

use rmux_sdk::{EnsureSession, EnsureSessionPolicy, Rmux, SessionName, TerminalSizeSpec};
use std::time::Duration;

#[tokio::main]
async fn main() -> rmux_sdk::Result {
    let rmux = Rmux::builder()
        .default_timeout(Duration::from_secs(5))
        .connect_or_start()
        .await?;

    let session_name = SessionName::new("work").expect("valid session name");
    let session = rmux
        .ensure_session(
            EnsureSession::named(session_name)
                .policy(EnsureSessionPolicy::CreateOrReuse)
                .detached(true)
                .size(TerminalSizeSpec::new(120, 32)),
        )
        .await?;

    let pane = session.pane(0, 0);
    pane.send_text("printf 'ready\\n' && sleep 1\n").await?;
    pane.wait_for_text("ready").await?;

    let snapshot = pane.snapshot().await?;
    println!("{}x{}", snapshot.cols, snapshot.rows);
    Ok(())
}

Hỗ trợ nền tảng và Kiến trúc

Rmux được xây dựng với kiến trúc modul hóa, chia sẻ cùng một giao thức địa phương (local protocol) giữa CLI, SDK và widget Ratatui. Điều này đảm bảo mọi tính năng có sẵn trên giao diện dòng lệnh đều có thể thực hiện được thông qua mã lập trình.

Platform SupportPlatform Support

Hiện tại, dự án đang ở phiên bản v0.2.0 (bản xem trước công khai) và được cấp phép kép theo MIT và Apache License 2.0. Đây là một công cụ hứa hẹn cho những ai cần kiểm soát terminal ở mức độ sâu hơn, đặc biệt là trong các môi trường DevOps và phát triển AI agents.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗