Metadata-Version: 2.4
Name: spnoiser
Version: 1.1.2
Summary: Simple noiser: Run to annoy the user.
Author: celet-ff-io
License-Expression: Apache-2.0
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: sounddevice>=0.5.3
Requires-Dist: soundfile>=0.13.1
Requires-Dist: windows-curses; sys_platform == "win32"
Dynamic: license-file

# spnoiser

Simple noiser: a tiny terminal alarm that repeats a message on the screen and can loop a short audio file (WAV recommended).

The package entry point is `spnoiser.app`. The main function accepts command-line arguments to control the displayed text, maximum duration, and an optional audio file to loop. If no audio file is provided, the program will attempt to use the terminal beep.

This project uses `src/main.py` as an alternative entrance, for debugging especially.

## Quick start

- Run directly from source:

```bash
uv run src/main.py -n "Beep" -t 120
```

- Install editable and run:

```bash
uv tool install -e .
spnoiser -n "Beep" -t 120
```

Note: the `spnoiser` console script is provided by the package entry point and is available after installation.

## Command-line arguments

The program (via `spnoiser.app:main`) supports the following options:

- `-n, --noise`  : Text to repeat on the terminal.
- `-t, --time`   : Maximum annoying time in seconds.
- `-s, --sound`  : Path to an audio file to loop. If omitted, the terminal beep is used when available.
- `-v, --volume` : Volume level for the sound file (>= 0.0). Default is 1.0.

Examples:

```bash

# Install first
uv tool install -e .

# Custom text and infinite duration, use terminal beep
spnoiser -n "Beep!" -t 0

# Loop a sound file to play instead of terminal beep
spnoiser -s "music/alarm.mp3"
```

## License

This project is licensed under the Apache License 2.0.

See the `LICENSE` file or the Apache website for the full license text: http://www.apache.org/licenses/LICENSE-2.0
