TNT's Not Tunnel
Find a file
2026-02-07 14:43:46 +08:00
.github/workflows fix(ci): support macOS by using gtimeout from coreutils 2026-02-07 14:43:46 +08:00
include refactor: optimize rendering, log loading, and restructure tests 2026-02-07 14:34:19 +08:00
scripts feat: enhance anonymous access and long-term stability 2026-01-22 15:06:54 +08:00
src refactor: optimize rendering, log loading, and restructure tests 2026-02-07 14:34:19 +08:00
tests fix(ci): support macOS by using gtimeout from coreutils 2026-02-07 14:43:46 +08:00
.gitignore Add development and testing infrastructure 2025-12-02 10:00:00 +08:00
ANONYMOUS_ACCESS_SUMMARY.md docs: add comprehensive completion summary 2026-01-22 15:28:30 +08:00
CHANGELOG.md docs: document comprehensive security fixes 2026-01-22 14:12:55 +08:00
CICD.md Add CI/CD and deployment automation 2025-12-02 12:47:15 +08:00
DEPLOYMENT.md Add CI/CD and deployment automation 2025-12-02 12:47:15 +08:00
EASY_SETUP.md feat: enhance anonymous access and long-term stability 2026-01-22 15:06:54 +08:00
HACKING Add developer documentation 2025-12-02 15:00:00 +08:00
IMPLEMENTATION_SUMMARY.txt docs: add comprehensive implementation summary 2026-01-22 14:48:15 +08:00
install.sh Add CI/CD and deployment automation 2025-12-02 12:47:15 +08:00
LICENSE Initial commit 2025-07-01 09:00:00 +08:00
Makefile refactor: optimize rendering, log loading, and restructure tests 2026-02-07 14:34:19 +08:00
QUICKREF Add developer documentation 2025-12-02 15:00:00 +08:00
README Rewrite README in classic Unix style 2025-12-02 12:57:18 +08:00
README.md refactor: optimize rendering, log loading, and restructure tests 2026-02-07 14:34:19 +08:00
SECURITY_QUICKREF.md docs: add security quick reference guide 2026-01-22 14:35:00 +08:00
TEST_RESULTS.md test: add comprehensive security feature test suite 2026-01-22 14:32:38 +08:00
tnt.service feat: enhance anonymous access and long-term stability 2026-01-22 15:06:54 +08:00
TODO.md refactor: optimize rendering, log loading, and restructure tests 2026-02-07 14:34:19 +08:00

TNT

Terminal chat server. Vim-style interface. SSH-based.

Install

curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh

Or download from releases.

Run

tnt              # port 2222
tnt -p 3333      # custom port
PORT=3333 tnt    # env var

Connect: ssh -p 2222 localhost

Anonymous Access: By default, users can connect with ANY username and ANY password (or empty password). No SSH keys required. This makes TNT perfect for public chat servers.

Security

Configure via environment variables.

Access Control

TNT_ACCESS_TOKEN="secret" tnt           # require password
TNT_BIND_ADDR=127.0.0.1 tnt             # localhost only

Without TNT_ACCESS_TOKEN, server is open (default).

Rate Limiting

TNT_MAX_CONNECTIONS=100 tnt             # total limit
TNT_MAX_CONN_PER_IP=10 tnt              # per-IP limit
TNT_RATE_LIMIT=0 tnt                    # disable (testing only)

Default: 64 total, 5 per IP, rate limiting enabled.

SSH Options

TNT_SSH_LOG_LEVEL=3 tnt                 # verbose logging (0-4)

Keys

INSERT (default)

  • ESC → NORMAL
  • Enter → send
  • Backspace → delete

NORMAL

  • i → INSERT
  • : → COMMAND
  • j/k → scroll
  • g/G → top/bottom
  • ? → help

COMMAND

  • :list → users
  • :help → commands
  • ESC → back

Build

make              # normal
make debug        # with symbols
make asan         # sanitizer
make check        # static analysis

Requires: libssh

Deploy

See DEPLOYMENT.md for systemd setup.

Files

messages.log      chat history
host_key          SSH key (auto-gen)
tnt.service       systemd unit

Test

make test               # run comprehensive test suite
# Individual tests are in tests/ directory

Docs

  • README - man page style
  • EASY_SETUP.md - 🚀 快速部署指南 / Quick Setup Guide
  • HACKING - dev guide
  • DEPLOYMENT.md - production
  • CICD.md - automation
  • QUICKREF - cheat sheet

License

MIT