Every line of code should feel like writing poetry.
Typewriter Nocturne is a cross-platform terminal with the soul of a writing desk: your shell typed onto a sheet of paper, a brass-and-enamel typewriter whose head follows the cursor, a lamp with a pull cord, the sound of type bars. Underneath it is a complete, real terminal: a fork of Hyper with xterm.js and node-pty running your actual shell, so zsh, bash, PowerShell, Git, Python, Node.js, SSH, Vim, tmux and every other TUI program work as they do in any good terminal.
Documentation · 中文文档 · Interactive demo · Download
Screenshots of the packaged app, taken by its end-to-end tests on GitHub Actions (CI runners have no GPU, so the typewriter is drawn on the CPU there with Quality set to High). More in the gallery.
Version 1.0. The latest version is on the Releases page and what changed in each one is in the changelog. The installers are not code-signed yet (see docs/INSTALL.md). See docs/ARCHITECTURE.md for how it is built and what comes next.
- A 3D typewriter with physically based materials and soft shadows. The type head rides a rail with one rack tooth per terminal column, moves with escapement physics, sways on its pivot and strikes the platen.
- Light that behaves like light: inverse-square falloff, Lambert's cosine law, a soft spot cone that draws a clean triangle up the page from the type head, moonlight through an upright window of square panes whose number, slant and place you choose. Every paper keeps its own texture in the light. Brightness, beam angle, beam shape, aim and the light itself (carriage lamp, desk lamp or window) are adjustable, and a slender theatre-curtain pull cord ending in a silk tassel switches the lamp (hide it in the Studio if you like). On a dark sheet the lamp shows as the paper itself lit, warm and dim, with a soft bloom; the room never dims the page below 4.5:1 contrast.
- An ink cursor: the block is a blot of ink with a soft edge where it soaked into the paper. While the terminal waits it sinks into the page and wells up again, a faint halo spreading as it fades; every key you strike inks it afresh. Or choose a quill pen, the size of the block, with its nib on the line.
- Paper and ink: six papers, from smooth onionskin (the default) and felted cotton rag to parchment, as narrow as a letter or as wide as the whole platen. Freshly typed characters land heavy and settle into print, and selected text dissolves like ink and re-forms instead of sitting in a flat box.
- A paper clip for a scrollbar: a Gem clip slid onto the edge of the sheet, it glides and leans as you scroll and can be dragged (or use a translucent bar, or the system one). Double-click a bail roller to roll the paper to the top or the bottom.
- Sounds of the machine, synthesised: type bars, space bar, carriage return, margin bell, the platen ratchet when you recall history with ↑/↓, the escapement on ←/→, the tabulator, placed in stereo where the head stands.
- Input methods: pinyin, kana and hangul compositions strike keys while you compose, and the committed text lands as a firm double strike, without touching the IME or what the shell receives.
- Fonts: Courier Prime and IBM Plex Mono bundled, Nerd Font presets, any installed family, and the Symbols Nerd Font bundled so Nerd Font icons appear with every face.
- The Press: print a snippet, the selection, the screen or the last command with its output as a folio set like a sonnet, previewed live as you choose: the paper; the wax seal (or none) with its colour, monogram (TN until you choose your own) and emblem; a satin ribbon laid one of six ways, in the wax's own silk or one of seven colours; a face for the text (an upright book face like a printed sonnet, or any installed font); and your name to sign it. Keep it in the local Archive, rename it, save it as PNG or copy it.
- Focus Mode with a paper, dark or custom background, keeping the paper's effects or the lamp if you want them; a Studio for every setting; a gilt sheet icon for new tabs; and an Auto quality that keeps the terminal fast on computers without a usable GPU.
- A real terminal first. No fake prompt, no reimplemented parser or PTY. Exit codes, environment, working directory, keyboard behaviour, IME input and bracketed paste come straight from Hyper and your shell.
- Effects never touch your data. Lighting and typewriter feedback sit on top of the terminal; they never delay, intercept or rewrite keystrokes or program output. Every effect can be turned off, and Focus Mode removes all decoration at once. Terminal text is read only when you print it, and folios stay on your computer.
- Typography that respects the grid. Strict monospace cells for the terminal, CJK double-width characters intact; serif type only for the chrome around it.
- Built in the cloud. Every dependency install, native rebuild, test and installer is produced by GitHub Actions. See docs/INSTALL.md for downloads and the caveats of unsigned builds.
Development builds are attached to each CI run (macOS arm64/x64 DMG, Windows x64 installer, Linux x64 AppImage and DEB). Tagged versions are published on the Releases page with SHA-256 checksums.
Edit, commit and push; GitHub Actions does the rest:
change code → push → CI (lint · types · unit tests · licences · packages · e2e on a real PTY) → read logs → fix → push
Upstream tracking and merge instructions are in UPSTREAM.md.
MIT. Typewriter Nocturne is built on Hyper, © Vercel, Inc., also MIT; the
original licence is kept in LICENSE and shipped in every installer under licenses/. All artwork in
assets/nocturne/ is original and released under the same licence.








