Metadata-Version: 2.4
Name: diodos
Version: 0.1.0
Summary: Auto detect and login to the captive portal of given networks.
Keywords: captive-portal,network,cli,automation,wifi
Author: RushiVivek
Author-email: RushiVivek <rushivivek123@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Internet
Classifier: Topic :: Utilities
Requires-Dist: requests>=2.34.2
Requires-Dist: tomlkit>=0.15.1
Requires-Dist: typer>=0.27.1
Requires-Python: >=3.13
Project-URL: Homepage, https://github.com/RushiVivek/Diodos
Project-URL: Repository, https://github.com/RushiVivek/Diodos
Project-URL: Issues, https://github.com/RushiVivek/Diodos/issues
Description-Content-Type: text/markdown

# diodos

`diodos` is a CLI daemon that monitors your network and automatically attempts login when a captive portal is detected.

## Features

- Checks connectivity on a configurable interval.
- Detects likely captive-portal redirects.
- Submits configured credentials automatically.
- Works with `python -m diodos` and the installed `diodos` command.

## Installation

### With uv (recommended)

Install as a global CLI tool:

```bash
uv tool install diodos
```

Run without installing globally:

```bash
uvx diodos run
```

### With pip (alternative)

```bash
pip install diodos
```

### From source

```bash
git clone <your-repo-url>
cd Diodos
uv sync
```

## Usage

```bash
diodos run
```

Or:

```bash
python -m diodos run
```

On first run, `diodos` creates a default config file and opens it for editing.

## Configuration

Default config path:

- Linux: `~/.config/diodos/config.toml` (or `$XDG_CONFIG_HOME/diodos/config.toml`)
- macOS: `~/Library/Application Support/diodos/config.toml`
- Windows: `%APPDATA%/diodos/config.toml`

Example:

```toml
[network_check]
url = "https://example.com"
msg = "Success"
interval = 60

[login]
url = "https://portal.example.com/login"

[login.credentials]
username = "your-username"
password = "your-password"
```

## Development

Build distributables:

```bash
uv build
```

Validate package metadata:

```bash
uvx twine check dist/*
```
