diff --git a/README.md b/README.md
index d7a430d66..3f071bad1 100755
--- a/README.md
+++ b/README.md
@@ -147,7 +147,7 @@ List of Definitions
* [Knockout.ES5](https://github.com/SteveSanderson/knockout-es5) (by [Sebastián Galiano](https://github.com/sgaliano))
* [Knockout.Mapper](https://github.com/LucasLorentz/knockout.mapper) (by [Brandon Meyer](https://github.com/BMeyerKC))
* [Knockout.Mapping](https://github.com/SteveSanderson/knockout.mapping) (by [Boris Yankov](https://github.com/borisyankov))
-* [Knockout.Postbox](https://github.com/rniemeyer/knockout-postbox) (by [Judah Gabriel](https://github.com/JudahGabriel))
+* [Knockout.Postbox](https://github.com/rniemeyer/knockout-postbox) (by [Judah Gabriel Himango](https://github.com/JudahGabriel))
* [Knockout.Validation](https://github.com/ericmbarnard/Knockout-Validation) (by [Dan Ludwig](https://github.com/danludwig))
* [Knockout.Viewmodel](http://coderenaissance.github.com/knockout.viewmodel/) (by [Oisin Grehan](https://github.com/oising))
* [ko.editables](http://romanych.github.com/ko.editables/) (by [Oisin Grehan](https://github.com/oising))
@@ -172,6 +172,7 @@ List of Definitions
* [node-ffi](https://github.com/rbranson/node-ffi) (by [Paul Loyd](https://github.com/loyd))
* [node_zeromq](https://github.com/JustinTulloss/zeromq.node) (by [Dave McKeown](https://github.com/davemckeown))
* [node-sqlserver](https://github.com/WindowsAzure/node-sqlserver) (by [Boris Yankov](https://github.com/borisyankov))
+* [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel))
* [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/))
* [OpenLayers] (https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/))
* [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin))
diff --git a/nprogress/NProgress-tests.ts b/nprogress/NProgress-tests.ts
new file mode 100644
index 000000000..24613e0be
--- /dev/null
+++ b/nprogress/NProgress-tests.ts
@@ -0,0 +1,30 @@
+function test_basics() {
+ NProgress.start();
+ NProgress.inc();
+ NProgress.done();
+ NProgress.set(0.5);
+
+ var status = NProgress.status;
+ var version = NProgress.version;
+}
+
+function test_configuration() {
+ NProgress.configure({
+ speed: 0.3
+ });
+
+ NProgress.configure({
+ trickle: false
+ });
+
+ NProgress.configure({
+ ease: 'ease',
+ minimum: 0.09,
+ showSpinner: false,
+ speed: 420,
+ template: "
blah
",
+ trickle: false,
+ trickleRate: 0.42,
+ trickleSpeed: 42
+ });
+}
\ No newline at end of file
diff --git a/nprogress/NProgress.d.ts b/nprogress/NProgress.d.ts
new file mode 100644
index 000000000..d9c42b635
--- /dev/null
+++ b/nprogress/NProgress.d.ts
@@ -0,0 +1,99 @@
+// Type definitions for NProgress
+// Project: https://github.com/rstacruz/nprogress
+// Definitions by: Judah Gabriel Himango
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+interface NProgressStatic {
+ /**
+ * Shows the progress bar and begins trickling progress.
+ */
+ start();
+
+ /**
+ * Finishes loading by transitioning it to 100%, then fading out.
+ * @param {boolean} forceShow Forces the progress bar to show, even if it's not being shown. (The default behavior is that .done() will not do anything if .start() isn't called.)
+ */
+ done(forceShow?: boolean);
+
+ /**
+ * Increments the progress bar with a random amount. This will never get to 100%: use it for every image load (or similar).
+ */
+ inc();
+
+ /**
+ * Removes the progress indicator.
+ */
+ remove();
+
+ /**
+ * Sets the progress percentage.
+ * @param {number} progressPercent A number between 0.0 and 1.0 that represents the progress percentage.
+ */
+ set(progressPercent: number);
+
+ /**
+ * Configures the progress indicator.
+ * @param {NProgressConfigureOptions} options An object containing the configuration options.
+ */
+ configure(options: NProgressConfigureOptions);
+
+ /**
+ * Gets the NProgress version.
+ */
+ version: string;
+
+ /**
+ * Gets the status. If started, it will be the last progress number set.
+ */
+ status: any;
+
+ /**
+ * Gets whether progress has been started.
+ */
+ isStarted(): boolean;
+}
+
+interface NProgressConfigureOptions {
+
+ /**
+ * The minimum progress percentage. Default is 0.08.
+ */
+ minimum?: number;
+
+ /**
+ * How much to increase per trickle. Example: .02. Default is true.
+ */
+ trickleRate?: number;
+
+ /**
+ * How often to trickle, in milliseconds. Default is 800.
+ */
+ trickleSpeed?: number;
+
+ /**
+ * Whether to show the spinner. Defaults to true. Default is true.
+ */
+ showSpinner?: boolean;
+
+ /**
+ * Whether to enable trickling the progress. Default is true.
+ */
+ trickle?: boolean;
+
+ /**
+ * The CSS easing animation to use. Default is 'ease'.
+ */
+ ease?: string;
+
+ /**
+ * The animation speed in milliseconds. Default is 200.
+ */
+ speed?: number;
+
+ /**
+ * The HTML markup inserted for the progress indicator. To keep the progress bar working, keep an element with role='bar' in there.
+ */
+ template?: string;
+}
+
+declare var NProgress: NProgressStatic;
\ No newline at end of file