diff --git a/docs/README.md b/docs/README.md
index 2f1c96ccd0..7f3e657812 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -23,6 +23,7 @@ Playwright is a library to automate [Chromium](https://www.chromium.org/Home), [
- [Core concepts](./core-concepts.md)
- [Debugging](./debug.md)
- [Supported languages](./languages.md)
+ - [Using Playwright CLI](./cli.md)
1. Guides
- [Selectors](./selectors.md)
- [Input](./input.md)
diff --git a/docs/cli.md b/docs/cli.md
new file mode 100644
index 0000000000..6b7fb1d33e
--- /dev/null
+++ b/docs/cli.md
@@ -0,0 +1,157 @@
+# Playwright CLI
+
+Playwright comes with the command line tools that run via `npx` or as a part of the `npm` scripts.
+
+
+- [Usage](#usage)
+- [Generate code](#generate-code)
+- [Open pages](#open-pages)
+ * [Emulate devices](#emulate-devices)
+ * [Emulate color scheme and viewport size](#emulate-color-scheme-and-viewport-size)
+ * [Emulate geolocation, language and timezone](#emulate-geolocation-language-and-timezone)
+- [Inspect selectors](#inspect-selectors)
+ - [playwright.$(selector)](#playwrightselector)
+ - [playwright.$$(selector)](#playwrightselector-1)
+ - [playwright.inspect(selector)](#playwrightinspectselector)
+ - [playwright.selector(element)](#playwrightselectorelement)
+- [Take screenshot](#take-screenshot)
+- [Generate PDF](#generate-pdf)
+- [Known limitations](#known-limitations)
+
+
+## Usage
+
+```sh
+$ npx playwright --help
+```
+
+Running from `package.json` script
+```json
+{
+ "scripts": {
+ "help": "playwright --help"
+ }
+}
+```
+
+## Generate code
+
+```sh
+$ npx playwright codegen wikipedia.org
+```
+
+Run `codegen` and perform actions in the browser. Playwright CLI will generate JavaScript code for the user interactions. `codegen` will attempt to generate resilient text-based selectors.
+
+
+
+## Open pages
+
+With `open`, you can use Playwright bundled browsers to browse web pages. Playwright provides cross-platform WebKit builds that can be used to reproduce Safari rendering across Windows, Linux and macOS.
+
+```sh
+# Open page in Chromium
+npx playwright open example.com
+```
+
+```sh
+# Open page in WebKit
+npx playwright wk example.com
+```
+
+### Emulate devices
+`open` can emulate mobile and tablet devices ([see all devices](https://github.com/microsoft/playwright/blob/master/src/server/deviceDescriptors.ts)).
+
+```sh
+# Emulate iPhone 11.
+npx playwright --device="iPhone 11" open wikipedia.org
+```
+
+### Emulate color scheme and viewport size
+```sh
+# Emulate screen size and color scheme.
+npx playwright --viewport-size=800,600 --color-scheme=dark open twitter.com
+```
+
+### Emulate geolocation, language and timezone
+```sh
+# Emulate timezone, language & location
+# Once page opens, click the "my location" button to see geolocation in action
+npx playwright --timezone="Europe/Rome" --geolocation="41.890221,12.492348" --lang="it-IT" open maps.google.com
+```
+
+## Inspect selectors
+During `open` or `codegen`, you can use following API inside the developer tools console of any browser.
+
+
+
+#### playwright.$(selector)
+
+Query Playwright selector, using the actual Playwright query engine, for example:
+
+```js
+> playwright.$('.auth-form >> text=Log in');
+
+
+```
+
+#### playwright.$$(selector)
+
+Same as `playwright.$`, but returns all matching elements.
+
+```js
+> playwright.$$('li >> text=John')
+
+> [