Metadata-Version: 2.3
Name: sonic-bloom
Version: 0.1.1
Summary: A little terminal app that controls Apple Music on macOS via natural language
Project-URL: Homepage, https://github.com/James-Wirth/sonic-bloom
Project-URL: Repository, https://github.com/James-Wirth/sonic-bloom
Author: James Wirth
License: MIT
Keywords: apple-music,cli,llm,macos,terminal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Sound/Audio
Requires-Python: >=3.11
Requires-Dist: anthropic>=0.75.0
Requires-Dist: cryptography>=42.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pyjwt>=2.8.0
Requires-Dist: pyobjc-core>=10.0
Requires-Dist: pyobjc-framework-cocoa>=10.0
Requires-Dist: pyobjc-framework-mediaplayer>=10.0
Requires-Dist: pyobjc-framework-scriptingbridge>=10.0
Requires-Dist: python-dotenv>=1.0
Requires-Dist: rich>=13.0
Provides-Extra: all
Requires-Dist: openai>=1.0; extra == 'all'
Provides-Extra: openai
Requires-Dist: openai>=1.0; extra == 'openai'
Description-Content-Type: text/markdown

# Sonic Bloom

A little terminal app that controls Apple Music on macOS via natural language.

```
> Play something whilst I assemble this Ikea shelf

  ⠋ Searching iTunes...

  ? Pick your track:
    › The Final Countdown – Europe
      Lose Yourself – Eminem
      Harder Better Faster Stronger – Daft Punk

  Good choice.

  ╭ ▶ Now Playing ────────────────────────────╮
  │ The Final Countdown — Europe              │
  │ The Final Countdown                       │
  │ vol 75 · shuffle off · repeat off         │
  ╰───────────────────────────────────────────╯
```

## Setup

Requires macOS, Python 3.11+, and Apple Music.

```sh
pip install sonic-bloom
sonic-bloom
```

You'll be prompted to choose a provider (Anthropic, OpenAI, or Ollama) and enter an API key.
