Closed Beta · Report Issues

Bringing the warmth of PTT
back to life on modern desktops

A modern instant messaging client built for PTT (Taiwan's largest BBS).
Transforming PTT's internal mail into a seamless chat experience.

uPtt Login Screen

Where Tradition Meets Innovation

No complex Telnet keyboard commands needed — chat on PTT as naturally as breathing.

Mail-to-Chat

Automatically transforms PTT internal mail into intuitive chat bubbles. Supports quote-reply to keep conversation context clear.

Smart Polling

Precise background detection scans up to 200 historical messages on first login, then only incremental changes — real-time delivery with minimal system load.

Multi-Account

Database-level isolation keeps each PTT account's chat history completely independent, secure, and reliable.

Contact Management

Pin important conversations, drag-and-drop reordering, block or hide contacts. Right-click menu provides multi-level operations.

Background Notifications

The app continues running in the system tray after closing the window. Desktop notifications pop up instantly when new messages arrive.

Waterball Integration

PTT's instant waterball messages are also captured and displayed. Built-in batch deduplication ensures no duplicates or missed messages.

How It Works

uPtt connects directly to PTT's official servers, using internal mail as the message transport layer — no third-party relay needed.

1

Send Message

Messages you type in uPtt are formatted and sent to PTT servers as internal mail via PyPtt, while simultaneously saved to the local database.

2

Background Polling

A worker thread polls internal mail every 5 seconds, identifying and parsing uPtt-format messages. Built-in timestamp synchronization ensures consistent ordering.

3

Real-time Display

Parsed messages are saved to the SQLite database and the UI thread is notified via Qt Signals to update in real time, displaying familiar chat bubbles.

Three Message Types, Unified Management

uPtt intelligently identifies and handles different types of PTT messages.

uPtt

uPtt Messages

uPtt-format messages are parsed, saved to the local database, and automatically deleted from PTT inbox to keep it clean.

Mail

Regular Mail

Regular mail from other users is displayed as mail cards in conversations. Original mail is preserved in PTT inbox — never deleted.

Waterball

Waterball Messages

PTT's instant pop-up messages (waterball) are captured and displayed as inline bubbles, with batch fingerprint hashing for deduplication.

Security & Privacy First

Your data belongs only to you. uPtt collects no personal information and connects to no third-party servers.

Local-only Storage

All chat history and account data is stored exclusively in your local SQLite database — nothing is uploaded to third parties.

Native Protocol

Connects directly to PTT's official servers (ptt.cc). The only additional connection is to GitHub API for version checking — pure and secure.

Automated Leak Prevention

CI integrates TruffleHog scanning, Bandit static analysis, and dynamic credential detection tests to ensure sensitive information never leaks.

Code Signing

Release builds are signed by SignPath.io and verified by the SignPath Foundation, ensuring downloaded binaries haven't been tampered with.

Download Now

No development environment needed — just download and run.

Developer Quick Start

uPtt is built with Python 3.12 and PySide6. Contributions welcome.

# Clone the project
$ git clone [email protected]:uPtt-messenger/uPtt-app.git
$ cd uPtt-app

# Install dependencies
$ pip install -r requirements.txt

# Run
$ python src/run_app.py

# Test
$ pytest --cov=src/uPtt tests/

Keyboard Shortcuts

KeyAction
Ctrl+NFocus new conversation input
Ctrl+WClose current conversation
Ctrl+QQuit the application
EnterSend message