Skip to main content

Retro dial-up style internet connection manager for macOS menu bar

Project description

📵 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

56k_screech-1.0.1.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

56k_screech-1.0.1-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file 56k_screech-1.0.1.tar.gz.

File metadata

  • Download URL: 56k_screech-1.0.1.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for 56k_screech-1.0.1.tar.gz
Algorithm Hash digest
SHA256 dc5bfcc42eedaf44926c8a2246cd936f9cf5691ef8f0ea4101f71ac6c68f01a8
MD5 e5bb0104778004ae20e6b7fed954e399
BLAKE2b-256 3ebff6ddf7826c46f65d87c74d003af60efd3ab32567e68c05f988b78768fbcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for 56k_screech-1.0.1.tar.gz:

Publisher: release.yml on muzzug/screech

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file 56k_screech-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: 56k_screech-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for 56k_screech-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b49397c0f3ab42bfd80d59d4309366ca256292b9d3a5eaa00cde6e537710c78d
MD5 ac59747e559dab04456b25efd04e1ee4
BLAKE2b-256 8748bae754da6b13d36c70b3791dd18ce14c525c3d2f94b5cd3026370fff6d98

See more details on using hashes here.

Provenance

The following attestation bundles were made for 56k_screech-1.0.1-py3-none-any.whl:

Publisher: release.yml on muzzug/screech

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page