Skip to main content
trqsh — QUIC-first tunnels to localhost

PyPI Downloads Python release License

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
trqsh http 3000 opening a live tunnel

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, and udp tunnels, 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.
  • Remote control from your phone — /qr pairs the console to a scanned QR: watch the live transcript and tunnels, or type commands back, from anywhere.
  • 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:

the trqsh console: welcome banner, an active tunnel, and pinned traffic + status panels

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|stop] Pair this console to your phone (or show a tunnel's QR)
/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|algorithco)/trqsh/[.]github/workflows/release[.]yml@refs/tags/v[^/]+$' \
  --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/algorithco/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.

Troubleshooting: "'trqsh' is not recognized" on Windows

pip install trqsh without admin rights (the common case) installs the trqsh.exe launcher into a per-user Scripts folder that isn't always on PATH. Every trqsh invocation checks for this and fixes it automatically — but pip has no post-install hook, so the very first invocation can't (if PATH is broken, that first trqsh can't run at all to fix it). Run it once via the Python launcher, which is always on PATH:

python -m trqsh version
# then open a new terminal — bare `trqsh` now works

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.

Website · Source · CLI releases · Issues

Author

trqsh is created and maintained by Otabek Hamroqulov — GitHub @Hamroqulovv. Licensed Apache-2.0.

Metadata

Release files for trqsh 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trqsh 0.2.2
File Size Uploaded Provenance
trqsh-0.2.2.tar.gz 8.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for trqsh 0.2.2
File Interpreter ABI Platform
trqsh-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 18.0 kB

Release files / trqsh-0.2.2.tar.gz

Download URL trqsh-0.2.2.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d0e0534262c546f0e3763e1c0b2322daaa5e6f031798139f6d914a6ecb8950f7
BLAKE2b-256 checksum
How to use checksums
b099604c709f7e2dad6af195a0ab78b7b44dd6c986f1f5011dcaf7e8e053739e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / trqsh-0.2.2-py3-none-any.whl

Download URL trqsh-0.2.2-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
739642bb5ffda80a185d4cde49ff86c78d6017476c44b4a6056c910054cf69b1
BLAKE2b-256 checksum
How to use checksums
59a0ffc612436299db39d7d4e671d8ac362b73c30deb9e0232534bca2ba4df26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for trqsh 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page