cd /news/developer-tools/show-hn-foretype-type-on-remote-mach… · home › topics › developer-tools › article
[ARTICLE · art-149361] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Show HN: Foretype: type on remote machines at local speed

Developer Fabio Roma released Foretype, an Apache-2.0 Rust tool that predicts keystrokes locally on remote machines to cut on-screen typing latency from 160 ms to 10 ms over a ~150 ms connection. Foretype installs as a login shell, runs the user's real shell in a pseudo-terminal, and draws predicted keys when the remote program takes longer than 30 ms to echo, taking predictions back if the real echo differs or does not arrive within roughly three round trips. The tool requires nothing installed on the server and leaves ssh, shell config and the server untouched.

read2 min views3 publishedOct 12, 2026
Show HN: Foretype: type on remote machines at local speed
Image: Michielbdejong (auto-discovered)

Type on remote machines at local speed.

A Rust tool that forecasts your typing, drawing each key before the server echoes it back.

<sub>Top: plain ssh. Bottom: foretype. Same keys at the same moment, to a deliberately laggy server ~440 ms away.</sub>

                       without     with foretype
bash over ssh           160 ms        10 ms
coding agent over ssh   148 ms        11 ms
any laggy console       158 ms        10 ms

<sub>A separate measurement, server ~150 ms away. Median time from keypress until the character is on screen; with foretype that is the locally drawn prediction, and the real echo still arrives at network speed. Measured with scripts/latency.py.</sub>

git clone https://github.com/itsfabioroma/foretype && cd foretype
./install.sh

To try it without installing, run cargo build --release, then FORETYPE_SHELL=$SHELL ./target/release/foretype shell. That runs your shell inside foretype in the current terminal; exit leaves.

Open a new terminal tab. That's it. Typing into anything slow now feels instant: ssh, kubectl exec, docker exec, a coding agent on a far box. Nothing to install on the server, and your shell, prompt and config stay the same.

foretype status             # is this tab boosted?
sudo foretype uninstall     # put your old shell back

foretype is a single Rust binary. foretype install copies it to /usr/local/bin, adds foretype-shell to /etc/shells, makes that your login shell with chsh, and saves your old shell in ~/.config/foretype/shell. Every new terminal tab, tmux pane and editor terminal then starts foretype, which runs your real shell in a pseudo-terminal and forwards every byte unchanged. It mirrors the screen with vt100 and times how long each key takes to echo. When the program in front is slower than 30 ms, foretype draws your keys itself, then checks them against the real echo.

  • Only interactive terminals are wrapped. -c commands, scripts and pipes get your real shell directly.
  • ssh, your shell config and the server are untouched. Root is only needed to install and uninstall.
  • Predicts only after the program has echoed on that line, so passwords stay hidden.
  • Asks the terminal for its cursor position (ESC [6n ) before drawing.
  • Restores the cursor before forwarding output, so the program's bytes land untouched.
  • Takes a prediction back if the echo differs, or if none arrives within about three round trips (750 ms at least, 5 s at most).
  • s on Enter, editing keys, paste and resize.
  • Hides typing lag, not network lag.

Apache-2.0

── more in #developer-tools 4 stories · sorted by recency
── more on @foretype 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-foretype-typ…] indexed:0 read:2min 2026-10-12 · —