ssh.place: A Collaborative Pixel Canvas via SSH

ssh.place enables collaborative drawing via the SSH protocol

ssh.place is a real-time, collaborative pixel canvas that allows users to draw by connecting via SSH. The project implements a simplified version of the "r/place" concept, providing a 200x60 cell grid where any user with an SSH key can participate without creating an account or installing additional software.

Technical implementation and user controls

The canvas is managed by a server that restricts inputs to color placements only, preventing users from writing text. Interaction is handled through standard terminal commands:

  • Movement: Users navigate the cursor using arrow keys, wasd, or hjkl keys.

  • Panning: Because the canvas is wider than most terminal windows, users can scroll to pan. Shift + Left/Right allows for jumping a full screen.

  • Color Selection: Colors are selected using keys 0 through 9, while the Tab key cycles through all 16 available colors.

  • Placement: The Space key places a solid block of the selected color.

Rate limiting and identity management

To prevent rapid canvas modification, the system enforces a 15-second cooldown between placements. This cooldown is tied to the user's SSH key, meaning that reconnecting to the session does not reset the timer.

Community feedback and security considerations

Users on Hacker News discussed several technical and security implications of using SSH as a primary interface for a collaborative app:

Security and Privacy

Security-conscious users warned against forwarding SSH agents when connecting to the project, as it could expose sensitive keys. Other users noted that SSH lacks a built-in Public Key Infrastructure (PKI), making the connection susceptible to Man-in-the-Middle (MITM) attacks during the initial Trust On First Use (TOFU) phase.

Botting and Automation

Community members observed that tying cooldowns to SSH keys allows for "multiboxing" or the use of bots. Some users reported that the canvas is already heavily populated by bots, which can be used for advertisements or to overwrite human-drawn art.

Terminal Compatibility

Users reported varying experiences based on their terminal emulator. Some noted that the cursor becomes invisible when placed over already colored cells, while others reported crashes with Ghostty or immediate logouts when using Kitty. Additionally, the default color palettes of some terminals (such as Ubuntu in WSL2) may cause certain colors to be indistinguishable from one another.

Social Coordination

Following the tradition of original r/place events, some users attempted to organize factions to coordinate large-scale drawings, such as proposing a "purple frame" around the canvas edges.

Sources