Discord で Bot にメンションすると、キングジムのラベルプリンター「テプラ (TEPRA)」からテキストや QR コードのラベルを印刷できる Bot です。
「印刷したい文字を Discord に投げるだけ」で、その場にいなくてもラベルが出力できます。
@TepraBot 会議室A
@TepraBot qr https://example.com 読み取ってね
⚠️ 動作には常時起動できる Windows PC が必要です。 この Bot は、キングジム公式の Windows 用ラベルソフト「TEPRA Label Editor SPC10」と連携して印刷する仕組みです。そのため、Bot と SPC10 を動かす Windows PC が常に必要で、クラウド上やスマホ単体だけでは動作しません。印刷したいときに、その PC の電源が入っている必要があります。
Discord に送ったメッセージが、PC 上の Bot → テプラ用ソフト (SPC10) → テプラ本体 と流れてラベルとして印刷され、最後に Discord へ完了通知が返ります。
- 💬 テキスト印刷 — メンションした文字をそのままラベルに印刷
- 📏 テープ幅の指定 — 9mm / 12mm / 18mm を選択(設定は記憶されます)
- 🔳 QR コード印刷 — URL などを QR コードにして印刷
- 🔳+💬 QR コード+テキスト印刷 — QR コードの横に説明文を添えて印刷
- 🛡 文字数チェック — QR コードに入りきらない場合は印刷せず警告
- ❓ ヘルプ表示 —
@TepraBot helpでコマンド一覧を表示
この Bot は Windows PC 上で動かすことを前提にしています。以下が必要です。
| 必要なもの | 説明 |
|---|---|
| Windows PC | 常時起動できると便利です(印刷したいときに電源が入っている必要があります) |
| テプラ本体(PC 接続対応機種) | USB または Bluetooth で PC に接続し、印刷できる状態にしておきます |
| TEPRA Label Editor SPC10 | キングジム公式の無料 PC ラベルソフト。公式ダウンロードページから入手します |
| Node.js | この Bot を動かすための実行環境(STEP 1 でインストールします) |
| Discord アカウントとサーバー | Bot を招待するサーバーの管理権限が必要です |
メモ: テプラ本体と SPC10 ソフトで、実際に手動印刷ができる状態になっていることを先に確認しておくと、後の手順がスムーズです。
この Bot は PC ラベルソフト SPC10(テプラ クリエイター)が対応している「テプラ」PRO 機種であれば利用できます。SPC10 で印刷できる機種=この Bot でも使える機種、という関係です。
現在 SPC10 が対応している主な機種は以下の通りです(キングジム公式情報より)。
SR-R7900P / SR5900P / SR-R680 / SR670 / SR-R5600P / SR5500P
SR3900P / SR3700P / SR3500P / SR-R980 / SR970 / SR950 / SR750
SR-R560 / SR550 / SR530 / SR-MK2 / テプラ Grand WR1000 など
接続方法(USB / Bluetooth)
PC とテプラの接続は、印刷を担う SPC10 側の対応に従います。USB 接続はもちろん、Bluetooth での PC 印刷に対応している機種(SR-R7900P / SR5900P / SR-R5600P など)であれば、Bluetooth 接続でも利用できます。 あらかじめ SPC10 でそのテプラに印刷できる状態(ペアリング・プリンター選択)にしておけば、この Bot は接続方法を意識せずそのまま動作します。
✅ 動作確認済み: 本 Bot は 「テプラ」PRO SR-R5600P で制作・テストしています。
対応機種は将来変わる可能性があります。最新の正確な一覧は必ずキングジム公式のSPC10ページでご確認ください。お使いの機種が SPC10 に対応していれば、この Bot でも問題なく動作するはずです。
エンジニアでなくても進められるよう、順番に説明します。上から順に進めてください。
-
Node.js 公式サイト を開きます。
-
「LTS」 と書かれた方のボタンをクリックしてインストーラーをダウンロードします。
-
ダウンロードしたファイルを実行し、基本的に「次へ」を押し続けてインストールします。
-
インストールできたか確認します。スタートメニューで「PowerShell」または「コマンドプロンプト」を開き、次を入力して Enter:
node -vv20.x.xのようにバージョンが表示されれば成功です。
GitHub のページ右上あたりにある緑色の 「Code」ボタン → 「Download ZIP」 をクリックしてダウンロードし、好きな場所(例: ドキュメント)に解凍します。
Git を使い慣れている場合は
git cloneでも構いません。
Bot 本体を Discord 側で作成し、「トークン」という鍵を取得します。
- Discord Developer Portal を開き、Discord アカウントでログインします。
- 右上の 「New Application」 をクリック。好きな名前(例:
TepraBot)を入力して作成します。 - 左メニューの 「Bot」 を開きます。
- 「Privileged Gateway Intents」 の項目にある
MESSAGE CONTENT INTENTを オンにして保存します(⚠️ これをオンにしないとメッセージを読めず動きません)。 - 同じ「Bot」ページの上部にある 「Reset Token」 をクリックし、表示された文字列(トークン)を コピーします。
- このトークンは STEP 5 で使います。 メモ帳などに一時的に貼り付けておいてください。
⚠️ トークンは絶対に他人に見せない・SNS やスクショに載せないでください。 パスワードと同じです。
- 左メニューの 「OAuth2」 を開きます。
- 「OAuth2 URL Generator」 の SCOPES で
botにチェック。 - 下に出てくる BOT PERMISSIONS で、最低限
Send Messages(メッセージ送信)にチェックを入れます。 - 一番下に生成された URL をコピーしてブラウザで開き、Bot を追加したいサーバーを選んで招待します。
これでサーバーのメンバー一覧に Bot(オフライン状態)が表示されます。
トークンなどの秘密情報は、.env というファイルに書いて管理します(このファイルは GitHub には公開されません)。
-
解凍したフォルダの中にある
.env.exampleをコピーして、同じ場所に貼り付けます。 -
コピーしたファイルの名前を
.envに変更します(先頭がドットのみのファイル名です)。 -
.envをメモ帳で開き、次のように編集します。# STEP 3 でコピーしたトークンを貼り付け DISCORD_TOKEN=あなたのトークン # SPC10.exe の場所(ダブルクォートで囲まない) TEPRA_EXE=C:\Program Files (x86)\TEPRA Label Editor SPC10\SPC10.exe
TEPRA_EXEは、お使いの PC に SPC10 がインストールされている場所に合わせて書き換えてください。- SPC10.exe の場所が分からない場合は、デスクトップの SPC10 ショートカットを右クリック →「プロパティ」→「リンク先」で確認できます。
-
解凍したフォルダを開きます。
-
フォルダのアドレスバーに
powershellと入力して Enter すると、そのフォルダで PowerShell が開きます。 -
次を実行します(少し時間がかかります)。
npm install
エラーなく終われば準備完了です。
この Bot は、印刷レイアウトを SPC10 のテンプレートファイル (.lw1) から読み込みます。templates/ フォルダにサンプルが入っていますが、テプラの機種やテープの設定によってはそのまま使えないことがあります。 その場合は SPC10 で作り直してください。
| ファイル名 | 用途 |
|---|---|
Text_H9 / H12 / H18.lw1 |
テキスト印刷用(9 / 12 / 18mm) |
QR_H9 / H12 / H18.lw1 |
QR コードのみ(9 / 12 / 18mm) |
QR_Text_H9 / H12 / H18.lw1 |
QR コード+テキスト(9 / 12 / 18mm) |
作り直す場合のポイント:
- 流し込み印刷の機能を使い、データ欄の A1 セルが本文(またはQRデータ)に対応するように作ります。
- QR+テキストのテンプレートは、A1 に QR データ、B1 にテキストが流し込まれます。
- ファイル名は上表とまったく同じ名前で
templates/フォルダに保存してください(Bot がファイル名で判別しています)。 - 9mm など細いテープで QR が読み取りにくいときは、SPC10 側で QR のモード(バージョン) を上げると改善する場合があります(その分、入る文字数は減ります)。
流し込み印刷の作り方は キングジム公式FAQ が参考になります。
一番かんたんなのは、フォルダ内の Bot起動.bat をダブルクリックする方法です(内部で pm2 を使います。初回は下の「補足」を参照)。
または PowerShell から直接起動することもできます:
npm startDiscord 側で Bot がオンラインになり、コンソールに ログイン: TepraBot#0000 のように表示されれば成功です。試しにサーバーで @TepraBot help と送ってみてください。
補足(バッチファイルを使う場合):
Bot起動.batなどは常駐管理ツール pm2 を利用します。初回のみ PowerShell でnpm install -g pm2を実行して pm2 をインストールしておいてください。npm startで直接起動する場合は pm2 は不要です(ただしその PowerShell を閉じると Bot も止まります)。
すべて Bot へのメンション付きで送信します。
@TepraBot 印刷したい文字 ← テキストを印刷
@TepraBot 12mm 印刷したい文字 ← テープ幅を指定して印刷(以後12mmが既定に)
@TepraBot 18mm ← 既定のテープ幅だけ変更
@TepraBot qr https://example.com ← QRコードのみ
@TepraBot qr https://example.com 読み取ってね ← QRコード+テキスト
@TepraBot qr "https://example.com/a b" "読み取って ね" ← スペースを含む場合は " で囲む
@TepraBot help ← コマンド一覧を表示(h でもOK)
QR コードに入る文字数はテープ幅ごとに上限があります。超えた場合は印刷せずにお知らせします。
| テープ幅 | 最大文字数 |
|---|---|
| 9mm | 32文字 |
| 12mm | 46文字 |
| 18mm | 122文字 |
この上限はテンプレートの QR モードに合わせた目安です。テンプレートを作り直した場合は、
index.js内のQR_CHAR_LIMITSの数値も合わせて調整してください。
PC を再起動しても Bot が自動で立ち上がるようにできます。付属のバッチファイルをダブルクリックするだけです。
| ファイル | 動作 |
|---|---|
Bot起動.bat |
Bot を起動する |
Bot停止.bat |
Bot を停止する |
Bot再起動.bat |
Bot を再起動する |
自動起動登録.bat |
PC 起動時に Bot が自動で立ち上がるよう登録する |
自動起動削除.bat |
自動起動の登録を削除する |
これらは pm2 を利用します。事前に npm install -g pm2 が必要です。
pm2 コマンドで手動操作する場合
pm2 start index.js --name tepra-bot # 起動
pm2 stop tepra-bot # 停止
pm2 restart tepra-bot # 再起動
pm2 list # 状態確認
pm2 save # 現在の状態を保存| 症状 | 確認すること |
|---|---|
| Bot がオンラインにならない | .env の DISCORD_TOKEN が正しいか。STEP 3-4 の MESSAGE CONTENT INTENT がオンか。 |
| メンションしても反応しない | Bot にメッセージ送信権限があるか。@TepraBot help で試す。 |
DISCORD_TOKEN が設定されていません と出て終了する |
.env ファイルが作成され、トークンが記入されているか。 |
TEPRA の実行ファイルが見つかりません と警告が出る |
.env の TEPRA_EXE のパスが正しいか(ダブルクォートで囲まない)。 |
| 反応はあるが印刷されない | SPC10 で手動印刷できるか。テプラの電源・接続・テープ残量を確認。テンプレートのファイル名が正しいか。 |
| QR が読み取れない | STEP 7 の通り、SPC10 で QR のモード(バージョン)を調整。 |
.envは絶対に GitHub に公開しないでください。 本プロジェクトの.gitignoreで除外済みです。- 万が一トークンを公開してしまった場合は、Developer Portal の Bot ページで 「Reset Token」を押してすぐに再発行してください(古いトークンは無効になります)。
- 公開してよいのはコード類のみです。
.env/data/text.csv/data/settings.jsonはコミットされません。
MIT License の下で公開しています。自由に利用・改変・再配布できます。

