Copy Pasta
A cross-platform file copier with a live progress bar and sane conflict handling.
What Copy Pasta is
A terminal tool for copying and moving files and folders that checks its own work: every file is hashed on both sides once it lands, and a copy that does not match is reported instead of counted. Alongside that, the two things the usual commands leave out: a live progress bar with speed, time left and size, and an explicit choice about what happens when a name already exists. Folders are walked first and then copied by a pool of worker threads, so a tree of small files moves at the speed of the disk. It also shows the machine’s CPU, memory, disk and GPU, and remembers your last ten operations and the paths you typed. Python 3.8 and three packages, on Windows, macOS, Linux and WSL.
Copy Pasta features
What it actually does.
Copy and move
Single files or whole directory trees, recursively, from one menu.
Live progress
Percentage, speed, time left and bytes done out of the total, updated as it runs.
Conflicts, decided once
Skip all, replace all, or rename all with a number added: file (1).txt.
History
The last ten operations with source, destination, time and result, plus your recent paths, and a menu entry to clear them.
System info
CPU, memory, disk, GPU and operating system in one table.
Tab completion
Every path prompt completes as you type.
Every copy checked
Once a file lands, both copies are read back a megabyte at a time and their hashes compared. A copy that does not match is reported rather than counted as done — the part the usual commands leave to faith.
Directories copy in parallel
A folder is walked first, then its files are handed to a pool of worker threads, so a tree of small files moves at the speed of the disk instead of one file at a time.
How to use Copy Pasta
From a fresh install to the thing working.
1 Install it
- Install Python 3.8 or newer.
- Run pip install rich questionary psutil.
- Save the script, fm.py, anywhere you like. There is nothing else to install.
2 Copy or move something
- Run python fm.py.
- Choose copy or move, for files or for a directory.
- Type the source and the destination. Tab completion helps.
- If names collide, choose skip, replace or rename for all of them, then watch the progress bar.
3 Check what happened
- View History lists the last ten operations and whether each one succeeded.
- Clear Cache wipes the history and the remembered paths.
4 If something is off
- Permission errors on system folders: run it with sudo, or as Administrator on Windows.
- Slow with many small files: raise the worker count in the source to match your CPU cores.
- Colours look wrong: use a true-colour terminal such as Windows Terminal, iTerm2, GNOME Terminal, Kitty or Alacritty.
Built with
Licence
Made by Kencypher. Not open source.
Copy Pasta was written by Kencypher. The source is not published and is not licensed for reuse. You have permission to run it — that is the whole of it.
You may
- Run it on as many of your own machines as you like
- Use it for anything, including commercial work
- Pass an unmodified copy to a friend, free
You may not, without asking
- Sell it or charge for access
- Re-upload or mirror it anywhere
- Rebrand it or publish it as your own
- Decompile it or lift its assets
This is enforced. Re-uploading it, repackaging it, stripping the author's name off it or passing it off as your own is copyright infringement — protected without registration under the Berne Convention — and is pursued with DMCA takedowns to the host, CDN, app store and search engine, platform reports for impersonation, and legal proceedings where the infringement is commercial, repeated, or involves falsely claiming authorship.
Asking first is free, and the answer is usually yes — kencypher56@gmail.com. The only official source is this store; a copy from anywhere else is not one Kencypher published.
Good to know
- Copies run on a thread pool, so many small files move in parallel.
- Verification is on by default. It costs a second read of both files, and it is what lets the tool say a copy succeeded rather than that a write did not error.
- The history and your remembered paths live in ~/.file_manager, as two small JSON files you can read or delete yourself. Nothing is written anywhere else.
- Reads and writes move in one-megabyte blocks, so a large file never sits in memory whole.
- It opens with an animated Bugs Bunny intro, in full RGB colour.
- A virtual environment is optional, but keeps the three packages tidy.