OpenCode hooks

OpenCode Hooks ガイド:安全設定の 7 チェック

OpenCode hooks をいつ使うか、どこに置くか、ライフサイクルイベントをどう選ぶか、安全にテストする方法を整理します。

OpenCode hook lifecycle around a terminal, repository, and event checkpoints
OpenCode hooks should stay tied to a clear lifecycle moment, not become hidden all-purpose automation.

Quick answer

opencode hooks: what to know first

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

This page deliberately separates `opencode hooks` from the site's broader OpenCode Plugins guide. The plugins page explains when packaged extensions are worth installing. This page focuses on lifecycle behavior: event choice, scope, placement, examples, failure modes, testing, rollback, and how hooks interact with tools, skills, commands, MCP, and GitHub automation.

Related site guides: OpenCode Plugins, OpenCode Skills, OpenCode MCP, OpenCode session storage.

1. hooks を使う場面

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

正確なタイミングに依存しないなら、skill、command、permission、MCP に置く方が安全です。Hook には明確な条件と見える結果が必要です。

2. hooks の配置場所

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

リポジトリ規則は project 側に置き、チームがレビューできるようにします。個人設定は global、npm package は source と version の確認が前提です。

3. イベントを選ぶ

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

まずイベントを一文で書きます。実行前、tool 後、file 変更後のどれかを明確にし、複数の行動が混ざるなら hook を分けます。

4. 安全例とリスク

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

安全な例は警告、正規化、最小限の記録です。commit、push、secret、遠隔 network、無言の大きな編集は hook に隠さないでください。

5. 使い捨てリポジトリでテスト

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

小さな repo、無害な command、出力確認、plugin を無効化する手順まで含めてテストします。

Four-step OpenCode hook safety flow from event choice to rollback
A safe hook is narrow, tested in a disposable repository, and easy to disable during troubleshooting.

6. レイヤー別に切り分ける

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

問題が出たら一層ずつ無効化し、同じ task を繰り返します。Lifecycle code、instructions、MCP、provider を切り分けられます。

7. GitHub と CI から分ける

Hooks は実行タイミングが重要な時だけ使います。ツール前後の小さなガードレールであり、skills、commands、MCP、権限、CI の代替ではありません。

GitHub と CI は明示的な workflow に置きます。Local hooks は session 中の guardrail に限定します。

OpenCode hooks FAQ

OpenCode hooks とは?

plugins が返すライフサイクル callback です。

plugins と同じですか?

違います。plugin が hooks を読み込み返します。

どこに置きますか?

リポジトリ規則は project、個人設定は global に置きます。

権限の代替ですか?

いいえ。広い policy は permissions で扱います。

どうテストしますか?

使い捨て repo で小さな task と rollback を確認します。

Sources

Official OpenCode documentation and current SERP evidence were checked on 2026-07-23. Plugin APIs and event names can change, so verify exact code against the current docs before shipping a hook.