Smart Move (smv) - AI-powered file organization tool
Project description
๐ง smart-mv โ AI-powered File Organization Tool
smart-mv (Smart Move) is an intelligent file organization tool that automatically classifies, renames, and organizes your files based on their actual contents โ not just filenames. It makes the decision process of "where should this file go?" effortless by analyzing content, context, and your existing folder structure.
โ Key Features
smart-mv goes beyond filenames. It reasons like a human:
- Analyzes textual and visual content - Extracts and understands text from documents first, then falls back to visual analysis for PDFs and images when needed
- Matches files with your folder structure - Finds the perfect location
- Maintains naming consistency - Follows existing patterns in target folders
- Removes clutter - Identifies disposable files for trash
- Human-in-the-loop - Asks for input when uncertain and accepts human hints for better suggestions
๐ฅ Installation
You can install smart-mv using pip:
# Install from PyPI
pip install smart-mv
# Or install directly from GitHub
pip install git+https://github.com/kariszhuang/smart-mv.git
๐ Usage
# Organize a single file
smv /path/to/your/file.pdf
# Get help
smv --help
# Show version
smv -v
๐งฌ Real-World Example
Model: gemma3:12b
Before
~/Downloads/
โโโ label.pdf # Nike return instructions
โโโ Document_20250419_0001.pdf # Scanned passport page
โโโ HttpToolkit-1.19.3.dmg # Installer
โโโ HWSolutions10.2025.pdf # Handwritten physics equations
~/Documents/Notes/Journals/
โโโ 2025-05-19.md # Markdown journal entry
After:
~/Documents/
โโโ Legal Documents/
โ โโโ Receipts/
โ โ โโโ Nike_Return_Label_1ZXXXXXXXXXXXXXXX.pdf # Renamed w/ tracking placeholder
โ โโโ Passport_Page_20250419.pdf # Archived passport scan
โ
โโโ School/
โ โโโ 2025 Spring/
โ โโโ PHYS 311/
โ โโโ HW/
โ โโโ Homework_Solutions/
โ โโโ SolnsHmwk9_2025.pdf # Existing solution file
โ โโโ SolnsHmwk10_2025.pdf # NEW โ Renamed to match pattern
โ
โโโ Notes/
โโโ Journals/
โโโ 2025-05-19.md # Recent journal โ left in place
~/.Trash/
โโโ HttpToolkit-1.19.3.dmg # 3 months old installer โ moved to Trash
e.g.
$ smv ~/Downloads/HWSolutions10.2025.pdf
Moved:
From: /Users/<user>/Downloads/HWSolutions10.2025.pdf
To: /Users/<user>/Documents/School/.../Homework_Solutions/SolnsHmwk10_2025.pdf
Step 1: Initial assessment notices it's a PDF in Downloads
Step 2: Content analysis identifies handwritten equations and diagrams
Step 3: Extracts keywords: "solutions, homework, physics, equations"
Step 4: Searches folders, finds matching homework solutions directory
Step 5: Examines existing files in target location for naming patterns
Step 6: Renames file to match pattern, maintaining consistency
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smart_mv-0.1.1.tar.gz.
File metadata
- Download URL: smart_mv-0.1.1.tar.gz
- Upload date:
- Size: 65.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c33b8fff4a4a59532487929f05fd1ec9764a005a343aed0fa92d51c767625340
|
|
| MD5 |
46c1a6b6ca2369e2fde9d23a985b696d
|
|
| BLAKE2b-256 |
c324554f52b734afa7b061d97c810581015030134513cbdd00693710dcd34c23
|
Provenance
The following attestation bundles were made for smart_mv-0.1.1.tar.gz:
Publisher:
release-pypi.yml on kariszhuang/smart-mv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smart_mv-0.1.1.tar.gz -
Subject digest:
c33b8fff4a4a59532487929f05fd1ec9764a005a343aed0fa92d51c767625340 - Sigstore transparency entry: 219887022
- Sigstore integration time:
-
Permalink:
kariszhuang/smart-mv@ec5349c4899414d785cde36d8e0f7ca360c80056 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/kariszhuang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@ec5349c4899414d785cde36d8e0f7ca360c80056 -
Trigger Event:
push
-
Statement type:
File details
Details for the file smart_mv-0.1.1-py3-none-any.whl.
File metadata
- Download URL: smart_mv-0.1.1-py3-none-any.whl
- Upload date:
- Size: 56.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a125dd8255d04e2a2cc484dced49fc1d3eccf6aa359e211b6dc3f927dd4a0ba
|
|
| MD5 |
2be36a3b68097751e05438602d34cc9e
|
|
| BLAKE2b-256 |
69dbd6e33573097747cd7a13ec7807884b641b320ebd3731709703a4db0051af
|
Provenance
The following attestation bundles were made for smart_mv-0.1.1-py3-none-any.whl:
Publisher:
release-pypi.yml on kariszhuang/smart-mv
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smart_mv-0.1.1-py3-none-any.whl -
Subject digest:
5a125dd8255d04e2a2cc484dced49fc1d3eccf6aa359e211b6dc3f927dd4a0ba - Sigstore transparency entry: 219887024
- Sigstore integration time:
-
Permalink:
kariszhuang/smart-mv@ec5349c4899414d785cde36d8e0f7ca360c80056 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/kariszhuang
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@ec5349c4899414d785cde36d8e0f7ca360c80056 -
Trigger Event:
push
-
Statement type: