CLI tool for Throne - xray client
Project description
ThroneTools
Cross-platform CLI to install, reinstall, uninstall, and manage configuration for Throne(NekoRay) on Linux, macOS, and Windows.
Requirements
- Python 3.10+
- uv
Features
- Cross-platform — Linux, macOS, and Windows support
- Self-update — Update Throne to the latest release with one command
- Geo data management — Install and verify geoip/geosite databases for sing-box
Quick Start (uv)
# from repo root
uv sync
uv run thronetools --help
Run without subcommands to show the styled help:
uv run thronetools
Commands
thronetools install
thronetools update --app {throne|nekoray}
thronetools backup --app {throne|nekoray} [--output <path-or-dir>]
thronetools restore --app {throne|nekoray} --zip <backup.zip>
thronetools remove --app {throne|nekoray}
thronetools reinstall --app {throne|nekoray} [--backup] [--output <path-or-dir>] [--force]
thronetools version --app {throne|nekoray}
thronetools geo-install --app {throne|nekoray}
thronetools hotspot enable [--iface <iface>] [--ssid <name>] [--password <pass>] [--dry-run]
thronetools hotspot disable [--dry-run]
Common Examples
# Install Throne
uv run thronetools install
# Update Throne to the latest version
uv run thronetools update --app throne
# Install/update geoip and geosite databases
uv run thronetools geo-install --app throne
# Backup Throne config to current directory
uv run thronetools backup --app throne
# Backup NekoRay config to a specific folder
uv run thronetools backup --app nekoray --output ~/Backups
# Restore Throne config
uv run thronetools restore --app throne --zip ~/Backups/throne-backup-2026-02-17.zip
# Reinstall with backup + restore flow
uv run thronetools reinstall --app throne --backup
# Show installed app details
uv run thronetools version --app throne
# Preview hotspot commands without applying changes
uv run thronetools hotspot enable --iface wlp2s0 --dry-run
Notes
hotspotcommands are supported on Linux and macOS. On Windows, hotspot subcommands are not available.- Some operations require elevated privileges depending on platform/package manager.
Development
# Lint/format (Ruff is configured in pyproject.toml)
uv run ruff check .
uv run ruff format .
# Build package
uv build
Related Projects
Explore other CLI tools by Arian Omrani:
- LinkCovery - Modern bookmark management CLI tool
- PEM - Python Execution Manager - Schedule and execute Python scripts
- OllamaTools - CLI tool for managing Ollama models
Install as a tool (optional)
If you want a globally available command via uv:
uv tool install .
thronetools --help
To update later:
uv tool upgrade thronetools
License
MIT License — see the LICENSE file for details.
Contributing
Contributions are welcome! Feel free to submit a pull request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thronetools-1.1.0.tar.gz.
File metadata
- Download URL: thronetools-1.1.0.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64861b29f8035263cc792eb177c2ba46e86fa180f9b0f97b87e8a02c95b030e7
|
|
| MD5 |
e36f08c8ba12f3fb95358dd8968389e4
|
|
| BLAKE2b-256 |
e4b5c070880c0f44bb5c7aa1d278960ad66eeb21191fd622b0270cafe8e17ccd
|
Provenance
The following attestation bundles were made for thronetools-1.1.0.tar.gz:
Publisher:
release.yml on arian24b/thronetools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thronetools-1.1.0.tar.gz -
Subject digest:
64861b29f8035263cc792eb177c2ba46e86fa180f9b0f97b87e8a02c95b030e7 - Sigstore transparency entry: 1629111972
- Sigstore integration time:
-
Permalink:
arian24b/thronetools@a433c48a4fe074d54a768e019ea436348e4c2b6d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/arian24b
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a433c48a4fe074d54a768e019ea436348e4c2b6d -
Trigger Event:
push
-
Statement type:
File details
Details for the file thronetools-1.1.0-py3-none-any.whl.
File metadata
- Download URL: thronetools-1.1.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
976f7d4dc9dc3cb8621e82b39adf8e430bca75ac3bf41562ab5a88bf99a146f5
|
|
| MD5 |
4761a1422f16e5dd0d38e5bf6bdf331f
|
|
| BLAKE2b-256 |
96a981ff56a2c0945d0389879b47370a7283415ff8231acd99e55fc31674f65f
|
Provenance
The following attestation bundles were made for thronetools-1.1.0-py3-none-any.whl:
Publisher:
release.yml on arian24b/thronetools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thronetools-1.1.0-py3-none-any.whl -
Subject digest:
976f7d4dc9dc3cb8621e82b39adf8e430bca75ac3bf41562ab5a88bf99a146f5 - Sigstore transparency entry: 1629111988
- Sigstore integration time:
-
Permalink:
arian24b/thronetools@a433c48a4fe074d54a768e019ea436348e4c2b6d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/arian24b
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a433c48a4fe074d54a768e019ea436348e4c2b6d -
Trigger Event:
push
-
Statement type: