Metadata-Version: 2.5
Name: pymacos
Version: 1.0.0
Summary: A Pythonic interface to macOS — notifications, clipboard, dark mode, apps, Keychain, speech and screenshots in one dependency-free import.
Project-URL: Homepage, https://github.com/JeanExtreme002/pymacos
Project-URL: Documentation, https://macos.readthedocs.io
Project-URL: Repository, https://github.com/JeanExtreme002/pymacos
Project-URL: Issues, https://github.com/JeanExtreme002/pymacos/issues
Project-URL: Changelog, https://github.com/JeanExtreme002/pymacos/releases
Project-URL: Funding, https://github.com/sponsors/JeanExtreme002
Author-email: Jean Loui Bernard Silva de Jesus <contact@jeanloui.dev>
Maintainer-email: Jean Loui Bernard Silva de Jesus <contact@jeanloui.dev>
License-Expression: MIT
License-File: LICENSE
Keywords: appkit,automation,clipboard,cocoa,ctypes,dark-mode,keychain,mac,macos,notifications,osx,screenshot,text-to-speech
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Desktop Environment
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: flake8; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Description-Content-Type: text/markdown

# pymacos

**A Pythonic interface to macOS.** Notifications, clipboard, dark mode, apps, Keychain, speech and screenshots, all from one import with zero dependencies.

```python
import macos

macos.notify("Build finished", title="CI")
macos.clipboard.copy("hello")
macos.appearance.is_dark()                 # True
macos.apps.open("Safari")                  # App(name='Safari', ...)
macos.keychain.get("my-app", "alice")      # 's3cret'
macos.say("Done!")
macos.screenshot("screen.png")
```

## Install

```bash
pip install pymacos
```

The package is installed as `pymacos` and imported as `macos`.

Requires macOS and Python 3.9+.

## Why

Doing any of this from Python usually means shelling out to `osascript`, remembering `defaults` keys, or pulling in PyObjC and learning Cocoa. `pymacos` gives you one small, typed API instead:

- **No dependencies.** Native features call the system frameworks through `ctypes`; the rest wraps tools that ship with every Mac.
- **Pythonic.** Plain functions, dataclasses and real exceptions, not Objective-C selectors or exit codes.
- **Safe by default.** Your text is never spliced into shell or AppleScript source, and passwords never show up in the process list.
- **Helpful errors.** A missing privacy permission raises an error that says where to enable it, instead of failing silently.

## Documentation

The full guide and API reference are at **[macos.readthedocs.io](https://macos.readthedocs.io)**.

## License

Released under the [MIT License](https://github.com/JeanExtreme002/pymacos/blob/main/LICENSE) — free for personal and commercial use.

<sub>Not affiliated with or endorsed by Apple Inc. macOS is a trademark of Apple Inc.</sub>
