Skip to content

rappdw/zen-term

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Satori Terminal Kit — AI-Native Development Environment

Development environment tooling born from building Proofpoint Satori. A reproducible setup for an AI-first terminal environment connecting a MacBook to a DGX Spark via persistent, drop-proof connections with built-in AI agent notifications.

┌─────────────────────┐         UDP (Mosh)         ┌──────────────────────────┐
│  MacBook            │ ◄─────────────────────────► │  DGX Spark               │
│                     │                             │                          │
│  cmux (Ghostty GUI) │                             │  Zellij (multiplexer)    │
│  ├─ AI sidebar      │                             │  ├─ Claude Code pane     │
│  └─ Notification    │  ◄── OSC 777 sequences ──── │  ├─ GPU Monitor pane     │
│     rings           │                             │  └─ Project Logs pane    │
└─────────────────────┘                             └──────────────────────────┘

Prerequisites

Machine Requirement
MacBook macOS, Homebrew
DGX Spark Ubuntu/Debian with apt, nvidia-smi, SSH access

Quick Start

1. Local setup (MacBook)

./scripts/setup-local.sh

Installs cmux and mosh, then configures Ghostty for SSH terminfo injection.

2. Push terminfo to the DGX

./scripts/push-terminfo.sh <DGX_HOST>

Exports the xterm-ghostty terminfo so the DGX recognises your terminal. Run this once per DGX host.

3. Remote setup (DGX Spark)

From your MacBook, deploy and run the remote setup over SSH:

./scripts/deploy-remote.sh <DGX_HOST>

This copies the setup script and Zellij layout to the DGX, runs the install (mosh, zellij, notifications), and cleans up the temporary files.

4. Connect

mosh <DGX_HOST> -- zellij --layout satori

This opens the Satori workspace: Claude Code on the left, GPU monitor and logs on the right, with the tab bar and status bar framing the layout.

What you get

  • Drop-proof sessions — Mosh uses UDP; closing your laptop lid or losing Wi-Fi just dims the screen and resumes instantly.
  • AI notification rings — When Claude Code exits or needs attention, cmux's sidebar glows blue via OSC 777 escape sequences, even if you're in a different tab.
  • Task-specific layouts — Three named Zellij layouts for different working modes: default workspace, research/discovery, and code review.
  • Agent status indicators — Pane titles update dynamically with Unicode status glyphs (⟳ working, ◉ waiting, ✓ done, ✗ error) via the satori_status shell function.

Layouts

Layout Command Purpose
satori zellij --layout satori Default workspace: Claude Code + GPU monitor + logs
satori-research zellij --layout satori-research Discovery sessions: Claude Code (60%) + Reference + Notes
satori-review zellij --layout satori-review Code review: Claude Code + Diff View + Tests + Logs

Repository Structure

.docs/specification.md       # Original architecture specification
layouts/
  satori.kdl                 # Default workspace layout
  satori-research.kdl        # Research/discovery layout
  satori-review.kdl          # Code review layout
scripts/
  setup-local.sh             # MacBook: install cmux + mosh, configure Ghostty
  push-terminfo.sh           # MacBook: push xterm-ghostty terminfo to DGX
  deploy-remote.sh           # MacBook: deploy and run remote setup over SSH
  setup-remote.sh            # DGX: install mosh + zellij, deploy layouts + notifications

Shell Helpers

The setup installs these functions into your shell rc on the DGX:

  • notify_cmux "Title" "Body" — Trigger cmux notification rings via OSC 777.
  • satori_status working|waiting|done|error ["Label"] — Update the Zellij pane title with a status glyph.
  • claude-watch [args...] — Wraps claude code: sets status indicators during execution and fires a notification on exit.

Customisation

  • Zellij layouts — Edit files in layouts/ to add panes, change split ratios, or swap commands. All satori*.kdl files are deployed automatically.
  • Notifications — Call notify_cmux from any script or shell session.
  • Status indicators — Call satori_status to update pane titles programmatically.
  • Multiple DGX hosts — Run push-terminfo.sh and deploy-remote.sh for each host.

About

A high-performance, persistent terminal architecture for AI natives. Orchestrating Ghostty, cmux, and Zellij to bridge MacBook productivity with DGX Spark compute power for agentic AI development.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages