A faster copy path for Windows Explorer.
Roco redirects Explorer file transfers to Windows' built-in Robocopy engine,
combining familiar copy-and-paste workflows with high-throughput directory copying.
English | 简体中文
Windows Explorer handles large individual files well, but copying a project directory with thousands of small files can be disproportionately slow. Roco keeps the Explorer workflow and replaces the transfer path with the system-provided robocopy.exe.
Once enabled, Roco handles file paste, Explorer's Paste commands, and filesystem drag-and-drop. Text, images, and other non-file clipboard content remain untouched.
Roco is a user-level application: it requires no administrator privileges, installs no service, and adds no third-party copy engine.
- Explorer-native workflow - keep using
Ctrl+C,Ctrl+X,Ctrl+V, context menus, the command bar, and drag-and-drop. - Robocopy performance - directory transfers use
/MT:32; individual files of at least 64 MiB also use unbuffered I/O with/J. - Small-file acceleration - reference data indicates roughly 438% to 766% higher effective speed, averaging about 551% (
6.5xthroughput and84.6%less elapsed time) across three small-file workloads; actual results vary by system. - Copy and move support - clipboard cut semantics are preserved, and sources are removed only after a successful move.
- Conflict handling - choose overwrite, skip, or cancel before a copy starts; move conflicts offer overwrite or cancel.
- Lightweight native UI - an indeterminate waveform and elapsed time show that the operation is active without parsing unreliable pseudo-progress.
- Silent sign-in startup - a dedicated GUI-subsystem launcher starts Roco without opening a console window and waits for Explorer interception to become ready.
- Automatic interface language - installation detects the Windows display language; Simplified Chinese is used for Chinese systems and English is the fallback for other languages.
- Graceful fallback - virtual Shell locations and unsupported operations continue through Explorer's native engine.
- Clean lifecycle - one command enables Roco at sign-in, and one command removes its user-level installation and state.
- Windows 10 version 1809 or later, or Windows 11
- x64-compatible system for the published package
- No separate Robocopy installation is required
Download the latest Windows package from GitHub Releases. If you use the ZIP package, extract all files into one directory and run:
.\roco.exe install --startKeep roco.exe, roco-daemon.exe, and roco_explorer_agent.dll together while installing. Roco copies all three runtime files into its installation directory.
Roco installs to %LOCALAPPDATA%\Programs\Roco, adds that directory to the current user's PATH, starts the background daemon, and enables launch at sign-in. Open a new terminal before using roco without a path.
During installation or upgrade, Roco detects the current Windows user interface language and stores the selection in %LOCALAPPDATA%\Roco\language. CLI help, version and status output, lifecycle messages, conflict dialogs, and the activity window then use that language. Simplified Chinese and English are currently included; unsupported languages use English.
Starting with Roco 0.2.0, upgrades use the same command as a clean installation. Download the new ZIP, extract all files into one directory, and run:
.\roco.exe install --startThere is no need to run roco stop or roco uninstall first. The installer stops the active daemon, replaces the installed executables, switches Explorer to a content-addressed Agent DLL, removes stale Agent files after they unlock, and starts the upgraded version. An older Agent that is still mapped by Explorer cannot block the update.
roco install --start # Install and enable Roco
roco start # Enable interception and launch at sign-in
roco status # Show installation, daemon, and auto-start state
roco stop # Restore the Windows copy path
roco uninstall # Remove Roco and its user-level stateroco stop does not uninstall the program. Run roco start whenever you want to enable it again.
| Entry point | Roco behavior |
|---|---|
Ctrl+V / Shift+Insert |
Handles file clipboard data in Explorer and on the desktop |
| Context-menu Paste | Redirects supported filesystem transfers through the Explorer Agent |
| Command-bar Paste | Redirects supported filesystem transfers through the Explorer Agent |
| Filesystem drag-and-drop | Handles supported copy and move batches |
| Text, image, or app clipboard data | Passes through unchanged |
| ZIP, MTP, Recycle Bin, and virtual Shell locations | Falls back to Explorer |
Roco only intercepts Explorer and desktop file operations. Paste behavior in terminals, editors, browsers, and other applications is not modified.
flowchart LR
A["Explorer action"] --> B{"File operation?"}
B -->|"Keyboard paste"| C["Roco daemon"]
B -->|"Menu or drag-and-drop"| D["Explorer Agent"]
D --> C
B -->|"Unsupported"| E["Explorer native engine"]
C --> F["Resolve destination and conflicts"]
F --> G["robocopy.exe"]
G --> H["Complete or report failure"]
The daemon uses the canonical Shell clipboard formats produced by Explorer, including Preferred DropEffect, to distinguish copy from move. A companion roco_explorer_agent.dll bridges Explorer actions that do not pass through keyboard paste.
Each top-level source becomes one Robocopy invocation. Roco preserves file data, attributes, and timestamps, excludes junction traversal, and treats Robocopy exit codes 0 through 7 as successful outcomes. Failed or cancelled operations never clear a cut source.
The activity window is shown immediately when copying begins and closes as soon as the operation completes. It remains topmost for the lifetime of the task while still being draggable. The renderer uses a fixed refresh rate and double buffering to keep UI work out of the copy path.
For the complete process model and failure boundaries, see Architecture.
Roco targets Windows and uses the Rust 2024 edition. Building the complete workspace produces both the executable and Explorer Agent DLL.
git clone https://github.com/wenshui330/roco.git
cd roco
cargo build --workspace --release
.\target\release\roco.exe install --startUseful development checks:
cargo fmt --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warningsroco uninstallThis stops the daemon, restores Explorer's original entry points, removes Roco from the current user's PATH and sign-in startup, deletes its log and configuration state, and schedules the installed program directory for removal.
Roco is available under the MIT License.