@biang/ai-terminal
v0.1.42
Published
A local web workspace for tmux-backed AI terminal sessions.
Readme
AI Terminal
AI Terminal is a web workspace for local and remote Mac tmux sessions. It keeps a Codex-like project and conversation list on the left, and uses xterm.js on the right to attach to tmux.
Run
npm run devThe web app opens at http://localhost:5174, with the API and terminal WebSocket on port 4317.
Local Package
Build a local installable package:
npm run package:localThe package is written to release/biang-ai-terminal-<version>.tgz.
Install it on another Mac:
npm install -g ./biang-ai-terminal-<version>.tgz
cd /path/to/workspace
ai-terminalUpdate a running workspace without manually stopping it:
ai-terminal updateOpen http://localhost:4317. Runtime state is stored in ./data/store.json for the directory where ai-terminal is launched.
Useful options:
AI_TERMINAL_SERVER_PORT=4321 ai-terminal
AI_TERMINAL_DATA_DIR="$HOME/.ai-terminal" ai-terminal
AI_TERMINAL_WORKSPACE_ROOT="/path/to/workspace" ai-terminalRequirements for the target Mac:
- Node.js 20+
- tmux
- Xcode Command Line Tools if
node-ptyneeds to compile during install
npm Install
Install from npm:
npm install -g @biang/ai-terminal
cd /path/to/workspace
ai-terminalRemote Mac
Add a remote connection from the connection drawer. The server connects with SSH keys or an existing SSH agent, then runs:
tmux new-session -A -s <conversation-session>The browser never receives SSH credentials. Terminal data flows only through the local Node server.
Pairing Remote Macs
For a UI flow, open the connection drawer and use "无感配对".
For a headless flow, create a request code on the client:
ai-terminal pair offer --name "My Mac"On the target Mac, allow that request and generate a connection code:
ai-terminal pair accept '<request-code>' --name "Mac Studio" --host 192.168.1.8 --cwd /path/to/workspaceBack on the client, import the connection:
ai-terminal pair import '<connection-code>' --name "Mac Studio"The pairing flow creates a local ~/.ssh/ai_terminal_ed25519 key on the client and appends its public key to the target Mac's ~/.ssh/authorized_keys. It does not put private keys or passwords into pairing codes. The target Mac still needs SSH/Remote Login enabled.
Notes
- Install
tmuxon local and remote machines. - The Claude button sends
claudeplus Enter into the active tmux terminal. - Runtime state is stored in
data/store.json.
