spawnflow
v1.0.8
Published
___________________________________________________________________________________________
Readme
SpawnFlow CLI Automate Your Entire Dev Environment with One Command
SpawnFlow is a lightweight, cross-platform CLI tool that lets developers launch complete multi-project environments instantly. Open editors, spin up terminals, run commands, and launch apps — all from a single workspace definition.
If you switch between frontend/backend, run multiple scripts, or repeatedly set up local dev sessions, SpawnFlow eliminates all of that manual effort.
Designed by a developer. For developers.
🚀 Features
Workspace Automation
Create isolated workspaces that define:
• Project paths
• Commands to run
• Editors to open
• Apps / URLs to launch
Multi-Entry Support
Each workspace supports unlimited entries (frontend, backend, microservices, etc.).
Automatic Terminal Launch
SpawnFlow opens real system terminals:
• Linux: kgx, GNOME Terminal, Konsole, Tilix, Kitty, Xterm, Alacritty
• Windows: Terminal (wt), PowerShell, CMD
• macOS: Shell-compatible terminals
Each terminal runs your commands and stays open interactively.
Editor Integration
Built-in support for:
vscode, cursor, vim, nvim, subl, atom, kate, gedit, nano, JetBrains IDEs, etc.
App Launcher
Automatically launches:
• Browsers (google-chrome-stable, brave, firefox)
• Tools (obsidian, postman, etc.)
• Local files and URLs
Cross-Platform & Lightweight
100% Node.js. No background daemons. No heavy dependencies.
📦 Installation
Global install (recommended)
sudo npm install -g spawnflowConfirm installation:
spawnflow --version🧑💻 Local Development Setup
git clone https://github.com/Dhiraj-4/SpawnFlow.git
cd SpawnFlow
npm install
sudo npm linkAny changes you make will instantly apply to the global CLI.
⚙️ Usage
- Create a Workspace
spawnflow create <WorkspaceName>You will be guided through:
• Workspace name
• Editor selection
• Entry paths
• Commands (comma-separated)
• App launchers
Example:
🚀 Creating new workspace: DevsCorner
✔ Workspace name: DevsCorner
✔ Choose your editor: vscode
✔ Path: /home/dhiraj/Desktop/DevsCorner/frontend
✔ Open in editor? Yes
✔ Commands: npm run dev
✔ Add another entry? Yes
✔ Path: /home/dhiraj/Desktop/DevsCorner/backend
✔ Open in editor? Yes
✔ Commands: npm run dev
✔ Add another app? Yes
✔ App name: google-chrome-stable
✔ App url: http://localhost:5173
✔ Add another app? NoSpawnFlow then creates:
workspaces/
└── DevsCorner/
└── config.json- Start a Workspace
spawnflow start <WorkspaceName>Example:
🚀 Starting workspace: DevsCorner
📁 Setting up: /home/dhiraj/Desktop/DevsCorner/frontend
📝 Opening in vscode...
💬 Launching terminal → npm run dev
📁 Setting up: /home/dhiraj/Desktop/DevsCorner/backend
📝 Opening in vscode...
💬 Launching terminal → npm run dev
🧩 Launching additional apps...
🧭 Launching app: google-chrome-stable http://localhost:5173
🎉 All entries and apps launched successfully!Everything opens automatically — terminals, editors, commands, and browser windows.
- List All Workspaces
spawnflow lsOutput:
📂 Available Workspaces:
- DevsCorner (editor: vscode, apps: google-chrome-stable)
- Portfolio (editor: cursor, apps: none)- Remove a Workspace
spawnflow remove <WorkspaceName>Example:
🗑️ Workspace "DevsCorner" removed successfully.🧩 Workspace Structure
Each workspace has a simple JSON file describing your environment.
Example: workspaces/devscorner/config.json
{
"name": "devscorner",
"editor": "vscode",
"entries": [
{
"path": "/home/dhiraj/Desktop/DevsCorner/frontend",
"openInEditor": true,
"commands": ["npm run dev"]
},
{
"path": "/home/dhiraj/Desktop/DevsCorner/backend",
"openInEditor": true,
"commands": ["npm run dev"]
}
],
"apps": [
{
"name": "google-chrome-stable",
"url": "http://localhost:5173"
}
]
}Everything SpawnFlow does comes from this one config.
🧠 Developer Documentation Project Structure
SpawnFlow/
├── src/
│ └── commands/
│ ├── createWorkspace.js
│ ├── listWorkspaces.js
│ ├── removeWorkspace.js
│ └── startWorkspace.js
│
├── workspaces/
│ └── <workspace-name>/config.json
│
├── index.js
├── package.json
└── README.md🛠 Supported Editors
| Editor | Command |
| -------- | ---------- |
| VSCode | code |
| Cursor | cursor |
| Vim | vim |
| Neovim | nvim |
| Sublime | subl |
| Atom | atom |
| Emacs | emacs |
| WebStorm | webstorm |
| PyCharm | pycharm |
| IntelliJ | idea |
| Eclipse | eclipse |
| Gedit | gedit |
| Kate | kate |
| Nano | nano |
| None | — |
🖥 Supported Terminals
SpawnFlow auto-detects these:
Windows Terminal (wt.exe)
PowerShell
CMD
kgx (GNOME Console)
gnome-terminal
konsole
tilix
alacritty
kitty
xtermFallback: You can override terminal manually:
TERMINAL=kgx spawnflow start DevsCorner 🤝 Contributing
Pull requests are welcome!
git clone https://github.com/Dhiraj-4/SpawnFlow.git
cd SpawnFlow
npm install
git checkout -b feature/<name>Commit + push:
git add .
git commit -m "Added <feature>"
git push origin feature/<name>Open a PR on GitHub.
🪪 License
MIT License © 2025 Dhiraj Londhe
❤️ Credits
SpawnFlow is built to eliminate repetitive dev setup tasks and give developers the freedom to focus on building instead of configuring.
