Skip to content

SpicyMelonCrab/ScriptLauncher

 
 

Repository files navigation

ScriptLauncher

Logo

ScriptLauncher runs scripts. That's it. It's really simple — but also powerful.

Use it to automate local tasks, simulate inputs, manage files, or send system commands from anywhere using Bitfocus Companion or a custom frontend.

✅ How to Use ScriptLauncher

  1. Download: Grab the latest release

  2. Run from Source (for development):

git clone https://github.com/josephdadams/scriptlauncher
cd scriptlauncher
yarn
yarn start
  1. Configure: Right-click the tray icon and open Settings to set your password and preferences.

🛠 Development

You'll need Node.js and Yarn. Then:

git clone https://github.com/josephdadams/scriptlauncher
cd ScriptLauncher
yarn
yarn start

Build for Production

yarn build        # Transpile code
yarn dist         # Create platform-specific installers

⚡ API

ScriptLauncher exposes both Socket.IO and REST APIs for automation.

Base URL

http://localhost:8810

🔌 Socket.IO API

Use io.connect('http://localhost:8810') to get started.

Common Events

  • command — General-purpose command trigger. Send an object with:
    • command: The command name
    • password: Your password
    • Other properties depending on the command

Example:

socket.emit('command', {
    command: 'shutdown',
    password: 'admin22',
    time: 5,
})

Result Events

Each command will return a response via ${command}_result, e.g.,:

socket.on('shutdown_result', (msg) => console.log(msg))

Supported Commands (Partial List)

  • runScript — Run any local script/executable
  • shutdown, shutdown_cancel, reboot, lock
  • sendAlert, getFonts, getSystemInfo
  • moveFile, moveDatedFileInFolder, moveFileBasedOnSize
  • focusApp, quitApp
  • sendInput (with subtypes like keyPress, mouseClick, etc.)

🌐 REST API

POST /command

Send any command with JSON body:

{
    "command": "shutdown",
    "password": "admin22",
    "time": 5
}

GET /commands

Returns a list of all available commands with metadata.


🔒 Security

Most actions require the configured password for authorization. Keep this secret.


🤝 Contributing

  1. Fork this repo
  2. Create a new branch:
git checkout -b feature-name
  1. Submit a pull request with clear description

📄 License

MIT — Free to use, modify, and distribute.


🙋 Support

Have a question or idea? Use GitHub Issues to start a discussion or report a bug.


Built with 💻 by @josephdadams

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 90.7%
  • CSS 3.9%
  • HTML 3.0%
  • JavaScript 2.4%