Skip to main content

📵 56k Screech

Retro dial-up internet manager for the macOS menu bar — because connecting to the internet should be a deliberate act, not an automatic reflex.

Python License


What it does

56k Screech lives in the menu bar and actually controls your Mac's Wi-Fi. When the internet isn't turned on via DialUp, it simply doesn't work. No silent syncs, no background notifications, no cloud quietly refreshing without your knowledge.

And of course — connecting is accompanied by an authentic dial-up sound ritual. 📟

56k Screech is menu-bar-only: it never shows a Dock icon or a Cmd+Tab entry.

Features

📡 Real Wi-Fi on/off (networksetup), reconciled every second against the actual radio state (catches manual toggles from the system menu too)
🔊 Dial-up handshake sound — bundled recording, with a ~12s procedurally generated fallback if it (or afplay) is unavailable
⏱ Live connection timer
⚡ Real-time download / upload speed
📦 Data transferred in the current session
💰 Cost per session — currency and price/hour are live-editable in Settings
📊 Stats: today / 7 days / 30 days / all time, plus the last 5 sessions
🔔 Notification Center alert (with a chime) after you've been online past a configurable time limit — includes a one-tap "Disconnect" button
😴 Billing and the alert timer pause across system sleep — waking up doesn't inflate your session cost or fire an overdue alert the instant you're back
⚙️ In-menu Settings: currency, price/hour, modem sound on/off, alerts on/off + limit, Wi-Fi interface picker
🚀 LaunchAgent for automatic startup

The menu bar icon itself reflects connection state: 📵 offline, 📡 connecting, 📶 connected (idle), 🌐 connected (actively transferring data).


Installation

pip

pip install 56k-screech

From source

git clone https://github.com/muzzug/screech.git
cd screech
pip install -e .

Running

screech
# or, without the installed entry point:
python -m screech.app

The 📵 icon appears in the menu bar. Click → "Connect to internet".

The modem sound plays in full before Wi-Fi actually turns on — that's the ritual, not a hang. Expect a several-second delay between clicking Connect and the radio (and the status row) actually going live.


Automatic startup (LaunchAgent)

screech install-launchagent

Uninstall:

screech uninstall-launchagent

Configuration

Most settings are edited live from the app itself — click the Settings section in the menu to expand it:

  • Currency and Price/hour — used to compute the cost shown live and recorded per session
  • Modem sound — turn the dial-up handshake on/off
  • Alerts — toggle on/off, plus a Limit (min) for how often you get a Notification Center reminder while connected
  • Wi-Fi Interface — pick the right Wi-Fi device from a submenu populated from networksetup -listallhardwareports, instead of editing code; this is the fix if 56k Screech "does nothing" (or reports it couldn't turn Wi-Fi on) when you click Connect

Alerts use macOS Notification Center, so the first time you connect you'll be asked to grant 56k Screech permission under System Settings → Notifications. Each alert plays the standard notification chime — if you'd rather it stayed silent, turn off the sound for 56k Screech there.

Settings are persisted to:

~/Library/Application Support/56k Screech/config.json

Session history (used for the Stats section) is stored in:

~/Library/Application Support/56k Screech/sessions.db

A Reset Stats… item at the bottom of the Stats section permanently erases all recorded session history.


License

MIT © Ondřej "Muzzug" Kadlec

Metadata

Release files for 56k-screech 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for 56k-screech 1.0.1
File Size Uploaded
56k_screech-1.0.1.tar.gz 2.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for 56k-screech 1.0.1
File Interpreter ABI Platform
56k_screech-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 5.3 MB

Release files / 56k_screech-1.0.1.tar.gz

Download URL 56k_screech-1.0.1.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
dc5bfcc42eedaf44926c8a2246cd936f9cf5691ef8f0ea4101f71ac6c68f01a8
BLAKE2b-256 checksum
How to use checksums
3ebff6ddf7826c46f65d87c74d003af60efd3ab32567e68c05f988b78768fbcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 28, 2026.

Transparency log

Release files / 56k_screech-1.0.1-py3-none-any.whl

Download URL 56k_screech-1.0.1-py3-none-any.whl
Size 2.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b49397c0f3ab42bfd80d59d4309366ca256292b9d3a5eaa00cde6e537710c78d
BLAKE2b-256 checksum
How to use checksums
8748bae754da6b13d36c70b3791dd18ce14c525c3d2f94b5cd3026370fff6d98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page