reaper-cli
v1.0.1
Published
Multi-repository workspace manager
Maintainers
Readme
Reaper CLI ⚡️
A blazing-fast, multi-repository workspace orchestrator for modern engineering teams.
Reaper CLI solves the repetitive pain of managing multi-repo architectures (e.g., separate backend, frontend, and mobile repositories). Instead of context-switching between folders to run git pull, git push, or git status, Reaper allows you to control your entire workspace from a single command-line interface.
✨ Features
- Workspace Initialization: Interactive setup wizard that automatically clones all required repositories and maps out your folder structure.
- Git Orchestration: Run sequential or parallel
pullandpushoperations across all your repositories with a single command. - Commit Shortcuts: Instantly stage and commit changes to a specific project without changing directories.
- Status Dashboard: Get a bird's-eye view of your entire workspace with a unified Git status report (showing modified files, ahead/behind branches, and merge conflicts).
- Graceful Fallbacks: Built-in error handling and prompt-based credential fallback for private repository cloning.
🚀 Installation
Ensure you have Node.js (v16+) and Git installed.
Install the CLI globally via npm:
npm install -g reaper-cli(Alternatively, you can run it without installing using npx reaper-cli init)
📖 Usage Guide
Reaper operates out of a configuration file (.reaper.json) that dictates where your projects live.
1. Initialize a Workspace
To start, navigate to a new empty folder where you want your workspace to live, and run:
reaper initThe interactive wizard will ask you for a project type (e.g., Fullstack, Mobile App) and stack composition (e.g., backend + web). It will then prompt for the respective Git URLs, automatically clone them, and generate a .reaper.json file.
2. Link Custom Projects
If you have a custom setup that doesn't fit the standard templates, you can use the link command:
reaper linkThis command allows you to manually specify the number of projects, their aliases, paths, and clone URLs.
3. Check Workspace Status
Get a high-level overview of all repositories in your workspace:
reaper statusOutput will show the current branch, uncommitted changes, and whether you are ahead or behind the remote branch.
3. Pull All Repositories
Synchronize your entire workspace by pulling the latest changes for all projects in parallel:
reaper pull all4. Push All Repositories
Push committed changes from all projects to their respective remotes:
reaper push all5. Commit to a Specific Project
Stage all changes (git add .) and commit them to a specific project without needing to cd into its directory:
reaper commit <project-alias> "Your commit message here"Example:
reaper commit web "fix: resolve login screen hydration error"⚙️ Configuration (.reaper.json)
When you run reaper init, a .reaper.json file is created at the root of your workspace. It looks like this:
{
"name": "my-startup-workspace",
"projects": {
"backend": "./backend",
"web": "./web",
"mobile": "./mobile"
}
}Note: You can manually edit this file to add or remove projects. Reaper commands will automatically resolve the paths.
🛠 Tech Stack
- TypeScript / Node.js
- Commander.js - CLI routing & argument parsing
- Inquirer.js - Interactive terminal prompts
- simple-git - Git automation engine
- Chalk & Ora - Terminal styling and progress spinners
📄 License
MIT License. See LICENSE for more information.
