最近做了一個沒有什麼實際用途的小玩具:CineTTY,啟動後,它會在終端機自動寫 C 程式、更新系統監控數字,並快速捲動 Kernel Event,呈現電影裡常見的駭客工作站效果
所有內容都是視覺模擬,不會真的編譯程式、掃描網路或操作系統
起源
這個專案起源於我和朋友拍攝宣傳影片的經驗,當時有幾幕想模擬工程師或駭客工作,希望螢幕上同時有程式碼、系統資訊和快速捲動的文字
我們試過一些網路工具,包括經典的 cmatrix。它的綠色字元雨很有代表性,但畫面較單純,和電影裡資訊量很大的工程師工作站仍有差距,macOS 上雖然也有更複雜的工具,有些卻需要額外安裝 Runtime、套件或 Terminal Library,跨平台使用也不方便
因此我想做一個安裝簡單、輸入一個指令就能啟動,而且能在 Linux、macOS 和 Windows 呈現一致效果的版本
CineTTY 不是真的用 tmux 切割終端機,而是在同一個畫面裡繪製三個面板:
- 左側是一個會自動寫 C 的文字編輯器
- 右上方是一個類似 htop 的系統監控畫面
- 右下方則是不斷捲動的 Kernel Event Stream
早期版本也有 Matrix Rain 和互動式 Console,後來我把兩者拿掉,改成全自動演出,使用者只要執行 cinetty,畫面就會像正在編譯、除錯或維護系統的工作站一樣持續運作

功能
自動寫code的 C 編輯器
左側模擬一個 Linux Kernel C 編輯器,包含行號、語法顏色、游標、Revision 和進度,程式碼都是固定產生好的,使用 scheduler、memory、IRQ、DMA 和 network 等 Linux 常見概念,但不會被編譯或執行,為了避免短時間內重播,我把虛構 C Source 擴充到原本的 100 倍;在預設速度下,可以持續捲動超過一個小時
填滿畫面的 htop 風格監控器
右上方模擬一個資訊密度很高的 htop 畫面,包括:
- 多核心 CPU 使用率
- Memory 與 Swap
- Tasks、Threads、Load Average 與 Uptime
- Network、Disk I/O 與溫度
- 不斷變化的 Process List
畫面會依照終端機大小調整排列,並盡量填滿面板。最低尺寸為 70 × 22,再縮小就會顯示調整視窗的提示
快速捲動的 Kernel Event Stream
右下方會產生不同長度與類型的虛構 Kernel Log,涵蓋 IRQ、排程器、網路封包、NVMe、檔案系統、DMA 和 Systemd 等事件。CineTTY 不會執行 dmesg 或讀取真實 Log
安裝
最簡單的方式是透過 Homebrew 安裝,接著執行 cinetty:
| |
Homebrew Formula 同時支援 macOS 和 Linux。也可以使用安裝腳本,自動下載適合的版本、驗證 SHA-256 Checksum,再放到 ~/.local/bin:
| |
若已安裝 Go 1.22 以上版本,也可以從原始碼安裝:
| |
Windows 使用者可以到 最新的 GitHub Release 下載 cinetty_windows_amd64.zip。
操作
CineTTY 全自動執行,只保留幾個必要按鍵:
Space:暫停或繼續畫面Q、Esc或Ctrl-C:結束 CineTTY
也可以切換 Green、Cyan 或 Amber 主題,並調整打字速度與幀率:
| |
-speed 支援 0.2 到 5.0,-fps 支援 10 到 60。
Why Go?
最早的 Prototype 是用 Python 寫的,但我希望使用者下載一個檔案就能執行,不必先準備 Runtime 或額外套件。因此後來改用 Go,並且只使用 Standard Library,編譯完成後是單一 Native Executable,執行時不需要 Go,也沒有第三方 Go Module;畫面與輸入則透過 ANSI Escape Sequence 和各平台的 Terminal API 處理
目前 Release 會自動建立以下版本:
- Linux x86-64 與 ARM64
- macOS Intel 與 Apple Silicon
- Windows x86-64
結語
CineTTY 不是系統監控器或程式編輯器,但它仍然具備完整工具該有的細節:一行指令安裝、跨平台執行、依終端機大小調整,並在離開時恢復原本畫面。它適合用在影片拍攝、Demo 背景,或者單純讓終端機暫時變得很有電影感。
原始碼以 MIT License 開放在 GitHub,歡迎試玩、回報問題或一起增加更多浮誇的畫面:
