Install with pipx (recommended)¶
pipx installs Python CLI tools into isolated virtualenvs, keeping chatwire's dependencies separate from everything else on your system. Combined with python.org Python, it gives you the most reliable TCC permission experience on macOS.
Prerequisites¶
1. Python from python.org¶
Download and install the latest stable Python 3 from https://www.python.org/downloads/macos/. Run the .pkg installer — it places Python at:
Do not use Homebrew Python or the Xcode CLT stub. macOS TCC tracks Full Disk Access and Automation grants per binary identity. python.org's framework binary is the well-trodden path — grants survive upgrades and don't require re-granting when chatwire updates.
Verify the install:
2. pipx¶
Then restart your terminal (or run source ~/.zshrc / source ~/.bash_profile) so ~/.local/bin is on your PATH.
Verify:
Install chatwire¶
pipx install \
--python /Library/Frameworks/Python.framework/Versions/Current/bin/python3 \
chatwire
Expected output:
installed package chatwire 1.x.x, installed using Python 3.13.x
These apps are now globally available
- chatwire
- chatwire-toolbar
done! ✨ 🌟 ✨
If you see WARNING: chatwire is running under a Python whose base prefix is..., your pipx resolved to a different Python. Re-run with the explicit --python flag above.
Install a specific version¶
pipx install \
--python /Library/Frameworks/Python.framework/Versions/Current/bin/python3 \
"chatwire==1.5.0"
Set up the background services¶
This renders plist templates and installs three launchd agents in ~/Library/LaunchAgents/:
| Agent | Role |
|---|---|
dev.chatwire.bridge |
Polls chat.db every 2 seconds |
dev.chatwire.web |
Serves the web UI on port 8723 |
dev.chatwire.keepawake |
Keeps macOS awake while the bridge is active |
Expected output:
wrote /Users/you/Library/LaunchAgents/dev.chatwire.bridge.plist
loaded dev.chatwire.bridge.plist
wrote /Users/you/Library/LaunchAgents/dev.chatwire.web.plist
loaded dev.chatwire.web.plist
Keep-awake: chatwire needs your Mac awake to relay messages.
...
Run the setup wizard¶
This opens the web wizard at http://127.0.0.1:8723/setup — or prints the URL if your browser doesn't open. See First run for the full wizard walkthrough.
Run the pre-flight check¶
All critical checks (Full Disk Access, Automation → Messages) must show ✓ before the bridge can relay messages. See macOS permissions for grant instructions.
Upgrade chatwire¶
Then restart the agents:
launchctl kickstart -k gui/$(id -u)/dev.chatwire.bridge
launchctl kickstart -k gui/$(id -u)/dev.chatwire.web
Or use the restart buttons in Settings → About in the web UI.
Install plugins¶
Plugins are injected into chatwire's pipx virtualenv so they share its Python environment:
After injecting, restart the bridge agent:
Then enable the plugin in Settings → Plugins.
To remove a plugin:
Uninstall¶
Preserve config and data (reinstalling picks up where you left off):
Remove everything including config and logs:
Preview what --purge would remove before committing:
Troubleshooting¶
See Troubleshooting for common issues. The most frequent pipx-specific problem is using the wrong Python binary — always pass --python /Library/Frameworks/Python.framework/Versions/Current/bin/python3 on the initial install.