出退勤の記録をコマンドラインで行う

こんにちは。亀山です。弊社では様々なバックオフィス業務にマネーフォワードを利用しています。休暇の管理のためにクラウド勤怠を導入し、ブラウザから毎日出勤・退勤の記録を行っています。

でもクリックがめんどくさすぎる

そうだ CLI にしよう

使うもの

Puppeteer

github.com

GUI なしの Chrome を Node から操作できる便利なやつです。

Headless Recorder

Headless Recorder - Chrome ウェブストア

ブラウザの操作を記録して Puppeteer のスクリプトとして出力するツールです。

できたもの

こちらです。

github.com

ほとんど Headless Recorder が出力したスクリプトがそのまま入っています。パスワードなどをターミナルから入力する機能を実装し、CLI として簡単に整えるだけで完成です。

npx github:ryohey/money-forward-attendance-cli clock in

で出勤することができます。

工夫点

github.com

認証に必要なパスワードは node-keytar を使って Keychain に保存します。最初の実行時に一度だけターミナルで訊ね、次回から入力しなくてもいいようになっています。

今後

このコマンドを取り込んだ、cov コマンドを作成しました。

今回作成したスクリプトをサブコマンドとして持ち、cov oha cov otu のコマンドで出勤、退勤を行うことができます。

コベリンの Slack では出勤・退勤時に #kintai チャンネルにて「おは」「おつ」の挨拶をすることが良しとされていますが、本コマンドに Slack への投稿機能も実装されることで、こちらも半自動化されることが期待されています。id:takkumattsu が実装してくれると言っていました。

ゆくゆくは、会社のあらゆることを cov コマンド経由で行えるようにし、Company as a CLI を実現できたら嬉しいです。

Company as a CLI とは

会社の様々な業務を CLI として利用できるようにするという概念です。僕が考えました。究極的には cov employee new を叩くと社員が1人増えます。メリットは特にありません。