trqsh puts a public HTTPS URL in front of anything on your machine — a dev
server, a webhook receiver, a game server, a raw TCP/UDP listener — in one
command. It's a QUIC-first tunnel (real HTTP/3, not a rebrand of TCP) with a
proper interactive console, live traffic inspection, real Let's Encrypt TLS,
and a fully open-source stack you can self-host end to end. This package
installs the signed trqsh CLI binary for your platform: a thin wrapper
around a small Go binary, verified by SHA-256 on every install.
pip install trqsh
# or, isolated:
pipx install trqsh
trqsh login # sign in through your browser
trqsh http 3000 # → a public HTTPS URL for localhost:3000
Why trqsh
- QUIC-first, TCP fallback — built on HTTP/3's transport from the ground up, not HTTP/1.1 with a marketing label; falls back automatically where UDP is blocked.
- Every protocol —
http,tcp, andudptunnels, not just HTTP. - A real console, not a log spinner —
/pin traffic,/pin status, and friends keep live panels on screen while you keep working, with command history, autocomplete, and a scrolling transcript. See below. - Real TLS — Let's Encrypt via CertMagic, not a self-signed cert with a browser warning.
- Background tunnels (
-d) that outlive your terminal, reserved subdomains, custom domains, and a live request inspector. - Signed, verifiable releases — every download is checksummed and the checksum file itself is cosign-signed in CI (see Security below).
- Fully open source (Apache-2.0) — read every line, self-host the whole edge + control plane instead of trusting a black box.
The console
Bare trqsh (or trqsh http 3000) opens an interactive, slash-command
console — type / to browse everything it can do, pin live panels above the
prompt, and keep an eye on traffic without leaving the terminal:
Commands
| Command | Does |
|---|---|
/http <port> |
Expose a local HTTP port |
/tcp <port> / /udp <port> |
Expose a local TCP/UDP port |
/start |
Start every tunnel from your config file at once |
/ls |
List running tunnels |
/open <id> |
Open a tunnel's public URL in your browser |
/qr [id] |
Show a QR code for a tunnel URL — open it on your phone |
/copy [id] |
Copy a tunnel URL to the clipboard |
/requests |
Show recently captured requests |
/pin <traffic|tunnels|status> |
Keep a live panel on screen |
/stop <id|all> / /down |
Stop a tunnel, or the whole daemon |
/subdomains, /domains |
Reserve subdomains, manage custom domains |
/whoami, /login, /logout |
Account, plan, usage; sign in via browser |
/update, /version |
Self-update in place; show version |
Run /help inside the console for the full, current list.
Security
Every release archive ships with a checksums.txt that this package verifies
before it ever execs the binary. The checksum file itself is keyless-signed
with cosign via GitHub Actions' OIDC
token — no key to leak, no key to trust blindly:
cosign verify-blob \
--bundle checksums.txt.sigstore.json \
--certificate-identity-regexp 'https://github.com/uzcreator/trqsh/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
checksums.txt
How it works
The console script trqsh calls trqsh.ensure_binary(), which detects your OS
(darwin/linux/windows) and CPU (amd64/arm64), downloads
trqsh_<version>_<os>_<arch>.<ext> from
https://github.com/uzcreator/trqshcli/releases, verifies its SHA-256 against
checksums.txt, caches the binary under ~/.cache/trqsh/<version>/, and execs
it. Pure standard library — no runtime dependencies.
Environment overrides
| Variable | Purpose |
|---|---|
TRQSH_VERSION |
Pin a specific release (defaults to the package version). |
TRQSH_REPO |
Alternate owner/repo for the release download. |
TRQSH_DOWNLOAD_BASE |
Full base URL of a mirror serving the release assets (for air-gapped/internal mirrors). |
TRQSH_SKIP_CHECKSUM=1 |
Skip SHA-256 verification (not recommended). |
Uninstall
trqsh uninstall # remove local data (config, key, cache) + stop tunnels
pip uninstall trqsh # then remove the package itself
Run trqsh uninstall first: pip uninstall drops the package but leaves your saved
key, control token, logs, and the cached binary under ~/.cache/trqsh/ behind —
trqsh uninstall clears those and stops any background daemon. Add -y to skip the
confirmation.
Links
Website · Source · CLI releases · Issues
Author
trqsh is created and maintained by Otabek Hamroqulov — GitHub @Hamroqulovv. Licensed Apache-2.0.
Release files for trqsh 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trqsh-0.1.9.tar.gz | 6.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trqsh-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.7 kB
Release files / trqsh-0.1.9.tar.gz
| Download URL | trqsh-0.1.9.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bdd398312979b73f6bed23f40830b2b6cf4669f3a3f39b809f4401b7b6967a5f
|
|
BLAKE2b-256 checksum How to use checksums |
5131ec564dcf449e7a0e2d96d760d27548918715eff6fbece6283e50f4c87486
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / trqsh-0.1.9-py3-none-any.whl
| Download URL | trqsh-0.1.9-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
058597f514c86a869db892a409fd3cbe5e3a48e49d356b0e3dac2660cc339d23
|
|
BLAKE2b-256 checksum How to use checksums |
6bf2d80c49fcf76a0fb8effe60d70ca557b27891f5abc3a0c9ae47d4edaebe38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|