diff --git a/js-tools/jspm-skeleton/.vscode/launch.json b/js-tools/jspm-skeleton/.vscode/launch.json
new file mode 100644
index 000000000..5ae40c98f
--- /dev/null
+++ b/js-tools/jspm-skeleton/.vscode/launch.json
@@ -0,0 +1,21 @@
+{
+    // Use IntelliSense to learn about possible Node.js debug attributes.
+    // Hover to view descriptions of existing attributes.
+    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "type": "node",
+            "request": "launch",
+            "name": "Launch Program",
+            "program": "${workspaceRoot}/test.js"
+        },
+        {
+            "type": "node",
+            "request": "attach",
+            "name": "Attach to Process",
+            "address": "localhost",
+            "port": 5858
+        }
+    ]
+}
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/config.js b/js-tools/jspm-skeleton/config.js
new file mode 100644
index 000000000..64762dc7d
--- /dev/null
+++ b/js-tools/jspm-skeleton/config.js
@@ -0,0 +1,199 @@
+System.config({
+  baseURL: "/",
+  defaultJSExtensions: true,
+  transpiler: "babel",
+  babelOptions: {
+    "stage": 0,
+    "optional": [
+      "runtime",
+      "optimisation.modules.system"
+    ]
+  },
+  paths: {
+    "github:*": "jspm_packages/github/*",
+    "npm:*": "jspm_packages/npm/*",
+    "*": "src/*"
+  },
+  map: {
+    "aurelia-bootstrapper": "npm:aurelia-bootstrapper@2.0.1",
+    "aurelia-framework": "npm:aurelia-framework@1.1.0",
+    "aurelia-pal-browser": "npm:aurelia-pal-browser@1.1.0",
+    "babel": "npm:babel-core@5.8.38",
+    "babel-runtime": "npm:babel-runtime@5.8.38",
+    "core-js": "npm:core-js@1.2.7",
+    "github:jspm/nodelibs-assert@0.1.0": {
+      "assert": "npm:assert@1.4.1"
+    },
+    "github:jspm/nodelibs-buffer@0.1.0": {
+      "buffer": "npm:buffer@3.6.0"
+    },
+    "github:jspm/nodelibs-path@0.1.0": {
+      "path-browserify": "npm:path-browserify@0.0.0"
+    },
+    "github:jspm/nodelibs-process@0.1.2": {
+      "process": "npm:process@0.11.9"
+    },
+    "github:jspm/nodelibs-util@0.1.0": {
+      "util": "npm:util@0.10.3"
+    },
+    "github:jspm/nodelibs-vm@0.1.0": {
+      "vm-browserify": "npm:vm-browserify@0.0.4"
+    },
+    "npm:assert@1.4.1": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.2",
+      "util": "npm:util@0.10.3"
+    },
+    "npm:aurelia-binding@1.2.0": {
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0",
+      "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0"
+    },
+    "npm:aurelia-bootstrapper@2.0.1": {
+      "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
+      "aurelia-framework": "npm:aurelia-framework@1.1.0",
+      "aurelia-history": "npm:aurelia-history@1.0.0",
+      "aurelia-history-browser": "npm:aurelia-history-browser@1.0.0",
+      "aurelia-loader-default": "npm:aurelia-loader-default@1.0.1",
+      "aurelia-logging-console": "npm:aurelia-logging-console@1.0.0",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0",
+      "aurelia-pal-browser": "npm:aurelia-pal-browser@1.1.0",
+      "aurelia-polyfills": "npm:aurelia-polyfills@1.2.0",
+      "aurelia-router": "npm:aurelia-router@1.2.1",
+      "aurelia-templating": "npm:aurelia-templating@1.3.0",
+      "aurelia-templating-binding": "npm:aurelia-templating-binding@1.3.0",
+      "aurelia-templating-resources": "npm:aurelia-templating-resources@1.3.1",
+      "aurelia-templating-router": "npm:aurelia-templating-router@1.1.0"
+    },
+    "npm:aurelia-dependency-injection@1.3.0": {
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-event-aggregator@1.0.1": {
+      "aurelia-logging": "npm:aurelia-logging@1.3.0"
+    },
+    "npm:aurelia-framework@1.1.0": {
+      "aurelia-binding": "npm:aurelia-binding@1.2.0",
+      "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+      "aurelia-loader": "npm:aurelia-loader@1.0.0",
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0",
+      "aurelia-path": "npm:aurelia-path@1.1.1",
+      "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0",
+      "aurelia-templating": "npm:aurelia-templating@1.3.0"
+    },
+    "npm:aurelia-history-browser@1.0.0": {
+      "aurelia-history": "npm:aurelia-history@1.0.0",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-loader-default@1.0.1": {
+      "aurelia-loader": "npm:aurelia-loader@1.0.0",
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-loader@1.0.0": {
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-path": "npm:aurelia-path@1.1.1"
+    },
+    "npm:aurelia-logging-console@1.0.0": {
+      "aurelia-logging": "npm:aurelia-logging@1.3.0"
+    },
+    "npm:aurelia-metadata@1.0.3": {
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-pal-browser@1.1.0": {
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-polyfills@1.2.0": {
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-route-recognizer@1.1.0": {
+      "aurelia-path": "npm:aurelia-path@1.1.1"
+    },
+    "npm:aurelia-router@1.2.1": {
+      "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+      "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
+      "aurelia-history": "npm:aurelia-history@1.0.0",
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-path": "npm:aurelia-path@1.1.1",
+      "aurelia-route-recognizer": "npm:aurelia-route-recognizer@1.1.0"
+    },
+    "npm:aurelia-task-queue@1.2.0": {
+      "aurelia-pal": "npm:aurelia-pal@1.3.0"
+    },
+    "npm:aurelia-templating-binding@1.3.0": {
+      "aurelia-binding": "npm:aurelia-binding@1.2.0",
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-templating": "npm:aurelia-templating@1.3.0"
+    },
+    "npm:aurelia-templating-resources@1.3.1": {
+      "aurelia-binding": "npm:aurelia-binding@1.2.0",
+      "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+      "aurelia-loader": "npm:aurelia-loader@1.0.0",
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0",
+      "aurelia-path": "npm:aurelia-path@1.1.1",
+      "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0",
+      "aurelia-templating": "npm:aurelia-templating@1.3.0"
+    },
+    "npm:aurelia-templating-router@1.1.0": {
+      "aurelia-binding": "npm:aurelia-binding@1.2.0",
+      "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0",
+      "aurelia-path": "npm:aurelia-path@1.1.1",
+      "aurelia-router": "npm:aurelia-router@1.2.1",
+      "aurelia-templating": "npm:aurelia-templating@1.3.0"
+    },
+    "npm:aurelia-templating@1.3.0": {
+      "aurelia-binding": "npm:aurelia-binding@1.2.0",
+      "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+      "aurelia-loader": "npm:aurelia-loader@1.0.0",
+      "aurelia-logging": "npm:aurelia-logging@1.3.0",
+      "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+      "aurelia-pal": "npm:aurelia-pal@1.3.0",
+      "aurelia-path": "npm:aurelia-path@1.1.1",
+      "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0"
+    },
+    "npm:babel-runtime@5.8.38": {
+      "process": "github:jspm/nodelibs-process@0.1.2"
+    },
+    "npm:buffer@3.6.0": {
+      "base64-js": "npm:base64-js@0.0.8",
+      "child_process": "github:jspm/nodelibs-child_process@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.2",
+      "ieee754": "npm:ieee754@1.1.8",
+      "isarray": "npm:isarray@1.0.0",
+      "process": "github:jspm/nodelibs-process@0.1.2"
+    },
+    "npm:core-js@1.2.7": {
+      "fs": "github:jspm/nodelibs-fs@0.1.2",
+      "path": "github:jspm/nodelibs-path@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.2",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.2"
+    },
+    "npm:inherits@2.0.1": {
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:path-browserify@0.0.0": {
+      "process": "github:jspm/nodelibs-process@0.1.2"
+    },
+    "npm:process@0.11.9": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.2",
+      "vm": "github:jspm/nodelibs-vm@0.1.0"
+    },
+    "npm:util@0.10.3": {
+      "inherits": "npm:inherits@2.0.1",
+      "process": "github:jspm/nodelibs-process@0.1.2"
+    },
+    "npm:vm-browserify@0.0.4": {
+      "indexof": "npm:indexof@0.0.1"
+    }
+  }
+});
diff --git a/js-tools/jspm-skeleton/gulpfile.js b/js-tools/jspm-skeleton/gulpfile.js
new file mode 100644
index 000000000..ead5eedbe
--- /dev/null
+++ b/js-tools/jspm-skeleton/gulpfile.js
@@ -0,0 +1,19 @@
+var gulp = require('gulp');
+var browserSync = require('browser-sync');
+
+// this task utilizes the browsersync plugin
+// to create a dev server instance
+// at http://localhost:9000
+gulp.task('serve', function(done) {
+  browserSync({
+    open: false,
+    port: 8000,
+    server: {
+      baseDir: ['.'],
+      middleware: function (req, res, next) {
+        res.setHeader('Access-Control-Allow-Origin', '*');
+        next();
+      }
+    }
+  }, done);
+});
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/index.html b/js-tools/jspm-skeleton/index.html
new file mode 100644
index 000000000..7d2c83b3c
--- /dev/null
+++ b/js-tools/jspm-skeleton/index.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<html>
+  <head>
+    <title>Aurelia</title>
+  </head>
+  <body aurelia-app>
+    <h1>Loading...</h1>
+
+    <script src="jspm_packages/system.js"></script>
+    <script src="config.js"></script>
+    <script>
+      System.import('aurelia-bootstrapper');
+    </script>
+  </body>
+</html>
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/karma.conf.js b/js-tools/jspm-skeleton/karma.conf.js
new file mode 100644
index 000000000..916187698
--- /dev/null
+++ b/js-tools/jspm-skeleton/karma.conf.js
@@ -0,0 +1,72 @@
+module.exports = function (config) {
+  config.set({
+
+    // base path that will be used to resolve all patterns (eg. files, exclude)
+    basePath: './',
+
+
+    // frameworks to use
+    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+    frameworks: ['jspm', 'jasmine'],
+
+    jspm: {
+      config: 'src/config.js',
+      stripExtension: false,
+      loadFiles: [
+        'src/**/*.spec.js'
+      ],
+      serveFiles: [
+        'jspm_packages/**/*.js',
+        'node_modules/**/*.js',
+        'src/**/!(*.spec).js'
+      ]
+    },
+
+    // preprocess matching files before serving them to the browser
+    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+    preprocessors: {
+    },
+
+
+    // test results reporter to use
+    // possible values: 'dots', 'progress'
+    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+    reporters: ['progress'],
+
+
+    // web server port
+    port: 9876,
+
+
+    // enable / disable colors in the output (reporters and logs)
+    colors: true,
+
+
+    // level of logging
+    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+    logLevel: config.LOG_INFO,
+
+
+    // enable / disable watching file and executing tests whenever any file changes
+    autoWatch: false,
+
+
+    // start these browsers
+    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+    browsers: ['PhantomJS'],
+
+    plugins: [
+      'karma-jspm',
+      'karma-jasmine',
+      'karma-phantomjs-launcher'
+    ],
+
+    // Continuous Integration mode
+    // if true, Karma captures browsers, runs the tests and exits
+    singleRun: true,
+
+    // Concurrency level
+    // how many browser should be started simultaneous
+    concurrency: Infinity
+  })
+}
diff --git a/js-tools/jspm-skeleton/package.json b/js-tools/jspm-skeleton/package.json
new file mode 100644
index 000000000..34ffc36bc
--- /dev/null
+++ b/js-tools/jspm-skeleton/package.json
@@ -0,0 +1,34 @@
+{
+  "name": "jspm-skeleton",
+  "version": "1.0.0",
+  "description": "Skeleton Aurelia App with tests.",
+  "main": "index.js",
+  "scripts": {
+    "test": "karma start karma.conf.js"
+  },
+  "author": "‘Ben <benjamin_carmen@hms.harvard.edu>",
+  "license": "MIT",
+  "devDependencies": {
+    "browser-sync": "^2.18.8",
+    "gulp": "^3.9.1",
+    "jasmine": "^2.5.3",
+    "jspm": "^0.16.52",
+    "karma": "^1.5.0",
+    "karma-jasmine": "^1.1.0",
+    "karma-jspm": "^2.2.1",
+    "karma-phantomjs-launcher": "^1.0.2",
+    "phantomjs-prebuilt": "^2.1.14"
+  },
+  "jspm": {
+    "dependencies": {
+      "aurelia-bootstrapper": "npm:aurelia-bootstrapper@^2.0.1",
+      "aurelia-framework": "npm:aurelia-framework@^1.1.0",
+      "aurelia-pal-browser": "npm:aurelia-pal-browser@^1.1.0"
+    },
+    "devDependencies": {
+      "babel": "npm:babel-core@^5.8.24",
+      "babel-runtime": "npm:babel-runtime@^5.8.24",
+      "core-js": "npm:core-js@^1.1.4"
+    }
+  }
+}
diff --git a/js-tools/jspm-skeleton/src/app.html b/js-tools/jspm-skeleton/src/app.html
new file mode 100644
index 000000000..91c083c0d
--- /dev/null
+++ b/js-tools/jspm-skeleton/src/app.html
@@ -0,0 +1,3 @@
+<template>
+  ${message}
+</template>
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/src/app.js b/js-tools/jspm-skeleton/src/app.js
new file mode 100644
index 000000000..ce3cc1519
--- /dev/null
+++ b/js-tools/jspm-skeleton/src/app.js
@@ -0,0 +1,3 @@
+export class App {
+    message = 'hello world';
+}
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/src/app.spec.js b/js-tools/jspm-skeleton/src/app.spec.js
new file mode 100644
index 000000000..8e3c57a54
--- /dev/null
+++ b/js-tools/jspm-skeleton/src/app.spec.js
@@ -0,0 +1,8 @@
+import {App, App2} from 'src/app.js';
+
+describe('A test of app.js ', () => {
+    it('should not work',  () => {
+        var app = new App();
+        expect(app.message).toBe('hello world');
+    });
+});
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/src/config.js b/js-tools/jspm-skeleton/src/config.js
new file mode 100644
index 000000000..600005781
--- /dev/null
+++ b/js-tools/jspm-skeleton/src/config.js
@@ -0,0 +1,212 @@
+System.config(
+  (function() {
+    var config = {
+      defaultJSExtensions: true,
+      transpiler: "babel",
+      babelOptions: {
+        "stage": 0,
+        "optional": [
+          "runtime",
+          "optimisation.modules.system"
+        ]
+      },
+      paths: {
+        "github:*": "jspm_packages/github/*",
+        "npm:*": "jspm_packages/npm/*"
+      },
+      map: {
+        "aurelia-bootstrapper": "npm:aurelia-bootstrapper@2.0.1",
+        "aurelia-framework": "npm:aurelia-framework@1.1.0",
+        "aurelia-pal-browser": "npm:aurelia-pal-browser@1.1.0",
+        "babel": "npm:babel-core@5.8.38",
+        "babel-runtime": "npm:babel-runtime@5.8.38",
+        "core-js": "npm:core-js@1.2.7",
+        "github:jspm/nodelibs-assert@0.1.0": {
+          "assert": "npm:assert@1.4.1"
+        },
+        "github:jspm/nodelibs-buffer@0.1.0": {
+          "buffer": "npm:buffer@3.6.0"
+        },
+        "github:jspm/nodelibs-path@0.1.0": {
+          "path-browserify": "npm:path-browserify@0.0.0"
+        },
+        "github:jspm/nodelibs-process@0.1.2": {
+          "process": "npm:process@0.11.9"
+        },
+        "github:jspm/nodelibs-util@0.1.0": {
+          "util": "npm:util@0.10.3"
+        },
+        "github:jspm/nodelibs-vm@0.1.0": {
+          "vm-browserify": "npm:vm-browserify@0.0.4"
+        },
+        "npm:assert@1.4.1": {
+          "assert": "github:jspm/nodelibs-assert@0.1.0",
+          "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+          "process": "github:jspm/nodelibs-process@0.1.2",
+          "util": "npm:util@0.10.3"
+        },
+        "npm:aurelia-binding@1.2.0": {
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0",
+          "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0"
+        },
+        "npm:aurelia-bootstrapper@2.0.1": {
+          "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
+          "aurelia-framework": "npm:aurelia-framework@1.1.0",
+          "aurelia-history": "npm:aurelia-history@1.0.0",
+          "aurelia-history-browser": "npm:aurelia-history-browser@1.0.0",
+          "aurelia-loader-default": "npm:aurelia-loader-default@1.0.1",
+          "aurelia-logging-console": "npm:aurelia-logging-console@1.0.0",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0",
+          "aurelia-pal-browser": "npm:aurelia-pal-browser@1.1.0",
+          "aurelia-polyfills": "npm:aurelia-polyfills@1.2.0",
+          "aurelia-router": "npm:aurelia-router@1.2.1",
+          "aurelia-templating": "npm:aurelia-templating@1.3.0",
+          "aurelia-templating-binding": "npm:aurelia-templating-binding@1.3.0",
+          "aurelia-templating-resources": "npm:aurelia-templating-resources@1.3.1",
+          "aurelia-templating-router": "npm:aurelia-templating-router@1.1.0"
+        },
+        "npm:aurelia-dependency-injection@1.3.0": {
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-event-aggregator@1.0.1": {
+          "aurelia-logging": "npm:aurelia-logging@1.3.0"
+        },
+        "npm:aurelia-framework@1.1.0": {
+          "aurelia-binding": "npm:aurelia-binding@1.2.0",
+          "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+          "aurelia-loader": "npm:aurelia-loader@1.0.0",
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0",
+          "aurelia-path": "npm:aurelia-path@1.1.1",
+          "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0",
+          "aurelia-templating": "npm:aurelia-templating@1.3.0"
+        },
+        "npm:aurelia-history-browser@1.0.0": {
+          "aurelia-history": "npm:aurelia-history@1.0.0",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-loader-default@1.0.1": {
+          "aurelia-loader": "npm:aurelia-loader@1.0.0",
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-loader@1.0.0": {
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-path": "npm:aurelia-path@1.1.1"
+        },
+        "npm:aurelia-logging-console@1.0.0": {
+          "aurelia-logging": "npm:aurelia-logging@1.3.0"
+        },
+        "npm:aurelia-metadata@1.0.3": {
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-pal-browser@1.1.0": {
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-polyfills@1.2.0": {
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-route-recognizer@1.1.0": {
+          "aurelia-path": "npm:aurelia-path@1.1.1"
+        },
+        "npm:aurelia-router@1.2.1": {
+          "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+          "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
+          "aurelia-history": "npm:aurelia-history@1.0.0",
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-path": "npm:aurelia-path@1.1.1",
+          "aurelia-route-recognizer": "npm:aurelia-route-recognizer@1.1.0"
+        },
+        "npm:aurelia-task-queue@1.2.0": {
+          "aurelia-pal": "npm:aurelia-pal@1.3.0"
+        },
+        "npm:aurelia-templating-binding@1.3.0": {
+          "aurelia-binding": "npm:aurelia-binding@1.2.0",
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-templating": "npm:aurelia-templating@1.3.0"
+        },
+        "npm:aurelia-templating-resources@1.3.1": {
+          "aurelia-binding": "npm:aurelia-binding@1.2.0",
+          "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+          "aurelia-loader": "npm:aurelia-loader@1.0.0",
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0",
+          "aurelia-path": "npm:aurelia-path@1.1.1",
+          "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0",
+          "aurelia-templating": "npm:aurelia-templating@1.3.0"
+        },
+        "npm:aurelia-templating-router@1.1.0": {
+          "aurelia-binding": "npm:aurelia-binding@1.2.0",
+          "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0",
+          "aurelia-path": "npm:aurelia-path@1.1.1",
+          "aurelia-router": "npm:aurelia-router@1.2.1",
+          "aurelia-templating": "npm:aurelia-templating@1.3.0"
+        },
+        "npm:aurelia-templating@1.3.0": {
+          "aurelia-binding": "npm:aurelia-binding@1.2.0",
+          "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.0",
+          "aurelia-loader": "npm:aurelia-loader@1.0.0",
+          "aurelia-logging": "npm:aurelia-logging@1.3.0",
+          "aurelia-metadata": "npm:aurelia-metadata@1.0.3",
+          "aurelia-pal": "npm:aurelia-pal@1.3.0",
+          "aurelia-path": "npm:aurelia-path@1.1.1",
+          "aurelia-task-queue": "npm:aurelia-task-queue@1.2.0"
+        },
+        "npm:babel-runtime@5.8.38": {
+          "process": "github:jspm/nodelibs-process@0.1.2"
+        },
+        "npm:buffer@3.6.0": {
+          "base64-js": "npm:base64-js@0.0.8",
+          "child_process": "github:jspm/nodelibs-child_process@0.1.0",
+          "fs": "github:jspm/nodelibs-fs@0.1.2",
+          "ieee754": "npm:ieee754@1.1.8",
+          "isarray": "npm:isarray@1.0.0",
+          "process": "github:jspm/nodelibs-process@0.1.2"
+        },
+        "npm:core-js@1.2.7": {
+          "fs": "github:jspm/nodelibs-fs@0.1.2",
+          "path": "github:jspm/nodelibs-path@0.1.0",
+          "process": "github:jspm/nodelibs-process@0.1.2",
+          "systemjs-json": "github:systemjs/plugin-json@0.1.2"
+        },
+        "npm:inherits@2.0.1": {
+          "util": "github:jspm/nodelibs-util@0.1.0"
+        },
+        "npm:path-browserify@0.0.0": {
+          "process": "github:jspm/nodelibs-process@0.1.2"
+        },
+        "npm:process@0.11.9": {
+          "assert": "github:jspm/nodelibs-assert@0.1.0",
+          "fs": "github:jspm/nodelibs-fs@0.1.2",
+          "vm": "github:jspm/nodelibs-vm@0.1.0"
+        },
+        "npm:util@0.10.3": {
+          "inherits": "npm:inherits@2.0.1",
+          "process": "github:jspm/nodelibs-process@0.1.2"
+        },
+        "npm:vm-browserify@0.0.4": {
+          "indexof": "npm:indexof@0.0.1"
+        }
+      }
+    }
+
+    //Karmify config in testing env.
+    if(typeof __karma__ !== 'undefined') {
+      config.baseURL = 'base/';
+      config.paths['src:*'] = "src/*.js";
+    }
+    else {
+      conrig.baseURL = "/",
+      config.paths["*"] = "src/*.js";
+    }
+    return config;
+  })()
+);
\ No newline at end of file
diff --git a/js-tools/jspm-skeleton/test.js b/js-tools/jspm-skeleton/test.js
new file mode 100644
index 000000000..529282eaa
--- /dev/null
+++ b/js-tools/jspm-skeleton/test.js
@@ -0,0 +1,2 @@
+console.log(typeof __karma__);
+