使い方
コマンド一覧
| コマンド | エイリアス | 説明 |
|---|---|---|
login |
Google アカウントにログイン | |
logout |
Google アカウントからログアウト | |
create-script |
create |
新しい Apps Script プロジェクトを作成 |
clone |
既存の Apps Script プロジェクトをクローン | |
pull |
Apps Script からファイルをダウンロード | |
push |
ファイルを Apps Script にアップロード | |
open-script |
open |
Apps Script プロジェクトをブラウザで開く |
create-deployment |
デプロイメントを作成 | |
update-deployment |
deploy |
既存のデプロイメントを更新 |
list-deployments |
デプロイメント一覧を表示 | |
run-function |
Apps Script 関数をリモート実行 | |
convert |
プロジェクトファイルを変換 (TS ↔ GAS) | |
history |
コマンド実行履歴を表示 | |
config init |
.glasp/config.json を作成 |
|
version |
バージョンを表示 |
Push
glasp push # ローカルファイルをプッシュ
glasp push --force # .claspignore を無視(.glasp/ は常に除外)
glasp push --archive # プッシュしたファイルをアーカイブ
glasp push --dryrun # API 呼び出しなしのドライラン
TypeScript サポート
glasp は push 時に .ts ファイルを自動検出してトランスパイルします(.clasp.json の fileExtension 設定に関係なく)。
.ts→ esbuild で JavaScript に変換してプッシュ.js,.gs→ そのままプッシュ.d.ts→ 除外(デプロイ不可)
履歴からのリプレイ
glasp push --history-id <id> # アーカイブから再プッシュ
glasp push --history-id <id> --dryrun # ドライランでリプレイ
Pull
glasp pull # リモートファイルを取得
glasp pull --archive # 取得したファイルをアーカイブ
fileExtension が "ts" の場合、取得時に GAS JavaScript を TypeScript に自動変換します。
認証
認証トークンは .glasp/access.json に保存されます(パーミッション 0600)。
# ブラウザが自動で開いてログインフローが開始されます
glasp login
PKCE
OAuth2 PKCE(RFC 7636)をオプトインで有効化して、認可コードの横取り攻撃を防ぐことができます:
glasp login --pkce
# または環境変数で有効化
GLASP_USE_PKCE=1 glasp login
PKCE は glasp login フローにのみ適用されます。
clasp の認証情報を再利用
# clasp の認証情報を再利用します。`glasp login` コマンドでインポートされ、`.glasp/access.json` に保存されます。
glasp login --auth ~/.clasprc.json
# または、各コマンドで直接 --auth を指定
glasp push --auth ~/.clasprc.json
glasp pull --auth ~/.clasprc.json
glasp clone SCRIPT_ID --auth ~/.clasprc.json
clasp から glasp への移行時に、再認証なしですぐに使い始められます。
認証ソースの優先順位:
--authフラグ(.clasprc.jsonのパス)- プロジェクトキャッシュ(
.glasp/access.json) - インタラクティブログイン
タイムアウト
Script API への HTTP リクエストのタイムアウト時間を設定できます。デフォルトは 180 秒 です。
優先順位
--no-timeoutフラグ /GLASP_NO_TIMEOUT環境変数(無制限)--timeoutフラグ /GLASP_TIMEOUT環境変数.glasp/config.jsonのtimeoutSeconds- デフォルト(180 秒)
0 は 未設定 を意味し、次の優先順位にフォールバックします。負の値は不正な入力として無視され、警告が表示されます(タイムアウトを無効化したい場合は --no-timeout を使用してください)。
設定方法
# CLI フラグで指定(秒)
glasp push --timeout 60
# 環境変数で指定
GLASP_TIMEOUT=60 glasp push
# タイムアウトを無制限にする
glasp push --no-timeout
# 環境変数で無制限にする
GLASP_NO_TIMEOUT=1 glasp push
.glasp/config.json でプロジェクトごとに固定値を設定することもできます:
{
"archive": { "pull": false, "push": false },
"timeoutSeconds": 60
}
リトライ
glasp は一時的な Script API 障害(HTTP 5xx・429・ネットワークエラー)を自動的にリトライします。リトライが適用されるのは冪等なコマンドのみです: push、pull、list-deployments、clone。非冪等なコマンド(create-script・create-deployment・update-deployment・run-function)はリソースの重複作成を防ぐためリトライしません。
デフォルトのリトライ回数は 3 回(初回実行を含めると最大 4 回試行)です。
優先順位
--max-retriesフラグ /GLASP_MAX_RETRIES環境変数.glasp/config.jsonのmaxRetries- デフォルト(3)
0 は 未設定 を意味し、次の優先順位にフォールバックします。負の値は不正な入力として無視され、警告が表示されます。リトライを完全に無効化するには --no-retries を使用してください。
注意:
--no-timeoutと--no-retriesは独立しています。--no-timeoutはリトライを無効化しません。http.Client.Timeout(--timeoutで設定)はリトライ全体を含む合計時間の予算です。タイムアウトが短すぎるとリトライが実行される前に打ち切られる場合があります。
設定方法
# リトライ回数を増やす
glasp push --max-retries 5
# 環境変数で指定
GLASP_MAX_RETRIES=5 glasp push
# リトライを無効化
glasp push --no-retries
# 環境変数でリトライを無効化
GLASP_NO_RETRIES=1 glasp push
.glasp/config.json でプロジェクトごとに固定値を設定することもできます:
{
"archive": { "pull": false, "push": false },
"timeoutSeconds": 60,
"maxRetries": 5
}
ログ
glasp は診断ログ(警告・フォールバック通知・デバッグトレース)を構造化された形式で stderr に出力します。コマンドの実行結果(Pulled project ... など)は通常の出力であり、これらの設定の影響を受けません。
オプション
--log-levelフラグ /GLASP_LOG_LEVEL環境変数 — 最小レベル:debug、info(デフォルト)、warn、error--log-formatフラグ /GLASP_LOG_FORMAT環境変数 — 出力形式:text(デフォルト)またはjson
# OAuth フローの進行状況などデバッグトレースを表示
glasp login --log-level debug
# 機械可読な JSON ログを出力(CI で便利)
GLASP_LOG_FORMAT=json glasp push
# 警告を抑制しエラーのみ表示
glasp pull --log-level error
出力例:
# text(デフォルト)
time=2026-07-09T10:00:00.000+09:00 level=WARN msg="failed to load .glasp/config.json; using default timeout" default=3m0s
# json
{"time":"2026-07-09T10:00:00+09:00","level":"WARN","msg":"failed to load .glasp/config.json; using default timeout","default":"3m0s"}
注意: OAuth ログインの進行状況メッセージ(state 検証・認可コード受信など)は
debugレベルで記録され、デフォルトでは表示されません。ブラウザを起動できない場合に開くべき URL など、操作に必須の案内はログレベルに関係なく常に表示されます。
設定
.clasp.json
clasp と同じ設定ファイルを利用します:
{
"scriptId": "your-script-id",
"rootDir": "src",
"fileExtension": "ts"
}
.claspignore
gitignore 構文でファイルを除外します。glasp のデフォルト除外:
.glasp/— glasp 内部ディレクトリ(常に除外)node_modules/— npm 依存
Convert
glasp convert --gas-to-ts # GAS JS → TypeScript
glasp convert --ts-to-gas # TypeScript → GAS JS
glasp convert --ts-to-gas src/main.ts # 特定ファイルのみ変換
履歴
glasp history # 全履歴を表示
glasp history --limit 10 # 直近10件
glasp history --status success # ステータスでフィルタ
glasp history --command push # コマンドでフィルタ
glasp history --order asc # 昇順(デフォルト: 降順)