A CLI and Python library to safely orchestrate network switches on macOS by pausing active tasks, auditing connectivity, and verifying stable reconnects.
Project description
wifipause-llm ⚡
wifipause-llm is a lightweight macOS tool and library designed to audit running processes for potential network dependency and safely orchestrate network cutovers (switching WiFi SSIDs, migrating networks) without interrupting or corrupting active local server states or agent executions.
Features
- 🕵️ Active Task Auditing: Scans active macOS processes to identify running compiler tasks, package downloads (
npm,pip,git,cargo,docker), and HTTP clients (curl,wget) that may break if the network cutover begins. - 📶 WiFi SSID Inspection: Direct hook into the macOS Apple80211/networksetup API to safely check your currently associated wireless SSID and Wi-Fi interface.
- ⚡ Connectivity Testing: High-efficiency connection-probing utilizing basic TCP sockets to verify active gateway routing without heavy HTTP overhead.
- 🔄 Monitored Cutover Loop: A non-blocking generator and CLI live panel spinner that monitors state transition: Connected ➔ Disconnected ➔ Reconnecting ➔ Target Network Verified.
Installation
Install directly using pip or your favorite package manager:
pip install wifipause-llm
Or run directly using uv (recommended):
uv run wifipause check
uv run wifipause wait --target "YourNewSSID"
CLI Usage
1. Check Network and Audit Tasks
Analyze active connections and identify potentially network-sensitive tasks running in the background:
wifipause check
2. Wait for Network Cutover
Instruct the runner to pause and block execution, waiting for you to complete your WiFi switch:
wifipause wait
To block specifically until you join a specific SSID network:
wifipause wait --target "OfficeWiFi" --timeout 180
Library Usage (Python API)
You can also integrate wifipause directly into your custom automation scripts:
from wifipause.core import get_wifi_ssid, ping_host, audit_network_processes
# Check SSID and internet
ssid = get_wifi_ssid()
online = ping_host()
print(f"Connected to {ssid}: Online={online}")
# Audit network tasks
sensitive_procs = audit_network_processes()
for proc in sensitive_procs:
print(f"PID {proc['pid']} ({proc['name']}) matches signature: {proc['matched']}")
License
MIT License. Developed by Vector.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wifipause_llm-0.1.0.tar.gz.
File metadata
- Download URL: wifipause_llm-0.1.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd9b10a3bc0e09eff8095ad2200df1608b7303f1753d4181f1993f722eacdc11
|
|
| MD5 |
981b4a0a206460710dbbf04a88d4ad1f
|
|
| BLAKE2b-256 |
ace582986ffb8830d3348422c2dc39f0be76e8bc1cb21862401bde4914c8c7a1
|
File details
Details for the file wifipause_llm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wifipause_llm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ab791cf541efacf175d6ad02bf47f4a81b6d3b62f3c682757351bcaa98f84db
|
|
| MD5 |
9bd1c0a4194ac71aaae26ec0b1031d1e
|
|
| BLAKE2b-256 |
217ebd8e28483df38ec23f341f503d723ca8570b14040d4d097f9c44bdb18af1
|