diff --git a/hints.json b/hints.json
new file mode 100644
index 00000000000..21ef17e9a24
--- /dev/null
+++ b/hints.json
@@ -0,0 +1 @@
+[{"text":"$","description":"The method runs document.querySelector within the page. If no element matches the selector, the return value resolves to null.Shortcut for page.mainFrame().$(selector).The method runs document.querySelectorAll within the page. If no elements match the selector, the return value resolves to [].Shortcut for page.mainFrame().$$(selector).This method r","href":"https://github.com/GoogleChrome/puppeteer/blob/v3.1.0/docs/api.md#pageselector","args":"\n
selector
<string> A selector to query page for\nreturns: <Promise<?ElementHandle>>\n"},{"text":"$$","description":"The method runs document.querySelectorAll within the page. If no elements match the selector, the return value resolves to [].Shortcut for page.mainFrame().$$(selector).This method runs Array.from(document.querySelectorAll(selector)) within the page and passes it as the first argument to pageFunction.If pageFunction returns a Promise, then page.$$e","href":"https://github.com/GoogleChrome/puppeteer/blob/v3.1.0/docs/api.md#pageselector-1","args":"\nselector
<string> A selector to query page for\nreturns: <Promise<Array<ElementHandle>>>\n"},{"text":"$$eval","description":"This method runs Array.from(document.querySelectorAll(selector)) within the page and passes it as the first argument to pageFunction.If pageFunction returns a Promise, then page.$$eval would wait for the promise to resolve and return its value.Examples:This method runs document.querySelector within the page and passes it as the first argument to pa","href":"https://github.com/GoogleChrome/puppeteer/blob/v3.1.0/docs/api.md#pageevalselector-pagefunction-args","args":"\nselector
<string> A selector to query page for\npageFunction
<function(Array<Element>)> Function to be evaluated in browser context\n...args
<...Serializable|JSHandle> Arguments to pass to pageFunction
\nreturns: <Promise<Serializable>> Promise which resolves to the return value of pageFunction
\n"},{"text":"$eval","description":"This method runs document.querySelector within the page and passes it as the first argument to pageFunction. If there's no element matching selector, the method throws an error.If pageFunction returns a Promise, then page.$eval would wait for the promise to resolve and return its value.Examples:Shortcut for page.mainFrame().$eval(selector, pageFunc","href":"https://github.com/GoogleChrome/puppeteer/blob/v3.1.0/docs/api.md#pageevalselector-pagefunction-args-1","args":"\nselector
<string> A selector to query page for\npageFunction
<function(Element)> Function to be evaluated in browser context\n...args
<...Serializable|JSHandle> Arguments to pass to pageFunction
\nreturns: <Promise<Serializable>> Promise which resolves to the return value of pageFunction
\n"},{"text":"$x","description":"The method evaluates the XPath expression.Shortcut for page.mainFrame().$x(expression)Adds a