Monorepo for Tangled
tangled.org
1---
2atroot: true
3template:
4slug: ssh
5title: Tail CI logs over SSH
6subtitle: Never leave your terminal to check on CI!
7image: https://assets.tangled.network/blog/pty/astral-projection.webp
8date: 2026-05-28
9authors:
10 - name: Akshay
11 email: akshay@tangled.org
12 handle: oppi.li
13---
14
15If you push to a new branch on a remote, if CI was
16triggered, Tangled now helpfully supplies an `ssh` command
17for you:
18
19```bash
20λ jj git push -c @-
21 -- snip --
22remote: → Browse CI logs in your terminal:
23remote: ssh -t -p 3333 tangled.org did:plc:j5hmlfdrwkvtxm7cjmu7j2is 796ecc5b0ce5381ed5b5021e7cc28b4b05e03c92
24```
25
26Paste that command in a new shell, and you are dropped into
27a fullblown TUI, served over SSH:
28
29<video src="https://assets.tangled.network/blog/pty/Screen%20Recording%202026-05-27%20at%2011.43.11-cropped-half.webm" controls>
30</video>
31
32Try it for yourself:
33
34```
35ssh -t -p 3333 tangled.org did:plc:j5hmlfdrwkvtxm7cjmu7j2is 796ecc5b0ce5381ed5b5021e7cc28b4b05e03c92
36```
37
38That SSH commmand runs a "screen based" program on the
39remote machine. In this case, the program is a TUI built
40using
41[bubbletea](https://github.com/charmbracelet/bubbletea) and
42[wish](https://github.com/charmbracelet/wish).
43
44SSH powered interfaces are wonderful for several reasons:
45
46- They require zero installation
47- They work great for interactive bits like menus
48- They have all the upsides of running a TUI: you can
49 persist them over tmux, theme them with terminal colors
50 etc.
51
52But they are doubly wonderful when streaming CI logs, the
53screen-program is totally unaware of ANSI escape codes, but
54they are handled correctly by virtue of writing to a PTY.
55Both ends (the commands running in the CI job and the PTY)
56are speaking the same language.