Metadata-Version: 2.4
Name: structured-domain-generator
Version: 0.1.2
Summary: A pure Python CLI tool for generating structured semi-random domain names.
License-File: LICENSE
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# structured-domain-generator

A pure Python, zero-dependency CLI tool for generating structured semi-random domain names.

## Quick Start

```bash
# Install as a tool
uv tool install structured-domain-generator

# Generate a domain
❯ sdg thingy --prefix ff123556 --suffix .net
https://ff123556-transparency-harvesting-investment.net
```

*Note: You can also use `pip install`, `pipx install`, or `uv tool install`, but we recommend [uv](https://docs.astral.sh/uv/getting-started/installation/).*

## Features

- Pure Python (0 dependencies).
- CLI-based interface.
- Structured generation using seed strings.
- Support for optional prefixes and suffixes.
- Weighted selection favoring shorter words (≤ 4 chars).

## How it Works

The generator uses the first three characters of a seed string to pick three random words from available lists. Words starting with the corresponding character are prioritized; if none exist, a random word from the pool is used. Words with 4 characters or fewer are given double the selection weight.

## Installation

This project uses [uv](https://docs.astral.sh/uv/getting-started/installation/). You can install the tool globally:

```bash
uv tool install structured-domain-generator
```

## Usage

Run the tool using the `sdg` or `structured-domain-generator` command:

```bash
sdg <seed_word> [options]
```

### Options
- `--prefix <string>`: Adds a prefix to the domain.
- `--suffix <string>`: Adds a suffix (e.g., `.com`, `.net`) to the domain.
- `--lists <list...>`: Specify word lists to use (`business`, `energy`, `short`). Defaults to all.

## Development

- **Project Management**: `uv`
- **Linting & Formatting**: `ruff`

To format and lint the code:
```bash
uv run ruff format .
uv run ruff check .
```

## Contributing

Pull requests for bug fixes and improvements are welcome.

## License

This project is licensed under the MIT License.
