StreamlitはPythonで簡単にWebアプリを作れる便利なツールですが、Windows環境でPC起動時に自動でバックグラウンド起動させたい場面も多いはず。しかもプロンプトが立ち上がった状態なので少し邪魔だったりします。
本当は NSLM(Non-Sucking Service Manager)を使ってサービス登録したかったのですが、管理者権限がない環境だったため断念。それでも諦めず、VBS + バッチ + スタートアップという構成で、Streamlit をバックグラウンド起動させることに成功しました。
🎯 目標
- Windows起動時にStreamlitアプリを自動起動
- 起動時にウィンドウを表示せず、バックグラウンドで実行
- ログファイルに出力を保存して、後から確認可能
🧩 ステップ1:バッチファイルを作成する
まずは、Streamlitアプリを起動するバッチファイルを作成します。
📄 streamlit_start.bat
@echo off
PUSHD C:\python
streamlit run app.py > log.txt 2>&1PUSHDで作業ディレクトリをapp.pyのある場所に移動streamlit run app.pyでアプリを起動> log.txt 2>&1で標準出力とエラーをlog.txtに記録
🧩 ステップ2:VBSファイルで非表示実行
次に、バッチファイルを非表示で実行するためのVBSスクリプトを作成します。
📄 streamlit_start.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\python\streamlit_start.bat" & Chr(34), 0
Set WshShell = Nothingchr(34)はダブルクォート(”)を表します0はウィンドウを表示せずに実行する指定です
🧩 ステップ3:スタートアップに登録
最後に、作成した .vbs ファイルをスタートアップフォルダに配置します。
📂 スタートアップフォルダの開き方
Win + Rを押して「ファイル名を指定して実行」を開くshell:startupと入力して Enter- 開いたフォルダに
streamlit_start.vbsをコピー
これで、次回以降PCを起動したときに、Streamlitアプリが自動でバックグラウンド起動します!
✅ 動作確認とログの確認
- 起動後、ブラウザが開かなくても
http://localhost:8501にアクセスすればアプリが表示されます。 log.txtに出力が記録されているので、エラーやログを確認できます。
📝 まとめ
| ステップ | 内容 |
|---|---|
| 1 | .bat ファイルで Streamlit を起動 |
| 2 | .vbs ファイルで非表示実行 |
| 3 | スタートアップに .vbs を登録 |
NSLMが使えない環境でも、工夫次第で快適な常駐運用は可能です。業務用ツールやダッシュボードの自動起動にも最適な構成です!

コメント