是你那個會話,不是它的副本
AI Anywhere 從不 attach tmux 客戶端——客戶端會參與尺寸協商,把你自己終端裏的窗口壓小。它用 list-panes 讀結構、pipe-pane 鏡像輸出、send-keys 寫輸入。你開著的東西不會挪動一列。
tmux,跑在瀏覽器標籤頁裏
AI Anywhere 把你手上這個 tmux 會話搬進瀏覽器。window 成了任務,pane 成了標籤頁,每台你 ssh 上去的機器都匯進同一個工作區——claude、codex、gemini 就跑在裏面。
macOS 與 Linux
curl -fsSL https://tmux.online/install.sh | sh 缺 tmux 就替你裝上,從 npm 拉 ai-anywhere-server,再註冊給 launchd 或 systemd——重啓之後它自己回來。
腳本會等服務起來,然後打印一個帶 token 的本地地址。在那台機器上用任何瀏覽器打開即可。
你原本開著的那些 window 已經列在左邊。沒有重啓、沒有重新 attach,你自己終端裏的東西一格都沒動。
AI Anywhere 從不 attach tmux 客戶端——客戶端會參與尺寸協商,把你自己終端裏的窗口壓小。它用 list-panes 讀結構、pipe-pane 鏡像輸出、send-keys 寫輸入。你開著的東西不會挪動一列。
一個會話,一套心智模型:左邊那條軌是你正在做的事,上方的標籤是它裏面的 pane。把標籤拖到一旁就分屏——這個分屏只屬於瀏覽器,tmux 的佈局原封不動。
加一個 ssh 目標,它的 tmux 就出現在同一個列表裏,歸在那台機器名下,和本地任務並排。連接只在你點擊時才發起,走你自己的 ssh 配置——從你的機器直連到它的機器,中間沒有任何中轉。
服務端盯著每一個 pane,不只是屏幕上那個:pane 標題裏的 spinner 表示在幹活,屏幕上出現提示表示在等你。兩種狀態都標在軌上——後臺某個任務裏 claude 問了你一句,不會就那麼晾一個鐘頭。
尺寸的決定權在瀏覽器。它量出視口放得下多少,挑一個仍能排滿整格的最大字號,再告訴 tmux 這個窗口有多寬。390px 的屏幕拿到的仍然是 80 列,而不是一條橫向滾動條。
會話和連接是解耦的。重新打開頁面,最後一屏從服務端的緩衝區回放出來,連光標位置和 alt-screen 一起——全屏 TUI 是接著上一幀回來的,不會重繪錯位。
Chrome 擴展
同一個工作區可以作為 Chrome 側邊欄運行,就在你正讀的東西旁邊。它多帶一個元素選取器:點頁面上任意一塊區域,它的 URL、CSS 選擇器和 HTML 片段就直接落進 CLI 的輸入行——「就這塊,這裏」這句話,終於變成了 AI 能動手的東西。
看看這個擴展它跑在哪
這個站點是純靜態的——一個頁面和一份 shell 腳本。旁邊還有一個可選的賬號服務,tmux.online 的職責到此爲止。服務端、會話、CLI 和你的密鑰,從不離開你自己的硬件。
一個字節都不寫。它只針對一個會話工作——默認是 main,可以用 --tmux-session 換掉——其餘的只讀。被它改過尺寸的 window,在你關掉頁面時會恢復成自動。
tmux 和 Node.js 22.5 或更新的版本。tmux 由安裝腳本通過 brew、apt、dnf、pacman 或 apk 替你裝好;Node 缺失或版本過低時,它會直說並停下,而不是瞎猜。
能——在那台機器上跑同一行命令。然後回到你已經開著的頁面,把它添加爲一個主機並連接。它的任務會以那台機器的名字分組,出現在同一條軌上,和本地任務混排。
不用。服務端自己就托管著網頁版,地址是 127.0.0.1:16666。擴展是在它之上多加了側邊欄和元素選取器。
除非你登錄,否則沒有——而你從來不需要登錄。安裝腳本從 npm 拉包,之後不再向任何地方彙報。就算你真的建了賬號,它持有的也只有你的 GitHub 身份和你授權過的設備,絕不包括你的會話、按鍵或密鑰。
不需要。這頁上的一切在未登錄狀態下都能用,在你自己的機器上,一直如此。賬號只服務於少數幾件離了它做不成的事:給一台開不了瀏覽器的機器授權 CLI,以及爲腳本簽發 API key。登錄是點一下 GitHub,撤銷再點一下。
刪掉安裝腳本寫的那個 launchd agent 或 systemd user unit,然後 npm uninstall -g ai-anywhere-server。你的 tmux 會話不受影響。
一行命令,然後打開它打印的鏈接。
curl -fsSL https://tmux.online/install.sh | sh