byway
Byway · English noun
A secondary road or path, away from the main route.
byway is a userspace client that speaks the Cisco AnyConnect VPN protocol. No tun device, no
virtual adapter, no routing changes, no administrator rights: the tunnel and everything carried
over it live inside the Python process. Access is through a local SOCKS5 proxy, so ssh and
curl work unchanged, and an in-process API.
Use it when you need to reach a REST API or SSH into a host inside a corporate VPN, but cannot, or would rather not, install a VPN client, change routing, or use admin rights. VPN access is scoped to one process rather than to the whole machine.
Install and run
$ uv tool install byway
$ byway probe vpn.corp.example # what does this gateway ask for?
$ byway up vpn.corp.example -u user --socks
address 172.29.29.3/255.255.0.0
mtu 1383
routes 10.0.0.0/23
socks5 127.0.0.1:1080
byway up prompts for the password and holds the tunnel open. From another terminal:
curl --socks5 127.0.0.1:1080 http://10.0.0.20/
ssh -o ProxyCommand="byway nc --via 127.0.0.1:1080 %h %p" user@10.0.0.32
Saved profiles, other ways to pass the password, and certificate pinning are in the manual.
Use it from your own program
uv add byway
import byway
async with byway.connect("vpn.corp.example", user, password) as vpn:
reader, writer = await vpn.open_connection("10.0.0.32", 22)
async with vpn.httpx_client() as http:
response = await http.get("http://10.0.0.20/v1/things")
Caveats
- Hosts are IP addresses, or names from a fixed table in the profile: there is no in-tunnel DNS.
- byway supports IPv4, TLS, outbound TCP and username/password authentication only.
- Many organisations require a sanctioned VPN client, and byway bypasses posture assessment (CSD/HostScan) entirely. Check that you are allowed to use it before you point it at a corporate gateway.
Documentation
- docs/MANUAL.md — all commands, profiles, credentials, certificate pinning and the library API.
- docs/http-async.md — calling REST APIs from async code.
- docs/http-sync.md — calling REST APIs from sync code.
- docs/OPERATIONS.md — runtime behavior: idle timeouts, reconnects, sessions, throughput, diagnostics.
- docs/DESIGN.md — architecture, core principles and deliberate omissions.
- docs/protocol.md — protocol notes and gateway observations.
- docs/throughput.md — throughput measurements.
- docs/DEVELOPMENT.md — building and testing.
AI disclosure
Substantial parts of this code were generated with Sonnet 5.x/Opus 5.x. Generated code was tested, but not every line was reviewed in detail.
License
Metadata
Release files for byway 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| byway-0.6.0.tar.gz | 183.8 kB | With provenance | Details for byway-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| byway-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for byway-0.6.0-py3-none-any.whl |
Total release size: 264.9 kB
Release files / byway-0.6.0.tar.gz
| Download URL | byway-0.6.0.tar.gz |
|---|---|
| Size | 183.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4f9a1234da70dd5a04c62421fa53faeee24d9c8c608a1356689f139186d9ee2
|
|
BLAKE2b-256 checksum How to use checksums |
55c1a165ae43b93eefdac78d4f38d62510bac59881f2eed892144d8f74cb1f44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / byway-0.6.0-py3-none-any.whl
| Download URL | byway-0.6.0-py3-none-any.whl |
|---|---|
| Size | 81.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e94de21594f089e20a8068cec9cee737ac37936578fea8a95ab8fe07086d853
|
|
BLAKE2b-256 checksum How to use checksums |
ae24e24714a825c942a7f5d5cf0ec0429970a01e06d4d0cde009634d616bd3b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for byway 0.6.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for byway-0.6.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA 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.