Tern

CLOSED BETA

A neoterminalfor theElectron-weary.

A Rust native workspace that will go anywhere you do.

Defaultzshomp
Editsrc/prompt.rs+12−30.1s✓ Done

The prompt bar now keeps its right side when the path is truncated.

Run the termview tests

Bashcargo test -p stencil-termview0.0s
Compiling stencil-termview v0.1.0running 52 tests
Ask omp anythingπ · opus · ~/work/stencil
~/work/stencilonmain19:16
❯ for i in {1..999}; do echo "tick $i"; sleep .12; done
tick 36tick 37tick 38tick 39tick 40tick 41
~/work/stencilonmain19:12
❯ git log --oneline -4
dd681a96 (origin/main) feat: added tern40bb7858 feat: updated layout engine50d5bd87 feat(view): integrated layout switching2f608580 feat(ui): implemented flexible layouts
~/work/stencilonmain19:17
❯

01Daemon

Quit it. Reboot it. You never lose work.

Reboot, and every pane comes back in its directory over its old scrollback, with omp mid-conversation. tern remote serve does the same for a server over QUIC.

Defaultstencil
Edittests/remote.rs+24−3✓ Done

The reconnect test now waits for the resync before it types.

Run the remote tests

Bashcargo test -p stencil-tern --test remote1.4s
running 7 tests
Ask omp anythingπ · opus · ~/work/stencil
❯ cargo build -r -p stencil-tern
Compiling ring v0.17.14 Compiling noq v1.3.0 Compiling serde_json v1.0.151 Compiling parking_lot v0.12.5 Compiling iroh v1.3.0 Compiling ssh-key v0.6.7 Compiling wgpu v30.0.1 Compiling naga v30.0.1 Compiling harfrust v0.12.0 Compiling skrifa v0.44.0 Compiling png v0.18.1 Compiling regex v1.13.1 Compiling bytes v1.12.1 Compiling smallvec v1.16.2 Compiling sha2 v0.10.9 Compiling futures v0.3.34 Compiling stencil-text v0.1.0 Compiling stencil-term v0.1.0 Compiling stencil-ui v0.1.0 Compiling stencil-kit v0.1.0 Compiling tokio v1.53.1 Compiling rustls v0.23.45 Compiling ring v0.17.14 Compiling noq v1.3.0
Building [======> ] 268/388
~/work/stencilonmain0.1s19:14
❯ git status -sb
## main...origin/main M crates/tern/tests/remote.rs
~/work/stencilonmain19:15
❯
build-box
studiotern daemon
running

session Default · 3 panes

Panes

  • ompcargo test
  • cargo268/388
  • zsh~/work/stencil

Window

TernDefault · stencilattached
build-boxtern remote serve
serving

listening on [::]:8376

Panes

  • zsh~/work/stencil
  • cargo212/388
  • zsh~

Client

laptopcan@github · tailscaleattached

Reach servers with

02Everywhere

Desktop, iPhone, browser tab. One session, exactly the same.

Type on one, the others follow.

03Graphics

Diagrams, math, web pages. Faster than a TUI draws text.

Mermaid, LaTeX, diffs, live pages. Modern graphics, without the web stack's baggage: programs describe their UI over the Tern Surface Protocol, and Tern draws it natively.

piompzsh
ompANSIany terminal48×37
ompnativedrawn by Tern

How do TSP frames reach the screen? Fix the credit check, then open /tern.

Working0.0s

Ask omp anythingπ · opus · ~/work/pi

04Files

Open anything. Never leave the terminal.

Markdown edits like a document, code opens with git changes in the gutter, and media previews beside the shell.

DefaultstencilLaunch notes
Launch notes

Launch notes

Cut the demo from the golden renders, then record the voiceover over it. Everything the site needs sits in media/.

Tasks
  • Render the goldens
  • Record the voiceover
  • Export the mark as SVG
Assets
  • Demo cut: media/tern-demo.mp4
  • Voiceover: media/voiceover.m4a
/…/files/sample.rs1vs indexLn 24, Col 29
23/// How many jobs run at once.
24pub const WORKERS: usize = 48;
25/// The retry budget, in milliseconds.
26pub const RETRY_MS: u64 = 1_500;
27
27/// Flags packed into a byte.
28const FLAGS: u8 = 0b1010_0101;
29/// A mask in hex.
30const MASK: u32 = 0xDEAD_BEEF;
31/// A ratio.
32static RATIO: f64 = 1.618_033_988_75e0;
33/// Jobs created so far.
~/work/stencilonmain19:23
❯ tern open --preview media/tern-demo.mp4
~/work/stencilonmain19:24
❯
/…/media/tern-demo.mp4
0:14-0:38
1:02-2:16
Surface protocol
Frames
1 / 12

05Blocks

Every app you ⌘-Tab to, a block beside your shell.

A git client, a SQLite browser, Jupyter notebooks, a kanban board over your TODO.md, a task manager and screen sharing. Native, a ⌘K away, and each one splits, tabs and floats like any pane.

Defaultstencillaunch
TODO.md8 open · 2 done
Todo3
Add card
Doing2
Add card
Done2
Add card
Write the changelog for v1.0docs1/3
Fix the flaky sync_watches testbugci
Audit the telemetry eventsprivacyMar 1, 2020
Board block polishui2/3
Ship the beta to the waitlistrelease
Crash reporter opt-inprivacy
Notarize the macOS buildreleaseOct 4, 2099
CPU44%Memory77 GBGPU31%
Name% CPUMemory% GPU
WindowServer-daemon18.71.2 GB23.1
Google Chrome--no-startup-window5.8858 MB1.0
OrbStack Helpervmgr -build-id macho:05775f98b4bb3d75b88520220872c248 -handoff4.19.1 GB0.0
terndaemon --socket daemon.sock2.2419 MB0.0
Finder0.9410 MB0.0
QuickLookUIService0.4129 MB0.0
corespotlightd0.41024 MB0.0
chronod0.21.1 GB0.0
mdwrite0.11.7 MB0.0
imageplaygroundd0.04.1 MB0.0
cargobuild --release -p stencil-tern13.1214 MB0.0
rustc--crate-name stencil_term --edition=2024 lib.rs --crate-type lib3.3895 MB0.0
rustc--crate-name stencil_tern --edition=2024 lib.rs --crate-type lib0.81.4 GB0.0
rustcPID 48213 · parent 48190 (cargo) · can · running · started just now · 14 threads
rustc --crate-name stencil_tern --edition=2024 crates/tern/src/lib.rs --crate-type lib --emit=dep-info,metadata,link -C opt-level=3
StopQuit…⌫Force Quit…⌘⌫
Studio DisplayView onlystudio · Studio Display · 700×394
  • Shell⇧⌘TYour shell, with a native prompt.
  • Agent⇧⌘Aomp, drawn natively.
  • Browser⇧⌘BReal pages that omp can drive.
  • Files⌘OCode, Markdown, images, PDF, media.
  • Git⌥⌘GGraph, diffs, line staging, undo.
  • DatabaseSQLite, ported from DB Browser.
  • NotebookJupyter, on a plain Python.
  • Board⌥⌘KYour TODO.md as a kanban board.
  • Task managerProcesses, CPU, memory, GPU.
  • ScreenSee and drive another machine's screen.

06Script

If you can click it, you can script it.

tern split, run and capture drive the daemon, and every window follows live.

zsh~/work/stencil
❯
tern events
❯ tern events --filter pane_spawned,layout_changed
Defaultstencil
~/work/stencilonmain19:16
❯ git log --oneline -3
dd681a96 (origin/main) feat: added tern40bb7858 feat: updated layout engine50d5bd87 feat(view): integrated layout switching
~/work/stencilonmain19:17
❯
btop~/work/stencil
1cpu11%
C014%C16%C29%C311%
4proc
PidProgramCpu%41872tern3.152016btop1.840213zsh0.040377zsh0.0

07Speed

Up before the Dock icon finishes half a bounce.

151 ms cold to a live prompt, 153 ms to reopen six tabs. No bundled Chromium.

08Yours

Four layouts, all the omp themes. Your prompt, drawn natively.

Pick the layout that fits how you work; what a pane says about itself is your setting, the same in every one. Tern wears your omp theme and draws your powerlevel10k prompt natively.

Layout
Tiles
Theme
titanium
Prompt
Tern

Tern is in closed beta. Join the waitlist with your Stencil account, or make one on the way. We let people in from the list as Tern opens up.