Metadata-Version: 2.4
Name: scribit
Version: 1.0.0
Summary: Real-time Transcription TUI powered by AssemblyAI
Project-URL: Homepage, https://github.com/leo01102/scribit
Project-URL: Issues, https://github.com/leo01102/scribit/issues
Project-URL: Repository, https://github.com/leo01102/scribit
Author-email: leo01102 <leo01102@users.noreply.github.com>
License-Expression: MIT
License-File: LICENSE
Keywords: assemblyai,audio,real-time,textual,transcription,tui
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Multimedia :: Sound/Audio :: Capture/Recording
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: assemblyai>=0.30.0
Requires-Dist: platformdirs>=4.0.0
Requires-Dist: pyaudio>=0.2.14
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: textual>=0.50.0
Provides-Extra: dev
Requires-Dist: hatch>=1.12.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: textual-dev>=1.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# Scribit

[![PyPI version](https://badge.fury.io/py/scribit.svg)](https://badge.fury.io/py/scribit)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/release/python-3100/)

Scribit is a high-performance real-time audio transcription engine with a premium developer-focused terminal interface. Powered by AssemblyAI's Streaming API and the Textual framework, it provides an elegant way to capture and log speech instantly.

## Features

- **Sleek TUI**: A dark-themed terminal interface built with Textual.
- **Real-time Transcription**: Powered by AssemblyAI's Streaming API.
- **Toggle Recording**: Start and stop transcription dynamically using the `Space` key.
- **In-App Settings**: Change your API key, audio device, and logging preferences without restarting.
- **Persistent Configuration**: Settings are saved locally in `settings.json`.
- **Transcript Logging**: Option to automatically save session transcripts to timestamped files.
- **Session Stats**: Monitor duration and turn count in real-time.

### From PyPI
```bash
pip install scribit
```

### From Source
1.  **Clone the repository**:
    ```bash
    git clone https://github.com/leo01102/scribit.git
    cd scribit
    ```
3.  **Install the package**:
    ```bash
    pip install .
    ```
    Alternatively, for development use:
    ```bash
    pip install -e ".[dev]"
    ```

## Usage

Once installed, simply run the following command in your terminal:
```bash
scribit
```

### Controls

1.  **Configure API Key**:
    - Press `S` to open the Settings menu.
    - Paste your AssemblyAI API key and press `Save`.
2.  **Start Recording**: Press `Space` to begin transcription.
3.  **Stop Recording**: Press `Space` again to pause/stop.
4.  **Clear Log**: Press `C` to clear the current transcription log.
5.  **Quit**: Press `Q` to exit the application.

### Key Bindings

| Key     | Action                 |
| :------ | :--------------------- |
| `Space` | Start/Stop Recording   |
| `S`     | Open Settings Menu     |
| `D`     | Download Session (.md) |
| `C`     | Clear Session Memory   |
| `Q`     | Quit Application       |

### Storage Location
Scribit now follows platform standards for data storage:
- **Windows**: `AppData/Local/scribit`
- **macOS**: `~/Library/Application Support/scribit`
- **Linux**: `~/.config/scribit`

## Technical Details

- **Transcription Engine**: AssemblyAI Streaming (v3).
- **Default Device**: Set to index 2 (configurable in settings).
- **Logs**: Saved in the `logs/` directory if enabled.
- **Environment**: Initial API keys can be loaded from a `.env` file.

## License

This project is licensed under the MIT License.
