Metadata-Version: 2.4
Name: tunnelvt
Version: 0.2.0
Summary: Simple tunneling — expose local apps behind Cloudflare. No login.
License: MIT
Project-URL: Homepage, https://github.com/vintechids/tunnelvt-py
Project-URL: Repository, https://github.com/vintechids/tunnelvt-py
Keywords: tunnel,ngrok,localhost,expose,webhook,proxy,cloudflare
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: websocket-client>=1.7
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Dynamic: license-file

# tunnelvt — Python

Simple tunneling client in Python. No login. Expose local apps at `domain/<device>/<app>`.

## Install

```bash
pip install tunnelvt
```

Requires Python ≥ 3.9.

## Usage

```bash
tunnelvt -s https://tunnel.example.com -a myapp -p 3000
```

Output:
```
[tunnelvt] connected — a1b2c3d4e5f6g7h8/myapp -> localhost:3000
```

Your app is now at:

```
https://tunnel.example.com/a1b2c3d4e5f6g7h8/myapp/
```

### Custom device ID

```bash
tunnelvt -s https://tunnel.example.com -d my-laptop -a api -p 8080
# → https://tunnel.example.com/my-laptop/api/
```

### Library usage

```python
from tunnelvt import TunnelVT

client = TunnelVT(
    server_url="https://tunnel.example.com",
    app="myapp",
    port=3000,
)
client.connect()  # blocks
```

## License

MIT
