MM
MM is a local-first media library manager for photos, videos, and audio. It helps you scan existing folders, import new files safely, organize media with tags and albums, and browse everything from a web UI.
Homepage and docs · PyPI · Issues
What you can do with MM
- Browse your local media collection in a web UI.
- Import photos and videos into predictable folders.
- Keep your original files untouched while indexing.
- Search and organize media with tags, albums, ratings, places, and dates.
- Start locally and move to a server-backed setup later if you need it.
Install
Install the recommended media tools first:
macOS:
brew install exiftool ffmpeg
Ubuntu / Debian:
sudo apt install libimage-exiftool-perl ffmpeg
Then install MM:
pipx install litemm
First run
Create a library for your media folder:
mm init ~/Photos
Start the web UI:
mm server
Open http://localhost:8000 in your browser.
Import new media
Copy new media into the library:
mm import ~/Downloads/Camera
If files changed inside the active library and MM should update its index:
mm db sync
Learn more
The full documentation site includes:
Native iOS / macOS app
A SwiftUI client targeting iOS 17+ and macOS 14+ lives under ios/.
It's a separate Swift codebase that talks to this server over HTTP and
shares no code with the web frontend (by design — native UI). See
ios/README.md for build instructions.
License
MM is available under the PolyForm Noncommercial License 1.0.0. Commercial use requires separate permission.
Metadata
Release files for litemm 0.1.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| litemm-0.1.16.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| litemm-0.1.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / litemm-0.1.16.tar.gz
| Download URL | litemm-0.1.16.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d15ca5af338d1332228a56a6f29dfaa21568532e40284148a23180421ba1da16
|
|
BLAKE2b-256 checksum How to use checksums |
f49c867274b6d7284758ea28585789001def46b45ccfc61792ef209f84bf97c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency logRelease files / litemm-0.1.16-py3-none-any.whl
| Download URL | litemm-0.1.16-py3-none-any.whl |
|---|---|
| Size | 621.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4372d0f14c470de386d5a43f0a36c70eebb6c1d2c2e4ee979c4ce736791b86d6
|
|
BLAKE2b-256 checksum How to use checksums |
c250293edaff0de380bbe51f5974cfd804cd4ebf7c9e37e7fdbbffe63cf5beaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2026.
Transparency log