Menu

Tree [7a7b19] main /
 History

HTTPS access


File Date Author Commit
 .claude 2026-02-27 machinewrapped machinewrapped [69bb65] Stop tracking settings.local.json
 .github 2026-03-16 machinewrapped machinewrapped [5c47d5] Bump GitHub Actions to Node.js 24 compatible ve...
 .vscode 2026-03-14 machinewrapped machinewrapped [9c4160] Review comments addressed or ignored.
 Docs 2026-03-16 machinewrapped machinewrapped [6367b9] Some polish items
 SmartCopy.App 2026-03-15 machinewrapped machinewrapped [35ce29] Build standalone releases
 SmartCopy.Core 2026-03-18 machinewrapped machinewrapped [35239a] comments addressed
 SmartCopy.Tests 2026-03-18 machinewrapped machinewrapped [35239a] comments addressed
 SmartCopy.UI 2026-03-17 machinewrapped machinewrapped [b97c42] refactor: separate DirectoryTreeNode into typed...
 TestData 2026-02-23 machinewrapped machinewrapped [bc4bc0] Update /mem/target to /mem/Mirror
 scripts 2026-03-14 machinewrapped machinewrapped [8f9899] Gemini's version
 .editorconfig 2026-02-28 machinewrapped machinewrapped [26c34a] Suppress tedious warnings
 .gitattributes 2026-02-28 machinewrapped machinewrapped [26c34a] Suppress tedious warnings
 .gitignore 2026-03-15 machinewrapped machinewrapped [770bbb] Ignore worktrees
 AGENTS.md 2026-03-14 machinewrapped machinewrapped [3d77d3] Better validation of Extension Filter edits
 CLAUDE.md 2026-03-08 machinewrapped machinewrapped [213463] Keep Claude in line
 Directory.Build.props 2026-03-14 machinewrapped machinewrapped [9c4160] Review comments addressed or ignored.
 Directory.Build.targets 2026-03-14 machinewrapped machinewrapped [a55670] Publish profiles
 GEMINI.md 2026-03-04 machinewrapped machinewrapped [fb714b] Addressed Gemini's comments
 LICENSE 2026-02-20 machinewrapped machinewrapped [9cd402] Initial commit
 README.md 2026-03-20 machinewrapped machinewrapped [7a7b19] Update README.md
 SmartCopy2026.code-workspace 2026-03-09 machinewrapped machinewrapped [6964cf] Workspace files
 SmartCopy2026.slnx 2026-02-20 machinewrapped machinewrapped [9cd402] Initial commit
 global.json 2026-03-14 machinewrapped machinewrapped [81fdf7] Be less fussy about versions

Read Me

SmartCopy 2[026]

A tool for working with large directories that aims to combine the steerability and configurability of a GUI with the power and flexibility of command line tools.

This is an evolution of SmartCopyTool (https://sourceforge.net/projects/smartcopytool/), itself an evolution of a tool I wrote around 2 decades ago to provide an alternative to Windows Explorer for managing large directories. File management in Windows has improved a lot since those days, but it still lacks some features that made SmartCopyTool useful.

SmartCopy 2 is a complete rewrite, using modern .NET technologies and a more sophisticated UI framework. It is cross-platform and supports advanced workflows, which can be configured and saved as presets.

SmartCopy 2<span>[026]</span>

The principles that drive the design of SmartCopy 2 are:

  • Composable pipelines
  • Selective operations
  • User control and configuration
  • Safety and preview

Installation

Pre-built binaries are available on the Releases page for Windows, Linux, and macOS. Unzip anywhere and run, there is no installer.

Alternatively, you can install it via a package manager:

macOS / Linux / WSL

brew tap machinewrapped/smartcopy
brew install smartcopy

Note: The macOS binary is not code-signed. On first launch, right-click → Open to bypass Gatekeeper.

Linux (AppImage)

Or download the x86_64.AppImage from the Releases page — no installation required:

chmod +x SmartCopy-*-x86_64.AppImage
./SmartCopy-*-x86_64.AppImage

Windows

winget install machinewrapped.SmartCopy

Features

Directory tree view

  • View the contents of a directory as a hierarchy, and select which files and folders to include in the pipeline
  • Progressive scanning allows you to interact with the tree whilst deeper levels are still being scanned
  • Filesystem watcher — detects exteral changes to the directory, on supported file systems
  • Bookmark frequently used paths to quickly select them as the source or destination of an operation
  • Save and restore selections in .txt, .m3u or .sc2sel format

Filtering

  • Composable filter chain — combine filters to determine which files are included in the working set
  • Filter types: file extension, wildcard pattern, date range, size range, file attributes
  • Mirror filter — include or exclude files that exist in another location
  • Save filter chains as named presets

Transform pipeline

  • Build a sequence of actions to perform - copy, move, delete
  • Selected, filtered file list is used as the source for the operation
  • Apply transforms such as flattening the directory hierarchy or renaming files
  • Preview before executing to see exactly what will happen to each folder or file
  • Safe delete via trash/recycle bin (if supported on the file system)
  • Save pipelines as presets, or complete workflows

How it works

The UI is organized as a left-to-right data flow:

  1. Filters (left panel) — Filters narrow the directory tree and file list, defining which files are selectable.
  2. Directory tree + file list (centre) — browse the source directory and select files and folders to act on.
  3. Transform pipeline (bottom) — define a sequence of actions to perform with the selected files.

Platform support

Feature Windows Linux macOS
Local filesystem Yes Yes Yes
Network filesyste (SMB) Yes Yes Yes
Filesystem watcher Yes Yes Yes
Trash / recycle bin Yes Yes Yes

Building and running from source

Requires .NET 10 SDK (dotnet.microsoft.com).

# Build
dotnet build

# Run (watch mode for development)
dotnet watch run --project SmartCopy.App

# Run tests
dotnet test

# Publish self-contained single-file executable
dotnet publish SmartCopy.App/SmartCopy.App.csproj -p:PublishProfile=win-x64

License

MIT

MongoDB Logo MongoDB