Skip to main content

Smart Move (smv) - AI-powered file organization tool

Project description

smart-mv

smart-mv (smv) is an AI-powered file organizer that analyzes file content and suggests where to move files, how to rename them, and when to trash clutter.

Highlights

  • Multi-provider AI setup with persistent profile:
    • Ollama (first in selection list)
    • OpenAI
    • Anthropic
    • Google Gemini
  • Model selection per provider (with Ollama local model discovery).
  • API key persistence with OS keyring and explicit plaintext fallback.
  • Faster sorting flow with deterministic trash shortcuts and depth-limited search.
  • Provider/model settings can be changed anytime from CLI.
  • Richer document understanding with native .docx text extraction.
  • Filesystem tool-calling (OpenAI/Ollama) so AI can list directories and find files/folders during destination planning.

Quick start (uv-first)

Install

uv tool install smart-mv

or from source:

git clone https://github.com/kariszhuang/smart-mv.git
cd smart-mv
uv sync
uv run smv --version

Configure AI once

uv run smv ai setup

This interactive setup lets you choose provider, model, base URL (where applicable), and API key storage.

Organize a file

uv run smv /path/to/file.pdf

AI configuration commands

# Show current profile
uv run smv ai show

# Interactive reconfiguration
uv run smv ai setup

# Set provider/model/base URL directly
uv run smv ai set-provider ollama
uv run smv ai set-model gemma3:12b
uv run smv ai set-base-url http://localhost:11434/v1

# Set API key (keyring by default; falls back to plaintext if needed)
uv run smv ai set-api-key --storage keyring

# List suggested/discovered models
uv run smv ai list-models --provider ollama

Development

uv sync
uv run python -m unittest discover -s tests -q

Python version

This project now targets Python 3.10+.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smart_mv-0.2.0.tar.gz (77.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smart_mv-0.2.0-py3-none-any.whl (67.6 kB view details)

Uploaded Python 3

File details

Details for the file smart_mv-0.2.0.tar.gz.

File metadata

  • Download URL: smart_mv-0.2.0.tar.gz
  • Upload date:
  • Size: 77.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for smart_mv-0.2.0.tar.gz
Algorithm Hash digest
SHA256 fd3efde094e373fef283c762d50953592bf9de692e358e4702b2fa522809a15c
MD5 6a1c9c9453ccb845173edfae66d9f7a8
BLAKE2b-256 55f7da3acb323d74a10e386c9ee7723572a644fc079751cbb497e3e78eab65f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for smart_mv-0.2.0.tar.gz:

Publisher: release-pypi.yml on kariszhuang/smart-mv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smart_mv-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: smart_mv-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 67.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for smart_mv-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1b377e43867d8d7944c4cbb2f9ca605dcc13aa876513c7b3bc4a88d92f10ffb5
MD5 f788b6615195998ff0727045d1720c95
BLAKE2b-256 fef9c4bb2ec1199b45095caf1a960d97c250fe656f5196dde37ccf5509c5ae42

See more details on using hashes here.

Provenance

The following attestation bundles were made for smart_mv-0.2.0-py3-none-any.whl:

Publisher: release-pypi.yml on kariszhuang/smart-mv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page