Python on Linux and macOS
Install Toposync directly on the host system without Docker.
Who this is for
Use this path on Linux or macOS.
This guide installs the default CPU bundle.
For architecture and GPU support, see Compatibility.
Prerequisites
- Python 3.12 recommended.
uv.- Terminal access.
Install uv if you do not have it yet:
curl -LsSf https://astral.sh/uv/install.sh | sh
Close and reopen the terminal if the uv command is still not on your PATH.
Installation
Create a directory for Toposync:
mkdir -p ~/toposync
cd ~/toposync
Install the recommended Python version and create the virtual environment:
uv python install 3.12
uv venv .venv --python 3.12
source .venv/bin/activate
Install Toposync:
uv pip install --upgrade --refresh toposync
If you need to reproduce a specific version:
uv pip install --upgrade --refresh "toposync==0.7.2"
How to run
For local use:
toposync serve
To access it from the local network:
toposync serve --host 0.0.0.0 --port 8000
To choose the data directory:
toposync serve --data-dir ./toposync-data
How to access
On the same computer:
http://127.0.0.1:8000/
From another device on the same network, use the server IP:
http://<server-ip>:8000/
How to verify
In another terminal:
curl -I http://127.0.0.1:8000/
curl http://127.0.0.1:8000/api/health
curl http://127.0.0.1:8000/api/auth/status
Expected result:
/returns200;/api/healthreturns200;/api/auth/statusreturns JSON and may reportrequires_setup: trueon first access.
After you complete setup or login in the UI, authenticated API routes such as /api/extensions become available.
How to update
With the virtual environment active:
uv pip install --upgrade --refresh toposync
Then restart the toposync serve process.
How to uninstall
Stop the server and remove the directory where you created the environment:
deactivate 2>/dev/null || true
rm -rf ~/toposync
If you used another data directory, remove that directory too.
Troubleshooting
toposync: command not found
Activate the virtual environment:
source .venv/bin/activate
The UI does not open
Confirm that the server is running and that /api/health responds:
curl http://127.0.0.1:8000/api/health
curl http://127.0.0.1:8000/api/auth/status
I need streaming
Install the streaming bundle:
uv pip install --upgrade --refresh toposync-streaming
Streaming may require FFmpeg to be available on the system.