A Python application for managing ThetaData's ThetaTerminal v2 and ThetaTerminal v3 from a simple GUI interface.
This section is for users who just want to use the ThetaData Terminal Manager application without setting up a development environment.
-
Download the Application
- Download the latest release zip from the GitHub releases section
- Extract the zip and run
ThetaDataTerminalManager.exe - No installation required - it's a standalone executable
-
First Time Setup
- Double-click
ThetaDataTerminalManager.exeto launch the application - The ThetaTerminal v3 tab opens first by default, with ThetaTerminal v2 available on the second tab
- The application will download the required JAR file automatically when you click Start if it is not already present
- Double-click
-
Using the Application
-
Choose either the ThetaTerminal v3 tab or ThetaTerminal v2 tab
-
Enter your ThetaData username/email and password in the provided fields

-
Tabs: Use separate tabs for v3 and v2 management
-
Username/Password: Enter your ThetaData credentials
-
Show Password: Check this box to reveal your password while typing
-
Save Credentials: Credentials are saved per version for future use
-
Start Button: Click to launch the selected ThetaTerminal version
-
Stop Button: Click to terminate the selected ThetaTerminal version
-
Logs Button: Open the logs folder to view ThetaTerminal log files
-
Config Button: Open the configuration folder
-
Servers Button: Available on the v2 tab only for server-region configuration (MDDS/FPSS)
-
Log Area: View real-time output for the selected terminal version
-
Clear Log: Clear the log display
-
Copy Log: Copy log contents to clipboard
-
-
Starting the Terminal
- Click the "Start" button on the selected tab to launch ThetaTerminal
- v2 runs with the legacy CLI credential flow
- v3 writes a
creds.txtfile besideThetaTerminalv3.jarand launches usingjava -jar ThetaTerminalv3.jar - Both versions can be started independently from their own tabs
- Each tab shows a green status dot when running and a gray status dot when stopped
- The log area will show the terminal's output
- Wait for the terminal to fully initialize before using it
-
Stopping the Terminal
- Click the "Stop" button to safely terminate the terminal
- Wait for the process to fully stop before closing the application
-
Server Configuration (Advanced Users)
- Click the "🌐 Servers" button to open server settings
- MDDS Region: Select the market data server region
- FPSS Region: Select the fundamental data server region
- Production Servers: Use NJ_HOSTS for live trading data
- Testing Servers: STAGE and DEV servers are for testing only
- Reset to Production: Quickly reset both regions to production servers
- Changes take effect when ThetaTerminal is restarted
- Operating System: Windows 10 or newer
- Java for v2: Java Runtime Environment (JRE) 8 or newer
- Java for v3: Java 21 or newer
- Download from: https://www.java.com/download/
- Internet Connection: Required for the initial ThetaTerminal JAR download
Application won't start:
- Ensure Java is installed on your system
- Try running as administrator
- Check Windows Defender/antivirus isn't blocking the application
Can't connect to ThetaData:
- Verify your username and password are correct
- Check your internet connection
- Ensure ThetaData services are operational
Terminal crashes or stops unexpectedly:
- Check the log area for error messages
- Try restarting the application
- Ensure you have sufficient system resources
Server configuration issues:
- Server settings only work after ThetaTerminal has run at least once
- Use production servers (NJ_HOSTS) for live data
- Test servers may have incomplete or unstable data
- Changes require restarting ThetaTerminal to take effect
If you encounter issues:
- Check the log area for error messages
- Take a screenshot of any error dialogs
- Report issues on the GitHub repository with:
- Your operating system version
- Java version (run
java -versionin command prompt) - Screenshot of the error
- Contents of the log area
This section contains technical information for developers who want to build, modify, or contribute to the project.
- Supports both ThetaTerminal v3 and ThetaTerminal v2 in one application
- Automatically downloads the required terminal JAR if not present
- Saves and loads credentials separately for v2 and v3
- Starts and stops each terminal version with dedicated controls
- Uses a version-specific log view, config folder, and runtime status
- Shows a green/gray status indicator on each terminal tab
- Provides the v2 server settings editor for MDDS/FPSS configuration
- Writes
creds.txtautomatically for ThetaTerminal v3 launches
- Python 3.12 or newer
- Java Runtime Environment (JRE) 8+ for ThetaTerminal v2
- Java 21+ for ThetaTerminal v3
- uv package manager
-
Clone this repository
-
Install uv if you haven't already:
# On Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # On macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Or with pip pip install uv -
Install dependencies and create virtual environment:
uv sync
Run the application:
uv run main.py
Or activate the virtual environment and run directly:
# Activate the environment
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
# Run the application
python main.py
- Open the v3 or v2 tab
- Enter your ThetaData username/email and password
- Click "Start" to launch the selected terminal version
- The log area will display output from that terminal
- Click "Stop" to terminate the terminal when done
To work on the project:
-
Install development dependencies:
uv sync --dev -
Add new dependencies:
uv add package-name -
Add development dependencies:
uv add --dev package-name
To update the version number:
# Update to version 1.0.1
uv run python update_version.py 1 0 1
# Update to version 1.2.0 build 5
uv run python update_version.py 1 2 0 5This will automatically update:
version_info.py- Version metadata for the executablepyproject.toml- Package version
The version information will be embedded in the built executable and visible in Windows Properties.
To build a standalone executable:
-
Ensure dependencies are installed:
uv sync -
On Windows, run:
build.batOr run the Python build script directly:
uv run build.py -
The executable will be created in the
distdirectory
You can also build with PyInstaller directly:
uv run pyinstaller --name=ThetaDataTerminalManager --onefile --windowed main.py
To prepare a GitHub release package in the releases folder:
-
Ensure dependencies are installed:
uv sync -
On Windows, run:
package_release.batOr run the Python script directly:
uv run python package_release.py -
The script will:
- Build the executable
- Create
releases/ThetaDataTerminalManager-v<version>/ - Copy the executable,
README.md, release notes, and license into that folder - Create
releases/ThetaDataTerminalManager-v<version>.zip - Generate
releases/release_info_v<version>.txtwith GitHub upload instructions
main.py- Entry point for the applicationapp/terminal_manager.py- Core logic for managing ThetaTerminal v2 and v3app/ui/main_window.py- Tabbed user interface for v2/v3 managementbuild.py- Build script for creating the executablepyproject.toml- Project configuration and dependencies
This project is licensed under the MIT License - see the LICENSE file for details.
Created by ajnaduvil
Copyright (c) 2025 ajnaduvil
If you see warnings about VIRTUAL_ENV not matching or if you have an old pipenv environment active, you can:
- Run
deactivate.batto clear old virtual environment variables - Or manually deactivate pipenv:
exitfrom the pipenv shell - The
build.batscript automatically handles this by clearing environment variables
If the build fails:
- Ensure all dependencies are installed:
uv sync - Check that Python 3.12+ is available
- Verify the required Java version is installed for the terminal version you want to run
If the executable doesn't show the custom icon:
- Verify icon is included: The build script will show "Using icon: --icon=app\resources\icon.ico" if found
- Refresh Windows icon cache: Run
refresh_icon.batto clear and refresh the icon cache - Check icon format: Ensure the icon.ico file is a valid Windows icon format
- Alternative icons: The build script will try these files in order:
app/resources/icon.icoapp/resources/icon_32x32.icoapp/resources/icon_128x128.ico
- Manual verification: Right-click the executable → Properties to see if the icon appears there



