Skip to content

Repository files navigation

RemoteWebTerminal

Small Rust daemon that serves a localhost web page for managing terminal sessions run by tmux.

Run

cargo run

Then open:

http://127.0.0.1:8765

The daemon binds to 127.0.0.1:8765 by default. Override it with:

cargo run -- --bind 127.0.0.1:9000

Install as a macOS Service

Install a user-level launchd service:

cargo run -- install

The installer writes:

~/Library/LaunchAgents/com.remotewebterminal.daemon.plist

It runs without sudo, binds to 127.0.0.1:8765 by default, and writes logs to:

~/Library/Logs/RemoteWebTerminal/

Lifecycle commands:

cargo run -- status
cargo run -- stop
cargo run -- start
cargo run -- uninstall

Use a custom bind address or tmux binary with the global options:

cargo run -- --bind 127.0.0.1:9000 --tmux-bin /opt/homebrew/bin/tmux install

The installer pins the daemon to the standard interactive tmux socket for the current user, such as:

/private/tmp/tmux-501/default

Override it when your tmux server uses a custom socket:

cargo run -- --tmux-socket /path/to/tmux-socket install

When installing a built binary directly:

cargo build --release
./target/release/remote-web-daemon install

Features

  • List tmux sessions, windows, and panes.
  • Create and kill tmux sessions.
  • Capture pane output.
  • Send literal text or named keys such as C-c.
  • Kill individual panes.

API

  • GET /api/health
  • GET /api/sessions
  • POST /api/sessions
  • DELETE /api/sessions/:name
  • GET /api/panes/:pane_id/capture?lines=200
  • POST /api/panes/:pane_id/send-text
  • POST /api/panes/:pane_id/send-key
  • DELETE /api/panes/:pane_id

About

Small rust project to keep a daemon running on localhost that provides terminal access.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages