diff --git a/README.md b/README.md
index 424351acb..8f5708c20 100755
--- a/README.md
+++ b/README.md
@@ -224,6 +224,7 @@ List of Definitions
* [node-git](https://github.com/christkv/node-git) (by [vvakame](https://github.com/vvakame))
* [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))
+* [notify.js](https://github.com/alexgibson/notify.js) (by [soundTricker](https://github.com/soundTricker))
* [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/))
diff --git a/notify.js/notify.js-tests.ts b/notify.js/notify.js-tests.ts
new file mode 100644
index 000000000..7652a0a91
--- /dev/null
+++ b/notify.js/notify.js-tests.ts
@@ -0,0 +1,34 @@
+///
+
+function test_Notify_constructor() {
+ //Min
+ var n = new Notify("hoge")
+ n.show();
+
+ //With option
+ n = new Notify("hoge", {body : "fuga"});
+ n.show();
+
+ //With Full option
+ n = new Notify("hoge", {
+ body : "fuga",
+ icon : "./logo.png",
+ tag : "user",
+ notifyShow : (e:Event)=> console.log("notifyShow", e),
+ notifyClose : ()=> console.log("notifyClose"),
+ notifyClick : ()=> console.log("notifyClick"),
+ notifyError : ()=> console.log("notifyError"),
+ permissionGranted : ()=> console.log("permissionGranted"),
+ permissionDenied : ()=> console.log("permissionDenied")
+ });
+ n.show();
+
+}
+
+function test_Notify_static_methods() {
+ Notify.needsPermission();
+ Notify.requestPermission();
+ Notify.requestPermission(()=> console.log("onPermissionGrantedCallback"));
+ Notify.requestPermission(()=> console.log("onPermissionGrantedCallback"), ()=> console.log("onPermissionDeniedCallback"));
+ Notify.isSupported();
+}
diff --git a/notify.js/notify.js.d.ts b/notify.js/notify.js.d.ts
new file mode 100644
index 000000000..651b91ac5
--- /dev/null
+++ b/notify.js/notify.js.d.ts
@@ -0,0 +1,101 @@
+// Type definitions for notify.js 1.2.0
+// Project: https://github.com/alexgibson/notify.js
+// Definitions by: soundTricker
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare var Notify: {
+ new (title : string , options? : notify.INotifyOption): notify.INotify;
+
+ /**
+ * Check is permission is needed for the user to receive notifications.
+ * @return true : needs permission, false : does not need
+ */
+ needsPermission() : boolean;
+
+ /**
+ * Asks the user for permission to display notifications
+ * @param onPermissionGrantedCallback A callback for permmision is granted.
+ * @param onPermissionDeniedCallback A callback for permmision is denied.
+ */
+ requestPermission(onPermissionGrantedCallback?: ()=> any, onPermissionDeniedCallback? : ()=> any) : void;
+
+ /**
+ * return true if the browser supports HTML5 Notification
+ * @param true : the browser supports HTML5 Notification, false ; the browswer does not supports HTML5 Notification.
+ */
+ isSupported() : boolean;
+}
+
+declare module notify {
+
+ /**
+ * Interface for Web Notifications API Wrapper.
+ */
+ interface INotify {
+ /**
+ * Show the notification.
+ */
+ show() : void;
+
+ /**
+ * Remove all event listener.
+ */
+ destroy() : void;
+
+ /**
+ * Close the notification.
+ */
+ close() : void;
+ onShowNotification(e : Event) : void;
+ onCloseNotification() : void;
+ onClickNotification() : void;
+ onErrorNotification() : void;
+ handleEvent(e : Event) : void;
+ }
+
+ /**
+ * Interface for the Notify's optional parameter.
+ */
+ interface INotifyOption {
+
+ /**
+ * notification message body
+ */
+ body? : string;
+
+ /**
+ * path for icon to display in notification
+ */
+ icon? : string;
+
+ /**
+ * unique identifier to stop duplicate notifications
+ */
+ tag? : string;
+
+ /**
+ * callback when notification is shown
+ */
+ notifyShow? (e : Event): any;
+ /**
+ * callback when notification is closed
+ */
+ notifyClose? : Function;
+ /**
+ * callback when notification is clicked
+ */
+ notifyClick? : Function;
+ /**
+ * callback when notification throws an error
+ */
+ notifyError? : Function;
+ /**
+ * callback when user has granted permission
+ */
+ permissionGranted? : Function;
+ /**
+ * callback when user has denied permission
+ */
+ permissionDenied? : Function;
+ }
+}