FilesGoThere is a local-first Windows desktop utility that watches one or more folders (typically Downloads) and helps you organize files into the right destination folders using simple, customizable rules.
Offline. Lightweight. Privacy-friendly.
- Keep your Downloads folders tidy without giving up control.
- Prefer “suggest + confirm” instead of silent automation.
- Work fully offline by default (no cloud, no telemetry, no account). The only optional internet request is the update check described below, and it is off unless you turn it on.
- Real-time multi-folder monitoring (watchdog).
- Download safety:
- ignores temporary/incomplete files (
.part,.crdownload,.tmp) - waits for downloads to finish (“settle”: file size stable for N seconds); keeps waiting while the file is still growing, so large/slow downloads are not dropped
- skips system/junk files via a configurable ignore-list (
desktop.ini,thumbs.db,~$*, dot-files, plus Windows hidden/system files)
- ignores temporary/incomplete files (
- Rule engine (initial): extension → destination subfolder + default folder.
- Duplicate handling:
rename | skip | overwrite. - Two modes:
manual: generates a queue of proposed actions (JSON Lines); you apply the selected ones after a previewauto: moves files automatically as soon as they are ready, recording every move in the history
- Undo: revert an applied move (auto or manual) back to its original location from the History tab.
- Logging: console + rotating log file (standard Python logging).
- Desktop GUI (PySide6, optional) to view/apply/undo actions, filter by text/extension, and manage watched folders.
- Settings in the GUI: language (Italian / English), mode, light/dark theme, focus options.
- Optional update check against the GitHub releases page (off by default, see below).
FilesGoThere 1.0.0 is the first complete public release of the app. The project already includes the full local workflow: monitoring, queue/manual mode, real automatic mode, history, undo, tray support, and a polished desktop GUI.
Future versions may still refine the UI further, but the current release is intended to be usable as a real day-to-day Windows utility.
If you use the Windows installer or the portable ZIP, you do not need to install Python.
Supported systems:
- Windows 10
- Windows 11
If you want to run FilesGoThere from source or build it locally, you need:
- Python 3.12+
Dependencies:
watchdog(required)PySide6(optional, GUI)
- Create and activate a virtual environment (recommended).
- Install dependencies:
pip install -r requirements.txt
- Edit your configuration:
- start from
config/example_config.jsonor a preset inconfig/presets/ - copy it into
config/config.json - set:
watch.paths(folders to monitor)library.root(base folder for organized output)
- start from
- Run:
python main.py --config config/config.json
- Install GUI dependencies:
pip install -r requirements-gui.txt
- Run:
python main.py gui --config config/config.json
Configuration is stored as JSON and loaded at runtime.
Key sections:
app.language:it | enapp.mode:manual | autoapp.theme:light | darkwatch.paths: list of folders to monitorwatch.settle_seconds: seconds of stable size before a file is considered readywatch.settle_max_seconds: safety cap on total wait time (0= no cap; the watcher keeps waiting while the file grows)watch.ignore_globs: filename globs to always skip (defaults todesktop.ini,thumbs.db,.ds_store,~$*,.*)library.duplicate_strategy:rename | skip | overwriterules.by_extension: map of file extension → destination subfolderrules.default_folder: fallback subfolderqueue.file: JSONL file storing proposed actions (manual mode)logging.file: rotating log file path
Note about app.mode:
- In
manualmode files are only proposed in the queue and moved when you confirm. - In
automode files are moved as soon as they settle; each move is logged in the history and can be reverted with Undo.
Recommended (Windows) locations for runtime data:
- Queue:
%LOCALAPPDATA%\FilesGoThere\data\queue.jsonl - Logs:
%LOCALAPPDATA%\FilesGoThere\logs\filesgothere.log
Windows executable config:
- On first start,
FilesGoThere.execreates%LOCALAPPDATA%\FilesGoThere\config\config.json(copied from the bundled default) and uses it afterwards.
Note about library.root:
- If
library.rootis empty, FilesGoThere uses the source file's folder as the base destination (i.e., it organizes inside the same Downloads folder).
Presets are optional starting points you can copy into config/config.json and edit.
config/presets/common_it.json: common extensions in Italian categories, designed for “organize in-place” (emptylibrary.root).
All commands below print JSON to stdout (useful for automation and for the GUI).
- List pending actions:
python main.py queue list --config config/config.json
- List done (archived) actions:
python main.py queue list --config config/config.json --source done
- Filter:
--tail 50--ext .pdf--contains "Downloads"
- Preview an action (no changes):
python main.py queue apply --config config/config.json --index 0
- Apply an action (moves the file):
python main.py queue apply --config config/config.json --index 0 --yes --require-same-size
- Archive all pending actions:
python main.py queue archive --config config/config.json
- Watcher: receives filesystem events and generates “file ready” events after settle.
- Rule engine: decides destination folder for a file.
- Queue: stores proposed actions (JSON Lines) for full user control.
- Apply: moves files when explicitly confirmed (CLI or GUI).
Code lives in src/filesgothere/ and is intentionally kept simple and extendable.
It is reasonable to start doing “dev builds” now, but a final distributable build is best done after:
- watcher behavior is stable across browsers
- config paths and defaults are finalized
- the GUI flow is finalized (tray icon, settings screen, etc.)
Build guide:
- See build.md
After extracting the ZIP, you can start the GUI by double-clicking FilesGoThere.exe.
If you want to use a custom configuration file, pass it explicitly:
FilesGoThere.exe --config path\to\config.json
For end users, the recommended release assets are:
FilesGoThere-v1.0.0-windows.zip: portable packageFilesGoThere-Setup-v1.0.0.exe: installer created with Inno Setup
To create the installer locally:
- Build the app bundle:
.\build\build.ps1
- Compile the Inno Setup installer:
.\build\build_installer.ps1
This produces a standalone Windows installer in dist/.
FilesGoThere does not add itself to Windows startup: if you want it running from login, add a shortcut yourself.
- Press
Win + R, typeshell:startupand press Enter. The Startup folder opens. - Create a shortcut to
FilesGoThere.exeinside it.- Installed with the Setup:
%LOCALAPPDATA%\Programs\FilesGoThere\FilesGoThere.exe - Portable ZIP: the
FilesGoThere.exein the folder where you extracted it.
- Installed with the Setup:
Pair it with Minimize to the system tray when closing the window in the Settings tab, so the app starts quietly and waits in the notification area.
The shortcut survives an in-place update, because the program path does not change.
FilesGoThere can tell you when a newer release is published. It is disabled unless you
enable it in the Settings tab (app.check_updates in the JSON configuration), and the
first time you turn it on the app explains what it does and asks for confirmation.
When enabled, once per startup and in the background, the app asks the public GitHub API for the latest published tag and compares it with its own version. No data is sent: not your files, not the watched folders, not any information about your machine. The request is unauthenticated and there is no tracking. If the machine is offline the attempt fails silently and is not retried until the next start.
If you would rather keep the app completely offline, leave it off and use the Open the releases page button in the Settings tab whenever you want to check by hand: that opens your browser, and FilesGoThere itself never connects.
- Quit FilesGoThere from the tray icon (closing the window is not enough).
- Download the new Setup from the releases page and run it.
- There is no need to uninstall first: the installer replaces the app in place.
Your settings, the operations history and the logs live in %LOCALAPPDATA%\FilesGoThere\
and are never touched by the installer.
Because FilesGoThere is not code-signed yet, Windows SmartScreen may warn that the app is from an unknown publisher.
If that happens:
- Click
More info - Click
Run anyway
This is expected for unsigned indie software builds distributed outside the Microsoft Store.