Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »


0.1.3 • Public • Published

aspm - Atom-Shell package manager

build status dependencies npm version

A node CLI script like npm but for Atom-Shell. Install and build npm-modules for Atom-Shell.

aspm is designed as a replacement for npm if you're working on an Atom-Shell project.

Warning: May be unreliable at the moment.

Table of Contents


Since you're using Atom-Shell you most likely have those installed already.

  • node & npm(global)
  • node-gyp(global), also fulfill it's requirements.


Install (preferred globally) with npm install aspm -g.


  • Install globally with npm. npm install -g aspm
  • Add some configuration to your package.json. (See Configuration. This is optional but highly recommended.)
  • Now use aspm in place of npm in your project.


  Usage: aspm [options] [command]


    install|i [module]  install module (fetch & build)
    fetch|f [module]    fetch module
    build|b <module>    build module


    -h, --help                        output usage information
    -V, --version                     output the version number
    -t, --target <version>            Atom-Shell version
    -a, --arch <arch>                 target architecture
    -p, --target-platform <platform>  target platform
    -s, --save                        save as dependency to package.json
    -s, --save-dev                    save as devDependency to package.json
    -g                                install globally with normal npm
    --tarball [url/path]              install from [remote] tarball
    --quiet                           don't say anything

Configuration (optional)

You can (and should to make things more convenient) configure default values for target, arch and platform in your package.json.

  "config": {
    "atom-shell": {
      "version": "0.19.5",
      "arch": "ia32",
      "platform": "win32"

This way you can use it just like npm without additional parameters (for basic tasks as shown in usage).

Overriding configuration

You can always set/override some or all configuration values. For example: aspm install --target 0.19.5 --arch ia32.

Without configuration

Important: If you don't specify default values, you'll always have to provide at least a target and arch.


Please note that sqlite3 as an example does not work at the moment because of node-pre-gyp.

# Install all modules from package.json
aspm install

# Install specific module and save as dependency in package.json
aspm install sqlite3 --save

# Install specific module in a specific version and save as dependency in package.json
aspm install sqlite3@3.0.4 --save

# Install multiple module and save as dependency in package.json
aspm install sqlite3 async --save

# Install module from tarball
# In contrast to npm you have to specify the module name here too.
aspm install sqlite3 --tarball https://github.com/mapbox/node-sqlite3/archive/master.tar.gz --target 0.19.5 --arch ia32

# Build a specific module for a specific target
aspm build sqlite3 --target 0.19.5 --arch ia32

# fetch all modules from package.json, then build all in a separate step
aspm fetch
aspm build

How it works

Under the hood

To fetch the modules we just call out to npm with --ignore-scripts. To build and node-gyp with some additional arguments.

Support for modules that use node-pre-gyp

We have basic support for compiling modules that use node-pre-gyp (i.e. sqlite3) by faking some stuff.


There may or may not be several (maybe better?) alternatives to this.

I haven't looked into these, yet.


npm i aspm

DownloadsWeekly Downloads






Last publish


  • avatar