
Mac app and command line for Dropbox
Make a whole batch of Dropbox files local in one command
Give Make Files Local a list of cloud-only files. Dropbox downloads each one into its original folder. You get back every file's name, path, size and result. No file opens in a viewer.
Repository access is limited for now. No download is published yet.
Batch example
One command, a result for every file
With --jobs 3, up to 3 files download at once. Each result prints the moment its file finishes, so small files report while large videos are still on their way.
make-files-local --files-from paths.txt --jobs 3 --jsonlOpening 4 files with up to 3 workers. Batch 3F2B8C1D-6A4E-4F0B-9C55-1D7E2A9B0C44.{"status":"ready","inputIndex":4,"name":"budget.xlsx","sizeBytes":48211,"downloadState":"available"} [1/4] ready: "/Users/you/Dropbox/Project/budget.xlsx" {"status":"ready","inputIndex":3,"name":"floor-plan.pdf","sizeBytes":4812330,"downloadState":"downloaded"} [2/4] ready: "/Users/you/Dropbox/Project/floor-plan.pdf" {"status":"ready","inputIndex":2,"name":"interview.mp4","sizeBytes":862114907,"downloadState":"downloaded"} [3/4] ready: "/Users/you/Dropbox/Project/interview.mp4" {"status":"ready","inputIndex":1,"name":"drone-footage.mov","sizeBytes":1284652031,"downloadState":"downloaded"} [4/4] ready: "/Users/you/Dropbox/Project/drone-footage.mov" Finished: 4 ready, 0 failed, 0 timed out.statusready,failedortimeoutfor each filesizeBytes- the file's size in bytes, ready for a script to check or sum
downloadStatedownloadedwhen a cloud-only file came down,availablewhen its content was already accessible
Download a batch in 3 steps
List the files
Write one path per line in a UTF-8 text file called
paths.txt. Type each filename exactly as it appears, with its spaces and apostrophes. Leave out shell quotes./Users /you /Dropbox /Project /drone-footage.mov /Users /you /Dropbox /Project /interview.mp4 /Users /you /Dropbox /Project /floor-plan.pdf /Users /you /Dropbox /Project /budget.xlsx Run the batch
Point the command at your list. Each file gets up to 600 seconds by default. Change that with
--timeout.make-files-local --files-from paths.txt --jobs 3 --jsonl > results.jsonlUse the ready files
A failed or timed-out file gets its own error message. The rest of the batch keeps going. Pull out the paths that are ready:
jq -r 'select(.status == "ready") | .path' results.jsonl
Prefer a window? Open the Mac app, click Open files… or drag files into the table. It keeps a history with each file's full path and exact size.
For AI agents and scripts
Hand your agent a folder and get clean JSON back
Any agent with terminal access on your Mac can run Make Files Local. Results go to stdout as JSON Lines. Progress and the summary go to stderr, so your parser only sees data.
The repository includes an agent skill with the whole workflow, from writing the list to retrying the files that failed.
| Code | Meaning |
|---|---|
| 0 | every file is ready, or the input was empty |
| 2 | at least one file failed or timed out |
| 1 | an input, setup or output error |
cat paths.txt | make-files-local --jsonlfind ~/Dropbox/Project -type f -print0 | make-files-local -0 --jobs 3 --jsonl make-files-local --jsonl <<'FILES'
/Users/you/Dropbox/Project/interview.mp4
FILES What you need
- an Apple Silicon Mac
- macOS 13 or later
- Dropbox Desktop running and signed in
- an internet connection and enough free disk space
Files stay in their original Dropbox folders. Dropbox may later return a file to online-only, so run its path again when you need fresh content.