Install with uv¶
uv is a fast, modern Python package manager written in Rust. uv tool install gives you an isolated tool environment similar to pipx, but significantly faster.
Prerequisites¶
Install uv:
Or via Homebrew:
You also need python.org Python for the best TCC experience — see Install with pipx for the reasoning.
Install chatwire¶
uv tool install \
--python /Library/Frameworks/Python.framework/Versions/Current/bin/python3 \
chatwire
uv places the tool environment under ~/.local/share/uv/tools/chatwire/ and puts the chatwire binary on your PATH via ~/.local/bin/.
Verify:
Install a specific version¶
uv tool install \
--python /Library/Frameworks/Python.framework/Versions/Current/bin/python3 \
"chatwire==1.5.0"
Set up and run¶
Identical to the pipx path — the agents and wizard work the same way regardless of install method.
Upgrade¶
Restart agents after upgrading:
launchctl kickstart -k gui/$(id -u)/dev.chatwire.bridge
launchctl kickstart -k gui/$(id -u)/dev.chatwire.web
Install plugins¶
uv tool environments support adding packages similarly to pipx:
Or after the initial install:
For persistent plugin installs, add them to the tool's environment:
Note: unlike pipx inject, uv reinstalls the tool with the new packages rather than injecting into the existing environment. The result is the same — the bridge starts with all listed plugins available.
Restart the bridge after changing plugins:
Caveats¶
TCC permission binding¶
Same as Homebrew: TCC grants bind to the specific Python binary. Pass --python /Library/Frameworks/Python.framework/... when installing to use python.org's binary — grants will then survive uv upgrades (which don't change the underlying Python).
If you didn't pass --python on the initial install, check which Python uv resolved:
If it's not under /Library/Frameworks/Python.framework/, reinstall with the explicit path.
Auto-detection¶
chatwire doctor and chatwire status detect the install method:
The uninstall command is likewise method-aware:
Uninstall¶
Troubleshooting¶
See Troubleshooting. The uv path is functionally identical to pipx — if you hit permission issues, the same TCC grant steps apply. Run chatwire doctor to identify which binary needs the grant.