Rootline safely reproduces a directory structure from one location into another without copying files or deleting existing content.
Release status:
2.0.0is a release candidate. Stable npm and desktop downloads are available only after the fail-closed release workflows complete with real signing and deployment credentials. Check GitHub Releases and npm before installing; this repository does not claim unpublished artifacts are live.
- Choose: use the desktop application on macOS Universal or Windows x64/ARM64, or use the
folder-syncCLI with Node.js 20 or newer. - Install: after
2.0.0appears on the official release pages, download a signed installer or runnpm install --global folder-structure-sync@2.0.0. - Authenticate (optional): sign in only if you want saved profiles synchronized. Rootline works fully offline and never requires an account for local synchronization.
- Try safely: preview before applying:
folder-sync ./source ./target --dry-run.
| Capability | Desktop | CLI |
|---|---|---|
| Scan source and target directories | Yes | Yes |
| Preview and select missing directories | Yes | Yes |
| Create missing directories additively | Yes | Yes |
| Copy files or delete content | Never | Never |
| Save local profiles and run history | Yes | No |
| Optional hosted profile sync | Yes | No |
Rootline rejects source/target overlap, skips symbolic links and Windows junctions, revalidates a plan immediately before applying it, and keeps filesystem data and run history local. Hosted sync contains complete saved profile documents—including absolute source and target paths—but never directory trees, files, file contents, or run history. Rootline has no usage telemetry.
folder-sync <source> <target> [options]
--dry-run Preview without creating directories
--verbose Print scan details
--auto Select all missing directories without prompting
--config PATH Read an explicit JSON configuration
--json Emit one JSON document and never prompt
--json is intended for automation and must be paired with --dry-run or --auto; it never prompts or emits progress/color output. Exit code 0 means success or a deliberate no-op, 1 means a filesystem/configuration/apply failure, and 2 means invalid command usage.
- Documentation hub
- Configuration reference
- Architecture and data boundaries
- Migrate from npm 1.1.0
- Privacy
- Operations
- Release process
- Security policy
- Contributor workflow
Rootline remains available under the ISC License.
- Rootline documentation - Complete user, operator, and contributor navigation.
- npm 1.1.0 recovery evidence - Provenance of the preserved legacy behavior.