0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Chatworkシリーズ #23】chatwork-cliを入れたら、シェルからChatworkが操作できて世界が変わった [初心者向け]

0
Last updated at Posted at 2026-03-31

ターミナルから1行打つだけで、Chatworkにメッセージが飛ぶ。

cw post rooms 12345678 messages 'body=バックアップ完了しました'

これだけ。ブラウザを開かない。ルームを探さない。入力欄をクリックしない。

Web画面でやると「ブラウザを開く → ルームを選ぶ → メッセージを書く → 送信ボタンを押す」の4ステップ。それが1行になる。しかもスクリプトに組み込める。cronに仕込める。

今回紹介するのは、Go製のCLIツール chatwork-cliarai-ta/chatwork-cli)。

Go環境の準備(5分で終わる)

Macなら一瞬。

brew install go
go version
# go version go1.22.x darwin/arm64

~/go/bin がPATHに通っていることを確認。

echo $PATH | tr ':' '\n' | grep go

含まれていなければ .zshrc に追記。

export PATH="$HOME/go/bin:$PATH"

インストール

go install github.com/arai-ta/chatwork-cli/cmd/cw@latest
cw --help

APIトークンの設定

方法1: 設定ファイル

cat <<'EOF' > ~/.chatwork.yml
token: "YOUR_CHATWORK_API_TOKEN"
EOF
chmod 600 ~/.chatwork.yml

方法2: 環境変数 + alias

alias cw='CW_API_TOKEN=YOUR_TOKEN ~/go/bin/cw'

基本コマンド

cw get me                              # 自分の情報
cw get rooms                           # ルーム一覧
cw get rooms 12345678 messages         # メッセージ取得
cw post rooms 12345678 messages 'body=テスト'  # メッセージ送信

Chatwork記法も使える。

cw post rooms 12345678 messages 'body=[info][title]テスト通知[/title]CLIからの送信です[/info]'

実用例3つ

1. cronで毎朝の定時連絡

#!/bin/bash
ROOM_ID="12345678"
MESSAGE="おはようございます。本日もよろしくお願いいたします。"
cw post rooms "$ROOM_ID" messages "body=$MESSAGE"
0 9 * * 1-5 /path/to/morning_greeting.sh

2. バックアップ完了をChatworkに通知

#!/bin/bash
BACKUP_DIR="/path/to/backup"
ROOM_ID="12345678"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')

tar czf "$BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz" /path/to/data

if [ $? -eq 0 ]; then
  BODY="[info][title]バックアップ完了[/title]${TIMESTAMP} に正常完了[/info]"
else
  BODY="[info][title]⚠ バックアップ失敗[/title]${TIMESTAMP} にエラー発生[/info]"
fi

cw post rooms "$ROOM_ID" messages "body=$BODY"

3. GitHub Actionsからデプロイ通知

- name: Notify Chatwork
  run: |
    go install github.com/arai-ta/chatwork-cli/cmd/cw@latest
    BODY="[info][title]デプロイ完了[/title]${{ github.repository }} の ${{ github.ref_name }} がデプロイされました[/info]"
    cw post rooms "${{ secrets.CW_ROOM_ID }}" messages "body=$BODY"
  env:
    CW_API_TOKEN: ${{ secrets.CW_API_TOKEN }}

curlと何が違うか

curl:

curl -s -X POST -H "X-ChatWorkToken: $TOKEN" -d "body=テスト" "https://api.chatwork.com/v2/rooms/12345678/messages"

chatwork-cli:

cw post rooms 12345678 messages 'body=テスト'

1行の可読性が違う。スクリプトに10箇所書くなら、短い方がメンテしやすい。

ハマりポイント

GOPATHが通っていない。 go install は成功するのに cw が見つからない。PATHに ~/go/bin を追加すれば解決。

メッセージにシングルクォート。 body=It's done はシェルが解釈してしまう。ダブルクォートで囲む。

まとめ

chatwork-cliを入れると、Chatworkが「ブラウザで開くもの」から「コマンドで叩くもの」に変わる。Go環境があれば5分で動く。Web画面の4クリックが1行になる。

Chatworkシリーズ


Chatworkシリーズ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?