libtmux-mcp server
ทางการเซิร์ฟเวอร์ MCP ของ tmux ที่ขับเคลื่อนโดย libtmux
คุณทำอะไรได้บ้างด้วย Libtmux MCP?
- ตรวจสอบสถานะ tmux — ขอรายการเซสชัน จับภาพเอาต์พุตของแพน หรือค้นหาแพนเพื่อหาข้อความที่ต้องการ
- จัดการโครงสร้าง tmux — เปลี่ยนชื่อเซสชัน ปรับขนาดแพน เลือกเลย์เอาต์ หรือย้ายหน้าต่างระหว่างเซสชัน
- รันคำสั่งในแพน — สร้างเซสชัน/หน้าต่าง แยกแพน ส่งคีย์ หรือรันคำสั่งเชลล์
- ควบคุมกระบวนการในแพน — วางข้อความหรือบัฟเฟอร์ ส่งเอาต์พุตของแพน หรือตั้งค่าตัวแปรสภาพแวดล้อมและตัวเลือก
- ทำลายออบเจกต์ tmux — ล้างประวัติการเลื่อนของแพน ฆ่าเซสชัน/หน้าต่าง/แพน หรือลบบัฟเฟอร์
- ระงับประวัติเชลล์ — สร้างเซสชันหรือหน้าต่างด้วยการควบคุมประวัติแบบไม่เขียนลงดิสก์เพื่อการทดสอบที่สะอาดขึ้น
เอกสาร
การควบคุมเทอร์มินัลสำหรับเอเจนต์ AI สร้างขึ้นบน libtmux และ FastMCP
เซิร์ฟเวอร์นี้แมปลำดับชั้นออบเจกต์ของ tmux — เซสชัน หน้าต่าง พาเนล — เป็นเครื่องมือ MCP ที่จัดกลุ่มตามการดำเนินการที่ร้องขอ เซิร์ฟเวอร์บังคับใช้กลุ่มที่เลือกไว้ที่ขอบเขตเครื่องมือ MCP
[!warning] คำเตือน ระยะพรีอัลฟา API อาจมีการเปลี่ยนแปลง ยินดีรับฟังความคิดเห็น
เมื่อติดตั้ง uvx แล้ว:
$ claude mcp add tmux -- uvx libtmux-mcp
เริ่มต้นอย่างรวดเร็ว
เครื่องมือ
พรอมต์
ทรัพยากร
โมเดลความเชื่อถือ
การตั้งค่าไคลเอนต์
สิ่งที่คุณทำได้
ตรวจสอบ ตรวจสอบ
ร้องขอสถานะ tmux และเอาต์พุตเทอร์มินัล
list_sessions · capture_pane · capture_since · snapshot_pane · get_pane_info · find_pane_by_position · search_panes · wait_for_text · display_message · call_read_tools_batch
จัดการ จัดการ
เปลี่ยนโครงสร้างหรือการนำเสนอของ tmux
rename_session · resize_pane · select_layout · select_pane · move_window · enter_copy_mode · load_buffer · wait_for_channel
ดำเนินการ ดำเนินการ
เริ่มหรือขับเคลื่อนกระบวนการในพาเนล หรือจัดเก็บสถานะที่สามารถควบคุมการดำเนินการในภายหลัง
create_session · create_window · split_window · respawn_pane · send_keys · send_keys_batch · run_command · paste_text · paste_buffer · pipe_pane · set_option · set_environment
รื้อถอน รื้อถอน
ลบออบเจกต์ tmux หรือ scrollback ที่เก็บไว้ ไม่สามารถย้อนกลับได้
clear_pane · kill_session · kill_window · kill_pane · kill_server · delete_buffer
ตัวอย่าง: เก็บการรันทดสอบให้อยู่นอกประวัติถาวร
libtmux-mcp ให้การระงับประวัติแบบ best-effort สำหรับ Bash, Zsh และ Fish การเรียก MCP ไปยัง run_command ใช้การระงับคำสั่งแบบเบาโดยค่าเริ่มต้น เมื่อคุณสร้างเชลล์ใหม่ ให้เลือกใช้การควบคุมแบบไม่เขียนดิสก์ที่เข้มงวดขึ้นด้วย suppress_persistent_history=true
[!note] พรอมต์ สร้างเซสชัน tmux ชื่อ "checks" พร้อมการควบคุมประวัติเชลล์แบบไม่เขียนดิสก์แบบ best-effort รัน
pytest -qในพาเนลเริ่มต้น และแสดงผลลัพธ์ให้ฉันดู
เอเจนต์เรียก create_session ด้วย suppress_persistent_history=true นำ active_pane_id กลับมาใช้จาก SessionInfo ที่ส่งคืน และเรียก run_command โดยไม่มีการแทนที่ ตัวเลือกการสร้างเดียวกันบน create_window, split_window หรือ respawn_pane ใช้กับกระบวนการที่การเรียกนั้นเริ่มต้นเท่านั้น
การควบคุมเหล่านี้ลดสัญญาณรบกวนในประวัติ แต่ไม่ได้ทำให้คำสั่งเป็นความลับ ดู การระงับประวัติ สำหรับพฤติกรรมเฉพาะเชลล์ การกำหนดค่า สำหรับค่าเริ่มต้นของเซิร์ฟเวอร์ และ โมเดลความเชื่อถือ สำหรับพื้นผิวการสังเกตอื่นๆ
โมเดลแนวคิด
- ลำดับชั้นออบเจกต์ — เซสชันมีหน้าต่าง หน้าต่างมีพาเนล (แนวคิด)
- ชุดเครื่องมือ — ตรวจสอบ จัดการ ดำเนินการ รื้อถอน; สิ่งที่แต่ละกลุ่มรวม (โมเดลความเชื่อถือ)
- tmux คือแหล่งความจริง — เซิร์ฟเวอร์อ่านจากและเขียนไปยัง tmux ไม่เคยแคชหรือทำให้เป็นนามธรรม