     installArgs.push('--msvs_version=2012') if config.isWin32()
     env = _.extend({}, process.env, HOME: @atomNodeDirectory)
     env.USERPROFILE = env.HOME if config.isWin32()
+    installOptions = {env}
+    installOptions.cwd = options.cwd if options.cwd
 
-    @fork @atomNpmPath, installArgs, {env}, (code, stderr='', stdout='') ->
-      if code is 0
-        process.stdout.write '\u2713\n'.green
-        callback()
-      else
-        process.stdout.write '\u2717\n'.red
-        callback(stdout.red + stderr.red)
+    @fork(@atomNpmPath, installArgs, installOptions, callback)
 
   installPackage: (options, modulePath, callback) ->
     commands = []

    commands = []
    commands.push(@installNode)
    commands.push (callback) => @installModules(options, callback)

    async.waterfall commands, callback


  installModules: (options, callback) =>
    process.stdout.write 'Installing modules '

    @forkInstallCommand options, (code, stderr='', stdout='') =>
      if code is 0
        process.stdout.write '\u2713\n'.green
        callback()
      else
        process.stdout.write '\u2717\n'.red
        callback(stdout.red + stderr.red)

  forkInstallCommand: (options, callback) ->
    installArgs = ['--userconfig', config.getUserConfigPath(), 'install']
    installArgs.push("--target=#{config.getNodeVersion()}")
    installArgs.push('--arch=ia32')
