A terminal TUI for browsing, connecting to, and managing SSH hosts defined in your ~/.ssh/config file.
- Stars
- 251
- Forks
- 14
- Open issues
- 2
- Last commit
- 7 days ago
What is it?
ctty is a native terminal connection manager written in Go. It lets you keep SSH hosts, serial devices, telnet endpoints, FTP sites, WebDAV servers and S3 buckets in one keyboard-driven interface instead of switching between separate clients. SSH connections reuse your system OpenSSH and work directly with your existing ~/.ssh/config file.
Beyond connecting, ctty offers host health peeks (uptime, CPU load, memory and disk usage), latency checks, batch command execution across selected hosts, port forwarding setup, and dual-pane file browsers for SFTP, FTP, WebDAV and S3. Every operation also has a headless CLI form with JSON output, which suits scripts and AI agents.
Saved passwords and secret keys are kept in a local AES-256-GCM encrypted vault, and the project ships as a single binary for Linux, macOS, Windows and Termux.
Key features
- 01Manage SSH, serial, telnet, FTP, WebDAV and S3 connections in one TUI.
- 02Reuses system OpenSSH and your existing ~/.ssh/config, including Include directives.
- 03Batch-run remote commands across multiple selected SSH hosts in parallel.
- 04Dual-pane SFTP, FTP, WebDAV and S3 browsers with upload, download and file management.
- 05Saves passwords and secret keys in an AES-256-GCM encrypted local vault.
- 06Headless CLI commands with JSON output for scripts and agents.
Use cases
- Managing a fleet of servers and running the same command across production hosts.
- Working with serial consoles and network gear from a laptop terminal.
- Moving files to and from NAS, WebDAV or S3-compatible storage without a GUI client.
- Giving AI coding agents a controlled way to query hosts and run remote commands.
Quick start
- 1
Install with Homebrew (macOS)
brew install zsuroy/ctty/ctty - 2
Or install with the one-line Unix/Linux/macOS script
Install with the official instructions in the README - 3
Launch the interactive TUI
ctty
Things to know
- Requires Go 1.23+ if you build from source.
- Serial, telnet, and other protocol features depend on the platform and hardware available.
Topics
FAQ
- What is ctty?
- A lightweight terminal TUI for managing SSH, serial, telnet, SFTP, FTP, WebDAV and S3 connections in one binary. ctty is a native terminal connection manager written in Go. It lets you keep SSH hosts, serial devices, telnet endpoints, FTP sites, WebDAV servers and S3 buckets in one keyboard-driven interface instead of switching between separate clients. SSH connections reuse your system OpenSSH and work directly with your existing ~/.ssh/config file.
- Is ctty free to use? What license does it have?
- ctty is open source under the MIT license. Check the license terms before using it in commercial products.
- Is ctty still maintained?
- Actively maintained. The last commit to ctty was on Oct 13, 2026.
- What can I use ctty for?
- Managing a fleet of servers and running the same command across production hosts. Working with serial consoles and network gear from a laptop terminal. Moving files to and from NAS, WebDAV or S3-compatible storage without a GUI client. Giving AI coding agents a controlled way to query hosts and run remote commands.
- How do I install ctty?
- Install with Homebrew (macOS): brew install zsuroy/ctty/ctty Or install with the one-line Unix/Linux/macOS script Launch the interactive TUI: ctty
- Where can I get ctty?
- The source code and installation instructions are on GitHub: https://github.com/zsuroy/ctty
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Textual-based terminal dashboard for creating, editing, pausing and monitoring cron jobs on local machines and remote servers over SSH.
A terminal UI for rsync that manages reusable transfer profiles, previews changes as a dry-run diff, and shows live progress, including over SSH.
A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.
A shell guardrail that intercepts dangerous terminal commands from humans and AI coding agents and requires confirmation before running them.
A small Rust CLI that prints CSV, TSV, JSON and SQLite data as stylish, auto-laid-out tables in your terminal.