CLI for I-66 inside-the-Beltway toll lookups
Project description
i66tolls
Vibe coded command-line tool for checking tolls on I-66 inside the Capital Beltway (between I-495 and the Theodore Roosevelt Bridge).
Run it with no arguments for an interactive wizard, or pass entry/exit IDs and flags for a quick lookup.
Data comes from VDOT's official toll calculator at vai66tolls.com.
Requirements
- Python 3.10+
- Typer for the CLI
- prompt_toolkit and its-a-dt for interactive prompts
Install
From PyPI:
pip install i66tolls
From source:
pip install -e .
Interactive mode
i66tolls
- Direction —
current, eastbound, or westboundcurrentuses the system clock. If no toll period is active, prints a message and exits.- Eastbound/westbound continues to entry selection for that direction.
- Entry — choose an entry interchange
- Exit — choose an exit interchange
- When —
currentorhistoric(skipped if you already chosecurrentin step 1) - Date/time — for historic lookups, an interactive date/time picker (its-a-dt)
Use ↑/↓ and Enter to select. Press ← to go back to the previous step (even for values pre-filled from the command line).
Provide arguments to skip interactive steps
Provide entry and exit IDs (and any other options) to skip prompts:
i66tolls 1 10 -c
i66tolls 1 10 --current
i66tolls 16 1 -w -c
i66tolls 1 10 -t "06/10/2026 08:00 AM"
When both entry and exit are given, direction is inferred automatically.
Options
| Flag | Description |
|---|---|
-e, --eastbound |
Eastbound route |
-w, --westbound |
Westbound route |
-c, --current |
Use the current toll rate |
-t, --time |
Historic date/time (MM/DD/YYYY HH:MM AM/PM, US/Eastern) |
Conflicts
--eastboundand--westboundcannot be used together--currentand--timecannot be used together- Provide both entry and exit IDs, or neither
Toll hours
| Direction | Hours |
|---|---|
| Eastbound (toward DC) | Weekdays 5:30–9:30 AM |
| Westbound (toward Beltway) | Weekdays 3:00–7:00 PM |
Outside these windows, current tolls show as unavailable. Federal holidays are also toll-free.
Entry and exit IDs
Run i66tolls and browse the interactive lists, or query the API directly:
curl -s "https://vai66tolls.com/Index?handler=BeginIntPartial&rbEastVal=true" | grep option
curl -s "https://vai66tolls.com/Index?handler=ExitIntPartial&bIntId=1&rbEastVal=true" | grep option
Data source
This tool uses the same backend API as vai66tolls.com. Amounts are estimates and can change before you reach the road.
reference/tolls.py is the original Alexa skill that used a SmarterRoads XML feed. That public endpoint is no longer available.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file i66tolls-0.1.1.tar.gz.
File metadata
- Download URL: i66tolls-0.1.1.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9780452ff30bdaab1e1725962fc692ed9a2dd91ce0dcd8ad55099e8b82fc3d1
|
|
| MD5 |
b2475e4492b261e77662f81caab4ee4d
|
|
| BLAKE2b-256 |
fa76b9556dca14ad0e2c283779bee5ac46ba030ecaae7539e7fc3cf657ddaf05
|
Provenance
The following attestation bundles were made for i66tolls-0.1.1.tar.gz:
Publisher:
publish.yml on alanjschoen/i66tolls
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
i66tolls-0.1.1.tar.gz -
Subject digest:
f9780452ff30bdaab1e1725962fc692ed9a2dd91ce0dcd8ad55099e8b82fc3d1 - Sigstore transparency entry: 1843168373
- Sigstore integration time:
-
Permalink:
alanjschoen/i66tolls@e1b6c52a9b28270a88285a7d209e379aede2f213 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/alanjschoen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1b6c52a9b28270a88285a7d209e379aede2f213 -
Trigger Event:
push
-
Statement type:
File details
Details for the file i66tolls-0.1.1-py3-none-any.whl.
File metadata
- Download URL: i66tolls-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ccbd9ec530cc679238cdcf578a265138199aec22dd381ccdaddb1322bdfb7df
|
|
| MD5 |
5244ebbbdbf7a2069a53c495cb236092
|
|
| BLAKE2b-256 |
b903b819c7d51b3872d8f2492e39aae405823ba0bc85421054e9eefc12eecd79
|
Provenance
The following attestation bundles were made for i66tolls-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on alanjschoen/i66tolls
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
i66tolls-0.1.1-py3-none-any.whl -
Subject digest:
0ccbd9ec530cc679238cdcf578a265138199aec22dd381ccdaddb1322bdfb7df - Sigstore transparency entry: 1843168376
- Sigstore integration time:
-
Permalink:
alanjschoen/i66tolls@e1b6c52a9b28270a88285a7d209e379aede2f213 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/alanjschoen
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e1b6c52a9b28270a88285a7d209e379aede2f213 -
Trigger Event:
push
-
Statement type: