Skip to content

aditya-weaver/run-kit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

531 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

run-kit logo run-kit

Part of @sahil87's open source toolkit — see all projects there.

Web-based agent orchestration dashboard. Monitor and interact with tmux sessions from the browser — session overview, live terminal windows, and fab-kit integration for change tracking.

Screenshots

Desktop — terminal session with sidebar (servers, sessions, panes) and host stats

Mobile menu — drawer with servers, sessions, and panes Mobile dashboard — session and window overview Mobile terminal session

Installation

brew tap sahil87/tap
brew install rk

To upgrade later, run rk update — it pulls the latest version via Homebrew and restarts the daemon so the new binary takes effect immediately.

Usage

rk serve -d          # start daemon (default :3000)
rk serve --restart   # restart daemon (idempotent)
rk serve --stop      # graceful shutdown
rk update            # upgrade via Homebrew and restart

Prerequisites (development)

  • Node.js (v20+)
  • pnpm
  • tmux installed and on your PATH
  • just task runner
  • Go (1.22+)
  • air Go live-reload for development
  • direnv for automatic .env loading via .envrc
brew install node pnpm tmux just direnv go
go install github.com/air-verse/air@latest

Run just doctor to verify all dependencies are installed.

Getting Started

just doctor
just setup
just dev  # watch mode
# OR
just prod # Runs from built binary

HTTPS

Some browser features (e.g., copy to clipboard) require a secure context and only work over HTTPS. Accessing rk from other machines on your tailnet also requires HTTPS. To enable it:

  1. Enable HTTPS at DNS > HTTPS Certificates.
  2. Run tailscale serve --bg http://localhost:3000.
  3. Open https://<machine>.<tailnet>.ts.net.

For custom hostnames, Funnel, and other options, see the Tailscale guide.

Self-Improvement Loop

rk runs as a daemon in a dedicated tmux session. Lifecycle is managed via CLI flags on rk serve:

  • rk serve -d — start daemon in a tmux session (rk-daemon server)
  • rk serve --restart — idempotent restart (stop existing if running, start new)
  • rk serve --stop — graceful shutdown via SIGINT

Key properties:

  • Tmux-based — daemon runs in a dedicated tmux server (rk-daemon), separate from agent sessions (runkit)
  • Kill-and-restart — no polling loop or signal files; restart sends C-c then starts the new binary
  • Idempotent--restart works whether or not a daemon is currently running
  • tmux-independent — the daemon server never touches agent tmux sessions; agent sessions survive restarts unaffected

About

Web based TMUX Orchestration Kit - for long running tasks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 59.0%
  • Go 38.2%
  • HTML 1.4%
  • Shell 0.9%
  • Just 0.3%
  • CSS 0.2%