ThothCTL is designed to work seamlessly across different operating systems, with native support for Windows, Linux, and macOS.
ThothCTL automatically detects the operating system and adapts its behavior accordingly:
from thothctl.utils.platform_utils import is_windows, is_linux, is_macos
# Automatic platform detection
if is_windows():
print("Running on Windows")
elif is_linux():
print("Running on Linux")
elif is_macos():
print("Running on macOS")
.exe extension handling for external tools%LOCALAPPDATA%\thothctl)| Shell | Support Level | Autocomplete |
|---|---|---|
| PowerShell 5.1+ | Full | ✅ Native |
| PowerShell Core 7+ | Full | ✅ Native |
| Command Prompt | Basic | ❌ Not supported |
| Git Bash | Basic | ❌ Not supported |
ThothCTL works on all major Linux distributions:
| Shell | Support Level | Autocomplete |
|---|---|---|
| Bash | Full | ✅ Native |
| Zsh | Full | ✅ Native |
| Fish | Full | ✅ Native |
| Dash | Basic | ❌ Not supported |
| Shell | Support Level | Autocomplete |
|---|---|---|
| Bash | Full | ✅ Native |
| Zsh (default) | Full | ✅ Native |
| Fish | Full | ✅ Native |
ThothCTL automatically handles platform-specific path formats:
# All these formats work
thothctl scan iac --directory .\terraform
thothctl scan iac --directory C:\projects\terraform
thothctl scan iac --directory \\server\share\terraform
# Standard Unix paths
thothctl scan iac --directory ./terraform
thothctl scan iac --directory /home/user/terraform
thothctl scan iac --directory ~/projects/terraform
ThothCTL uses platform-appropriate configuration directories:
| Platform | Configuration Directory |
|---|---|
| Windows | %LOCALAPPDATA%\thothctl |
| Linux | ~/.thothcf |
| macOS | ~/.thothcf |
ThothCTL automatically detects and integrates with external tools across platforms:
# Automatic executable detection
terraform_path = find_executable("terraform")
# Windows: finds "terraform.exe"
# Unix: finds "terraform"
| Tool | Windows | Linux | macOS | Installation Method |
|---|---|---|---|---|
| Terraform | ✅ | ✅ | ✅ | Chocolatey, Direct download |
| OpenTofu | ✅ | ✅ | ✅ | Chocolatey, Package manager |
| Checkov | ✅ | ✅ | ✅ | pip install |
| Trivy | ✅ | ✅ | ✅ | Chocolatey, Package manager |
| Terraform-docs | ✅ | ✅ | ✅ | Chocolatey, Package manager |
| Terragrunt | ✅ | ✅ | ✅ | Direct download |
ThothCTL adapts command execution based on the platform:
shell=True for better PATH resolutionPlatform-specific environment variable handling:
# Cross-platform
export THOTHCTL_DEBUG=true
export THOTH_LOG_LEVEL=DEBUG
# PowerShell
$env:THOTHCTL_DEBUG = "true"
$env:THOTH_CONFIG_DIR = "C:\custom\path"
# Bash/Zsh
export THOTHCTL_DEBUG=true
export THOTH_CONFIG_DIR="/custom/path"
ThothCTL supports development across all platforms:
# Clone and install (all platforms)
git clone https://github.com/thothforge/thothctl.git
cd thothctl
pip install -e .
# Run platform compatibility tests
python test_windows_compatibility.py # Windows
python test_unix_compatibility.py # Linux/macOS
Configuration files are portable between platforms:
ThothCTL projects are fully portable:
For platform-specific issues, see: