2026-05-26 15:02:35 -05:00
2026-05-26 16:28:57 -05:00
2026-05-26 16:28:57 -05:00
2026-05-26 16:28:57 -05:00
2026-05-26 16:28:57 -05:00

limen

Latin: "threshold". The doorsill one crosses when entering.

A two-stage terminal launcher TUI for tmux and SSH. The first thing you see when opening a new terminal: pick a host, pick a session, get to work.

Status: Active implementation. The TUI launches host and session pickers. See docs/DESIGN.md for the canonical architecture specification.


What It Does

limen replaces tmux's default name-prompt-on-launch with an interactive, keyboard-driven TUI:

  1. Host Picker: Choose localhost or one of your declared SSH targets. Live status indicators show reachability and active session counts.
  2. Session Picker: Pick an existing tmux session to attach to, or spawn a new named session. Behaves consistently across local and remote targets.

Pressing Esc at any stage drops you into a fresh unnamed tmux session at the selected host with zero deliberation tax.

limen Launcher Architecture & Session Flow


Tech Stack & Architecture

  • Language & Runtime: Go 1.22+
  • TUI Engine: Charm Bubble Tea (Elm Architecture) & Lip Gloss styling
  • Orchestration: tmux IPC & native OpenSSH background client stream
  • Configuration: Single JSON fleet declaration at ~/.config/limen/hosts.json

Installation

Homebrew (macOS / Linux)

brew install KofTwentyTwo/tap/limen

Nix Flake Run

nix run github:KofTwentyTwo/limen

Binary Releases

Pre-built binaries are available on the Releases page:

Platform Architecture Binary Name
Linux x86_64 limen-linux-amd64
Linux ARM64 limen-linux-arm64
macOS Intel limen-macos-amd64
macOS Apple Silicon limen-macos-arm64

Local Build & Verification

Build from Source

# Build binary
go build -ldflags="-s -w" -o bin/limen ./cmd/limen

# Or build via Nix
nix build

Quality Gates & Verification

# 1. Run Unit & Integration Tests
go test -v ./...

# 2. Run Go Linter & Vet
go vet ./...

Fleet Configuration

Declare target hosts in ~/.config/limen/hosts.json:

{
  "hosts": [
    { "name": "prod", "hostname": "prod-server-01.example.com", "user": "deploy" },
    { "name": "dev",  "hostname": "dev-box.lan", "user": "james" },
    { "name": "builder", "hostname": "builder.lan" }
  ]
}

localhost is implicit and managed automatically by limen. See docs/DESIGN.md for full schema specifications.


License

GPL-3.0.

S
Description
limen — Latin for 'threshold'. Two-stage terminal launcher TUI for tmux + ssh: pick a host, pick a session, get to work.
Readme GPL-3.0
336 KiB
0 Stars 2 Watchers 0 Forks
v0.1.0
Latest
2026-05-26 22:06:41 +00:00
Languages
Go 98.1%
Ruby 1.1%
Nix 0.8%