Hi everyone,
I wanted to share a personal Rust project I’ve been working on called ratterm:
https://github.com/hastur-dev/ratterm
ratterm is a terminal user interface (TUI) application written in Rust that combines:
A split-pane terminal backed by a real PTY
An embedded code editor
An SSH connection manager
A Docker container manager
All built using ratatui and crossterm
The project explores what a Rust-native terminal workspace might look like — somewhere between a terminal emulator, a lightweight editor, and an operational dashboard.
What currently "works"
The following features are implemented and mostly functional today:
🖥️ Terminal
✅ PTY-backed terminal
Real shell execution via a pseudo-terminal
Interactive input/output
✅ Split-pane layout
Terminal and non-terminal views rendered together
Managed through ratatui layout primitives
hit ctrl+s to split your terminal and make a new terminal
we also support tabs so you can split your terminals inside your tabs lol
✅ Basic text/code editor
Cursor movement
Text insertion and deletion
Integrated directly into the TUI (not an external editor)
This is a fun/nightmare idea that I just can't let go because I like it so much lol
✅ SSH connection management
Manage multiple SSH targets
Launch SSH sessions inside the PTY terminal panes
Designed for quick switching between local and remote environments
This is pretty basic right now with just ctrl+shift+u and doing single hop ssh with an automated system to username/password.
I'm going to be adding the ability to jump from 1 ssh node to another because for some stuff I ssh into a head node then a child node
✅ Docker integration
View and manage Docker containers from within the TUI
Interact with containers using the same terminal/editor workspace
Focused on visibility and basic control rather than full orchestration
This feature is still being worked on. I have an issue with my local docker, but I'm adding the ability to manage docker environments through your SSH stuff so that'll help me out a bit
✅ Keyboard-driven UX
No mouse dependency
Terminal-first interaction model
✅ ratatui + crossterm architecture
Clear separation between rendering, input handling, and backend logic
The application builds and runs, and the core idea — a single TUI that can host terminals, editing, SSH, and Docker workflows — is already usable.
This reads like an Ai pitch because it is
I can't seem to pitch something on the internet without rambling forever
Chatgpt did so much better on this lol