Awesome Open Source
Awesome Open Source

user-startup Build Status npm version

Automatically run commands when the user logs in. Used in hotel and stop-server.

  • No admin privileges required
  • Cross-platform (OS X, Linux and Windows)


npm install user-startup --save


Create a new instance.

const Startup = require('user-startup')
let startup

try {
  startup = Startup()
} catch (err) {
  // Unsupported platform

Add startup script but doesn't spawn process. Use create to create startup file and process at the same time.

  'my-script', // id
  process.execPath, // cmd
  ['/some/path/app.js'], // args
  '/some/path/out.log' // out

Remove startup script.


Note: you should check that root isn't running this code to avoid startup scripts being created in root's home directory. Use sudo-block or is-root.



Creates a new instance. Throws an error if platform isn't OS X, Linux or Windows.

add(id, cmd[, args[, out]])

  • id <String> id
  • cmd <String> command
  • args <Array> optional list of string arguments
  • out <String> optional path to output file (directory needs to exist before)

Creates startup script.

create(id, cmd[, args[, out]])

Creates a startup script and spawns process.


Removes startup script.


Returns startup script directory.


Returns startup script path.

How it works

  • On OS X, it creates a plist file in ~/Library/LaunchAgents
  • On Linux, it creates a desktop file in ~/.config/autostart
  • On Windows, it creates a vbs script in AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup


MIT - Typicode

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (68,779
plist (26

Find Open Source By Browsing 7,000 Topics Across 59 Categories