どんな面白い使い方ができるかな? Google Chromeをメインブラウザにしているプログラマーの方は多いと思います。プログラミングとブラウジングは近いように見えて意外と遠いです。その最大の違いはマウスとキーボードでしょう。 Google Chromeをキーボード操作できるようにする機能拡張は多いですが、今回はGoogle Chromeをターミナルで操作できるようにするchrome-cliを紹介します。

chrome-cliの使い方

まずはコマンドヘルプです。

$ ./chrome-cli -h
Usage:
chrome-cli -h  (Print help)
chrome-cli --help  (Print help)
chrome-cli help  (Print help)
chrome-cli list windows  (List all windows)
chrome-cli list tabs  (List all tabs)
chrome-cli list tabs -w <id>  (List tabs in specific window)
chrome-cli info  (Print info for active tab)
chrome-cli info -t </id><id>  (Print info for specific tab)
chrome-cli open <url>  (Open url in new tab)
chrome-cli open </url><url> -n  (Open url in new window)
chrome-cli open </url><url> -t <id>  (Open url in specific tab)
chrome-cli open <url> -w <id>  (Open url in new tab in specific window)
chrome-cli close  (Close active tab)
chrome-cli close -w  (Close active window)
chrome-cli close -t </id><id>  (Close specific tab)
chrome-cli close -w </id><id>  (Close specific window)
chrome-cli reload  (Reload active tab)
chrome-cli reload -t </id><id>  (Reload specific tab)
chrome-cli back  (Navigate back in active tab)
chrome-cli back -t </id><id>  (Navigate back in specific tab)
chrome-cli forward  (Navigate forward in active tab)
chrome-cli forward -t </id><id>  (Navigate forward in specific tab)
chrome-cli source  (Print source from active tab)
chrome-cli source -t </id><id>  (Print source from specific tab)
chrome-cli execute <javascript>  (Execute javascript in active tab)
chrome-cli execute </javascript><javascript> -t <id>  (Execute javascript in specific tab)
chrome-cli chrome version  (Print Chrome version)

実に数多くの機能があります。タブやウィンドウを操作したり、履歴の移動ができます。また、JavaScriptを実行させることも可能です。

例えばタブを一覧でとってみます。

$ ./chrome-cli list tabs
[1:5214] prasmussen/chrome-cli
[1:5218] ellisonleao/clumsy-bird
[1:5222] gExtractWinIcons - Choose language / Scegli la lingua
[1:5226] filed
[1:5230] WebCollab
[1:5234] wikiteam - tools for archiving wikis - Google Project Hosting
[1:5238] jcesarmobile/faceDetect
[1:5242] libface - Face Recognition Library
[1:5246] Quilter: Open Source File Sharing | Cloudant
[1:5250] google-plus-1-bookmarklet - Google Plus +1 & Share to Stream Bookmarklets - Google Project Hosting

タブのIDが分かれば、そのソースを閲覧できます。

こんな感じでテキストで取得ができます。

さらにJavaScriptを実行する場合は以下のようにします。

$ chrome-cli execute "alert(true);"

chrome-cliを使えばGoogle Chromeで表示している内容を別なプログラムに渡したり、Live reloadのようにコマンドラインから再読み込みさせることができます。面白い使い方も考えられそうなソフトウェアですね。 chrome-cliはMac OSX用のオープンソース・ソフトウェア(MIT License)です。 prasmussen/chrome-cli