
A developer-centric script runner & task orchestrator for modern monorepos.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
scriptlane is a next-generation CLI tool for developers and teams who want full control and a beautiful experience when running and organizing scripts across projects.
Whether you need a better workflow than npm run
, want to orchestrate multiple scripts in parallel, or prefer a robust TUI for scripts in your monorepo—scriptlane has you covered.
- 🖥️ Modern TUI: Minimal, beautiful interactive interface for discovering and running scripts.
- 🏃 Concurrent Tasks: Select and run multiple commands in parallel with real-time logs.
- 🏷️ Script Metadata: Organize scripts with groups, descriptions, and aliases.
- 🛠️ Custom Scripts: Use a typed
scripts.config.ts
for full flexibility (no more JSON lock-in). - ⚡ CI/CD Ready: Run any script directly in non-interactive mode for pipelines:
scriptlane -s "build"
- 📝 Copy-paste Logs: Easily select and copy output with your mouse.
- 💻 Zero lock-in: Runs your current
package.json
scripts out of the box, supports merging with custom config. - 🔒 TypeScript-first: Built with TypeScript for safety and extensibility.
Global installation
npm install -g scriptlane
Global instalation
npm install --save-dev scriptlane
or use with npx (no install)
npx scriptlane
- Add a scripts.config.ts to your project root:
import type { ScriptsConfiguration } from 'scriptlane';
const scripts: ScriptsConfiguration = {
Build: { cmd: 'npm run build', group: 'Frontend', description: 'Build frontend' },
Test: { cmd: 'npm run test', group: 'CI', description: 'Run tests' },
};
export default scripts;
- Run scriptlane in your project directory:
npx scriptlane
npx scriptlane
- Use the arrow keys and space/enter to select and run scripts.
npx scriptlane -s "Build" # Command name or alias
- Runs the script named "Build" and exits with its exit code.
Flag | Description |
---|---|
-c, --config | Path to custom scripts config file |
-d, --debug | Enable debug logging |
-p, --preset | Theme preset for the CLI |
-hs, --hide-scripts | Hide package.json scripts |
-s, --script | Run a specific script by alias/name and exit |
-h, --help | Show help |
For more examples, see the documentation
- [x] TUI for multi-select and parallel scripts
- [x] Non-interactive CI/CD mode
- [ ] Cross-platform shell compatibility
- [ ] Plugin system for script extensions
- [ ] Custom keybindings and themes
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the Unlicense License. See LICENSE.txt
for more information.
Your Name - @galfrevn - galfre.vn@gmail.com
Project Link: https://github.com/galfrevn/scriptlane