A lightweight macOS menu bar app to quickly move and rename files from the Finder using a keyboard-driven workflow.
Select files in the Finder, press Ctrl+Shift+S, pick a destination, and optionally let a local AI suggest a filename that matches the folder's naming convention.
- Ctrl+Shift+S or right-click > Services > "Deplacer via MoveMe" to open the panel
- Terminal-style path picker with two modes: folder navigation and fuzzy search
- Create new folders on the fly when a path doesn't exist yet
- Undo any move within 5 seconds (toast notification + Cmd+Z)
- After choosing a destination, MoveMe analyzes the existing filenames in the target folder
- A local LLM (via Ollama) suggests a name that follows the folder's naming convention
- The suggestion is editable — modify it or ignore it entirely
- Works with any naming pattern: numbered sequences, date prefixes, category tags, snake_case, etc.
- File content is extracted (PDF, images, Office docs) to inform the suggestion
- No data leaves your Mac — everything runs locally
- Press Shift+Space or click "Examiner" to preview the selected files without leaving the panel
- Uses the native macOS Quick Look (QLPreviewPanel)
- Runs entirely in the menu bar (no Dock icon)
- The panel stays in the foreground while open and closes automatically when you click away
- No network calls, no telemetry — the only external dependency is Ollama (optional)
- Full English and French UI with live switching (no app restart required)
- Language selector in Preferences > General, defaults to English
- macOS 14 (Sonoma) or later
- Ollama (optional, for AI renaming)
git clone https://github.com/theokleman/MoveMe.git
cd MoveMe
bash build.sh
cp -r .build/MoveMe.app /Applications/
open /Applications/MoveMe.app- macOS will ask for Accessibility permission — grant it in System Settings
- Open Preferences from the menu bar icon to add destination folders
- (Optional) Install Ollama and configure a model in the IA tab
- Select one or more files/folders in the Finder
- Press Ctrl+Shift+S
- Navigate to a destination using the path picker:
- Type to search across all configured folders
- Use arrow keys to navigate, Tab to confirm
- Type a path that doesn't exist to create new folders
- Press Enter to confirm
If Ollama is running, MoveMe will automatically suggest a rename after you choose a destination:
- The input field is pre-filled with the current filename
- While the AI thinks, a green indicator shows
<model> suggests a name... - When the suggestion arrives, the field updates (unless you've already started typing)
- Press Enter to move and rename, or Esc to cancel everything
| Shortcut | Action |
|---|---|
| Ctrl+Shift+S | Open MoveMe panel |
| Enter | Confirm selection / Move / Rename |
| Esc | Cancel / Close panel |
| Tab | Toggle between picker and confirmation |
| Shift+Space | Preview file (Quick Look) |
| Cmd+Z | Undo last move (within 5s) |
Open Preferences from the menu bar icon:
- General — How it works, keyboard shortcut, launch at login, UI language (English/Français)
- Folders — Add/remove destination folders (your home folder is added by default)
- AI — Configure the Ollama model for renaming suggestions
- Download and install Ollama
- Pull a model:
ollama pull gemma2:9b(or any model from the library) - In MoveMe Preferences > AI, enter the model name and click "Enregistrer"
- The app validates that Ollama is running and the model is available
Models that work well: gemma2:9b, qwen3.5:9b, mistral:7b, llama3.1:8b.
# Debug build
swift build
# Release build + .app bundle
bash build.shbuild.sh compiles the release binary and assembles .build/MoveMe.app. It does not install, launch, or touch any system permission. To install:
cp -R .build/MoveMe.app /Applications/
open /Applications/MoveMe.appIf you are iterating on the code, dev-build.sh runs the full development cycle in one go: kill the running app, rebuild, reset the Accessibility TCC entry (since each rebuild changes the binary signature), reinstall to /Applications/, and relaunch.
Sources/
AppDelegate.swift # Entry point, hotkey, menu bar, permissions
MoveMeApp.swift # @main enum
Models/
DestinationFolder.swift # Folder configuration model
UndoableAction.swift # Undo tracking (source/destination URLs)
Services/
FileMoverService.swift # File move/rename with collision handling
FinderBridge.swift # AppleScript bridge to get Finder selection
SettingsStore.swift # UserDefaults persistence
ActionUndoManager.swift # 5-second undo window with countdown
OllamaService.swift # Ollama HTTP client (generate, isAvailable)
FileContentExtractor.swift # Text extraction (PDF, images, Office docs)
NamingAnalyzer.swift # LLM-based naming suggestion
Localization.swift # AppLanguage + L10n runtime FR/EN dictionary
Utilities/
PanelController.swift # Panel lifecycle, move/rename orchestration
QuickLookHelper.swift # QLPreviewPanel bridge
Views/
MovePanel.swift # Main UI (header + path picker + confirmation)
RenameView.swift # Rename UI (inputs + AI loader + buttons)
PathPickerInputView.swift # Terminal-style path navigation/search
PathTextField.swift # Custom NSTextField with keyboard interception
SettingsWindow.swift # Preferences (General, Folders, AI tabs)
SuggestionPanel.swift # Floating NSPanel (non-activating, borderless)
UndoToastView.swift # Undo notification with countdown
MIT
