diff --git a/src/api/neovim.js b/src/api/neovim.js
index <HASH>..<HASH> 100644
--- a/src/api/neovim.js
+++ b/src/api/neovim.js
@@ -22,15 +22,26 @@ const createChainableApi = (name, requestPromise, chainCallPromise) => {
     return this[`${name}Proxy`];
   }
 
+  const TYPE = TYPES[name];
+
   this[`${name}Promise`] = requestPromise();
 
+  // TODO: Optimize this
+  // Define properties on the promise for devtools
+  Object.getOwnPropertyNames(TYPE.prototype).forEach(key => {
+    Object.defineProperty(this[`${name}Promise`], key, {
+      enumerable: true,
+      writable: true,
+      configurable: true,
+    });
+  });
+
   const proxyHandler = {
     get: (target, prop) => {
       // XXX which takes priority?
       // Check if property is property of an API object (Window, Buffer, Tabpage, etc)
       // If it is, then we return a promise of results of the call on that API object
       // i.e. await this.buffer.name will return a promise of buffer name
-      const TYPE = TYPES[name];
 
       const isOnPrototype = Object.prototype.hasOwnProperty.call(
         TYPE.prototype,
Define properties on returned promise for devtools