Skip to content

sgentle/caniuse-cmd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

caniuse-cmd

Just what you've always wanted, it's a caniuse command line tool! All the power of caniuse.com with none of the nice UI or interactivity!

How do?

Install with npm install -g caniuse-cmd.

Then type things like this:

$ caniuse websockets
Web Sockets ✔ 85.22% ◒ 1.35% [W3C Candidate Recommendation]
  Bidirectional communication technology for web apps #JSAPI

  IE ✘ 5.5  ✔ 10 
  Firefox ✘ 2  ◒ 4 ¹ ◒ 6 ᵖ² ✔ 11 
  Chrome ◒ 4 ¹ ◒ 15 ² ✔ 16 
  Safari ✘ 3.1  ◒ 5 ¹ ◒ 6 ² ✔ 7 
  Opera ✘ 9  ◒ 11 ¹ ✔ 12.1 

    ¹Partial support refers to the websockets implementation using an older version of the protocol and/or the
    implementation being disabled by default (due to security issues with the older protocol).
    ²Partial support refers to lacking support for binary data.

(The output has truly marvellous colours that this markdown is too narrow to contain.)

Or this:

$ caniuse input
caniuse input
HTML5 form features ✔ 4.21% ◒ 82.39%
  IE ✘ 5.5  ◒ 10  Firefox ✘ 2  ◒ 4  Chrome ◒  Safari ✘ 3.1  ◒ 4  Opera ✔ 9  ◒ 15 
Spellcheck attribute ✔ 60.31% ◒ 31.63%
  IE ✘ 5.5  ✔ 10  Firefox ✔  Chrome ✘ 4  ✔ 9  Safari ✘ 3.1  ✔ 5.1  Opera ✘ 9  ✔ 10.5 
Range input type ✔ 87.46% ◒ 1.18%
  IE ✘ 5.5  ✔ 10  Firefox ✘ 2  ✔ 23  Chrome ‽ 4  ✔ 5  Safari ✔  Opera ✔
Date and time input types ✔ 60.76% ◒ 0%
  IE ✘  Firefox ✘  Chrome ✘ 4  ✔ 20  Safari ✘  Opera ✔
Color input type ✔ 60.93% ◒ 3.84%
  IE ✘  Firefox ✘ 2  ✔ 29  Chrome ✘ 4  ✔ 20  Safari ✘  Opera ✘ 9  ✔ 11  ✘ 15  ✔ 17 
Number input type ✔ 49.95% ◒ 38.03%
  IE ✘ 5.5  ◒ 10  Firefox ✘ 2  ✔ 29  Chrome ✘ 4  ✔ 6  Safari ✘ 3.1  ✔ 5  Opera ✔
input placeholder attribute ✔ 88.04% ◒ 1.15%
  IE ✘ 5.5  ✔ 10  Firefox ✘ 2  ✔ 4  Chrome ✔  Safari ◒ 3.1  ✔ 5  Opera ✘ 9  ◒ 11  ✔ 11.5 
Pointer events ✔ 8.5% ◒ 1.67%
  IE ✘ 5.5  ◒ 10 ᵖ ✔ 11  Firefox ✘  Chrome ✘  Safari ✘ 3.1  ‽ 6.1  Opera ✘
Web Speech API
  IE ✘  Firefox ✘  Chrome ✘ 4  ◒ 25 ᵖ Safari ✘ 3.1  ◒ 6.1 ᵖ ◒ 7.1  Opera ✘
Multiple file selection ✔ 67.63% ◒ 0%
  IE ✘ 5.5  ✔ 10  Firefox ✘ 2  ✔ 3.6  Chrome ✘ 4  ✔ 5  Safari ✘ 3.1  ✔ 4  Opera ✘ 9  ✔ 10.6 
Gamepad API ✔ 46.08% ◒ 0%
  IE ✘  Firefox ✘ 2  ✔ 29  Chrome ✘ 4  ✔ 21 ᵖ ✔ 25  Safari ✘  Opera ✘ 9  ✔ 24 
Pattern attribute for input fields ✔ 72.88% ◒ 0.7%
  IE ✘ 5.5  ✔ 10  Firefox ✘ 2  ✔ 4  Chrome ✘ 4  ✔ 10  Safari ✘  Opera ✘ 9  ✔ 9.5-9.6 

Does it have lots of command line options?

Yes!

$ caniuse --help
Options:
Options:
  --short, -s            Short output: show browsers on one line and don't
                         display notes or description (default when displaying
                         multiple results)                             [boolean]
  --long, -l             Long output: show more information (default when
                         displaying a single result)                   [boolean]
  --oneline, -1          One-line output: just global percentages, no per-
                         browser info                 [boolean] [default: false]
  --oneline-browser, -2  One-line output with browser info, implies --abbrev and
                         --current                    [boolean] [default: false]
  --abbrev, -a           Abbreviate browser names     [boolean] [default: false]
  --percentages, -p      Include browser version usage percentages
                                                      [boolean] [default: false]
  --future, -f           Include future browser versions
                                                      [boolean] [default: false]
  --current, -c          Don't include old browser versions, equivalent to --era
                         e0                           [boolean] [default: false]
  --era, -e              How many versions back to go, e0 to e-40       [string]
  --mobile, -m           Include mobile browsers      [boolean] [default: false]
  --desktop, -d          Include desktop browsers      [boolean] [default: true]
  --browser, -b          Show results for these browsers, comma-separated (ie,
                         edge,firefox,chrome,safari,opera,ios_saf,op_mini,
                         android,bb,op_mob,and_chr,and_ff,ie_mob,and_uc)
                                                                        [string]
  --web, -w              Go to the search page on caniuse.com
                                                      [boolean] [default: false]
  --config, -C           Path to JSON config file
                                 [string] [default: "/Users/user/.caniuse.json"]
  --ascii, -A            UTF-8 symbols replacement with ASCII description
                                                      [boolean] [default: false]
  --help                 Show help                                     [boolean]

Woah, that's a lot of options! Can haz config file?

Yes! You can specify your own defaults by creating a file called .caniuse.json and putting it in your home directory.

For example, if you're primarily interested in mobile browsers two versions back:

{
  "era": "e-2",
  "mobile": true,
  "desktop": false
}