ThinkorSwim Desktop in a web browser (WebTop)
ToS-WebTopDemo.mp4
Use lightweight GitHub's CodeSpace to host an Ubuntu desktop in the browser with Thinkorswim (TOS) trading desktop pre-installed so you can access it from anywhere and trade in any device securely.
- Quick Start
- System Requirements
- Backup
- Restore
- Common Commands
- Security & Licensing Notes
- Security Considerations
- Troubleshooting
- Contributing
- Backup Retention
- License
- GitHub account with Codespaces access
- Modern web browser (Chrome, Firefox, Safari, or Edge)
- Stable internet connection
- At least 2 cpu and 8 GB of available RAM in Codespace (default codespace)
- For self-hosting, use only AMD64 architecture. ARM Linux is not supported by ToS Desktop for now.
This README is focused on practical steps: quick start, backup & restore, common commands, troubleshooting, and security guidance for running the environment in Codespaces.
- Open this repository in a GitHub Codespace (or start the devcontainer).
- In the Codespace terminal run:
make start- Wait for the Codespace to boot. When the web desktop URL appears in the Codespace
PortsTab, click it to open the browser desktop. - On first run the Thinkorswim installer runs automatically in the background. Give it a few minutes — an application icon will appear on the desktop when installation completes.
- Brings up the Ubuntu Desktop that can be accessed securely over any device's web browser.
- Kicks off the Thinkorswim installer if not already installed.
Create a backup of ToS Desktop system and configuration (recommended regularly):
make backupThis zips the installed files, and configuration into a file placed in the backup/ directory. Download that zip to safe storage (local disk, cloud drive, etc.).
Why backup? GitHub Codespaces may delete inactive workspaces after ~30 days, so keep an external copy if you want to quickly restore your environment later.
To restore from a previously-created backup in a fresh Codespace:
- Upload your backup zip into the repository's
backup/directory using the new CodeSpace IDE. - Run:
make restoreThis will unpack the backup and restore the Thinkorswim install and user settings to the environment.
make start— start the container and desktop environmentmake stop— stop the running container/desktop (if present)make reset- stop Ubuntu Desktop and reset back to default. (Almost equivalent to a fresh codespace, except if there is a backup file, that WILL NOT be deleted)make backup— create a zip backup of the installer and configmake restore— restore from a zip placed inbackup/
See the Makefile for implementation details and any additional targets.
- Thinkorswim is a proprietary application. This repository only automates running the Thinkorswim installer in a containerized desktop environment; you are responsible for complying with Thinkorswim's license and terms.
- This project is provided as-is for personal/self-hosted use.
Running ToS Desktop in GitHub Codespaces is secure, as access to the Codespace URI is restricted to the GitHub user starts the codespace as well as any services that it starts (Ubuntu Desktop webUI). However, to ensure your data remains secure, follow these best practices:
- Recommend not to check ToS's
Remember Login ID: So that you need a Multi-Factor Authentication in order for you login on top of username/password. This added an additional later of security - Keep Your Repository Private: If you decide to fork this project and commit private data. Ensure your GitHub repository is set to private to prevent unauthorized access to your backup file (
./backup/tos-webtop-config.tar.gz) if you commit it to the repository, which is not recommended because it is more than 500MB. - Limit Codespace Access: Do not share Codespace access. By default, it is private to you and only you.
- Monitor Codespace Usage: Regularly check your GitHub Codespaces for active instances, as inactive instances are deleted after 30 days, potentially requiring data restoration. There is an option in CodeSpace to prevent this from happening.
By following these steps, you can minimize any security risks and safely use Tos Desktop in Codespaces.
-
Desktop Not Loading
- Check if the container is running using
docker ps - Ensure ports are properly forwarded in Codespace
- Try
make resetfollowed bymake start
- Check if the container is running using
-
ThinkOrSwim Installation Failed
- Run
make resetand try the installation again - Ensure sufficient disk space is available
- Run
-
Performance Issues
- Close unused ToS detached windows
- Consider upgrading your Codespace machine type from default 2cores 8G to 4cores 16G.
For additional support, please open an issue with:
- Detailed description of the problem
- Steps to reproduce
- Error messages or logs
- Your environment details
Small improvements, documentation fixes, or makefile tweaks are welcome. Open a PR with a focused change and a brief description.
GitHub may delete inactive Codespaces after a period of inactivity (typically 30 days). Periodically run make backup and store the resulting zip outside GitHub to avoid losing your environment.
Another options is to turn off (default enabled) Auto-delete codespace option in codespace creation dropdown
This repository's files are covered by the project license in LICENSE.