Skip to main content

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

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

0BSD

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)

Source distribution for byway 0.6.0
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)

Table of built distributions (wheels) for byway 0.6.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

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.

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files Full provenance

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