n8n:nathan について
n8n 内部の Nathan bot を使い、`pnpm nathan` でブランチまたは Docker イメージから一時テストインスタンスをデプロイするリポジトリスキルです。n8n のコントリビューター向けに、デプロイ構成の選択やトークン、結果報告、非対応モードの制約を説明します。
主な機能
- 01ブランチまたはイメージからのテストデプロイ
- 02AI・エンタープライズ向けフラグ
- 03トークン設定手順
- 04デプロイ URL の報告方法
- 05ローカル実行バンドルと非対応モードの説明
活用シーン
- 01ユーザー向け変更を稼働中のインスタンスで試す
- 02AI またはライセンス制限機能をテストする
- 03確認用に nightly イメージをデプロイする
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ n8n-io/ n8n --skill n8n:nathanインストール後、Claude Code で/n8n:nathanを入力して読み込まれたか確認します。
詳細
Nathan — リポジトリ内のテストインスタンス
Nathan は n8n の内部ボットで、ブランチまたは Docker イメージから使い捨てのテストインスタンスをデプロイします。通常は Slack(/nathan ...)から操作します。このスキルでは、リポジトリから同じコマンドを pnpm nathan で実行します。
前提条件
-
トンネルの設定は不要です。 Nathan は、スクリプトが起動する短時間有効な Cloudflare Quick Tunnel(
npx cloudflared)を通じて非同期に応答します。新しいtest-<name>へのdeployでは、インスタンス URL に直接ポーリングするため、トンネルが切断されても成功を報告できます。ただし、すでに起動している名前を再デプロイする場合はポーリングが省略されます。古いインスタンスと新しいインスタンスを区別できないため、トンネル経由に切り替わります。確実な報告が必要な場合は、新しい名前を使ってください。 -
~/.n8n/dev/nathan-tokenにトークンが必要です。 コマンドでトークンがないと報告された場合は、ユーザーにトークンを依頼してください。フォーム(https://internal.users.n8n.cloud/form/d6d34a2f-4899-4ee8-afc8-f8c41a8a243d)を案内し、n8n アカウントでログインして応答からトークンをコピーしてもらいます。その後、ユーザーに代わって保存してください(スクリプトの対話型貼り付けプロンプトには実際のターミナルが必要なため、エージェントとしてはサブコマンドを使ってください)。pnpm nathan set-token '<PASTED_TOKEN>'
テストインスタンスを提案する
提案する価値がある場合に限る
判断して、すべてのブランチで提案しないでください。変更内容を実際に稼働中のインスタンスで試したいと思う人がいる場合は、提案してください。
- 新機能/機能ブランチ
- UI/エディターの変更、ノードの変更、ワークフローの実行や動作の変更
- 大規模な差分、またはユーザー向けの差分
次の場合は提案しないでください(テストインスタンスを用意しても意味がありません)。
- 開発ツール、CI、ビルド設定、スクリプト(このスクリプトのようなもの)
- ドキュメントのみ、またはテストのみの変更
- 小さなバグ修正、動作に影響しないリファクタリング、依存関係の更新
提案しない場合は、しつこく勧めないでください。必要であれば、リクエストに応じてテストインスタンスを用意できることを一度だけ伝えてください。
PR を開いた後に提案し、プッシュのたびに再提案する
テストインスタンスを用意する価値のあるブランチで PR を開いた後は、稼働中のテストインスタンスを提案してください。 そのブランチに新しいコミットを git push するたびに、再度提案してください。デプロイされたインスタンスにはプッシュしたコードが反映されるため、新たなプッシュは再デプロイする価値のある新しいビルドを意味します。単に「はい/いいえ」で答えられる質問をするのではなく、差分を確認して妥当なプロファイルを提案し、ユーザーに確認または変更してもらってください。たとえば次のようにします。
「この変更のテストインスタンスが必要ですか? 差分を見ると AI アシスタントに関わる変更なので、インスタンス AI を有効にして(
--ai)デプロイするのがよさそうです。これでよいですか? それとも別のライセンスにしますか?」
PR の内容からプロファイルを選ぶ
PR の変更内容(git diff --stat origin/master...HEAD とファイルパス/機能領域)を確認し、次のように選択してください。
| PR の変更対象… | 提案するもの | 理由 |
|---|---|---|
AI 機能 — @n8n/nodes-langchain、@n8n/instance-ai、AI アシスタント/ビルダー、N8N_AI_*、"askAi"/エージェントのコード | --ai | インスタンス AI を有効にし(ライセンスは既定で pro2 になります)、AI 機能を実際に実行できるようにします |
ライセンスで制限される機能/エンタープライズ機能 — .ee.ts ファイルまたは /ee/ ディレクトリ、ライセンスチェック(@n8n_io/license-sdk、hasFeature)、SSO/SAML/OIDC/LDAP、RBAC/ロール/スコープ、プロジェクト、変数、外部シークレット、ソース管理/環境、ログストリーミング、インサイト、フォルダー | --enterprise | この機能はライセンスで制限されており、コミュニティ版ではテストできません |
| 有効/無効にしたい特定の制限付き機能/クォータ | --license pro2 --featureOverride <featureKey>:<value> | 生成されるライセンスにオーバーライドを組み込みます(コミュニティ版/エンタープライズ版ではオーバーライドできません) |
| その他 — コアノード、一般的な UI、ライセンス制限のないバグ修正 | (なし — コミュニティ版が既定) | ライセンスは不要です |
AI とエンタープライズの両方に該当する場合は、--ai --enterprise を組み合わせてください。判断がつかない場合は、最善の推測を伝えて確認してください。すべてのフラグの説明は pnpm nathan help で確認できます。
デプロイ
pnpm nathan deploy <branch-name> test-<short-name> [flags]
Nathan がブランチのイメージをビルドします(数分かかります)。コマンドにはインスタンス URL(https://test-<short-name>.stage-app.n8n.cloud、ログイン [email protected]/helloWorld7)が表示されます。その URL をユーザーに伝えてください。
一般的なコマンド
pnpm nathan help # full option reference
pnpm nathan deploy my-branch test-my-feature # community license
pnpm nathan deploy my-branch test-sso --enterprise # enterprise license
pnpm nathan deploy my-branch test-ai --ai # instance AI (license -> pro2)
pnpm nathan deploy nightly test-nightly # deploy the n8nio/n8n:nightly image
主なフラグ(デプロイ引数の後に指定):--license community|enterprise|starter|pro1|pro2|trial、
--enterprise、--ai、-e KEY=value(複数回指定可能)、--featureOverride key:value
(生成済みのライセンスが必要です)。
local に関する注意点
pnpm nathan local ... は実行可能な docker run バンドルを生成しますが、Nathan
はそれをターミナルではなく、Slack のファイル添付(run-n8n.sh + .env)として送信します。ファイルは
#updates-pnpm-nathan
(https://n8nio.slack.com/archives/C0BGVHZ0SCW)に届きます。`deploy` と help は結果をすべて
ターミナルに返します。
NATHAN_SLACK_CHANNEL を勝手に設定しないでください。 未設定のままにしてください(デフォルトは
#updates-pnpm-nathan です)。ユーザーがチャンネル ID を明示した場合に限り設定してください。
非対応
Queue mode、multi-main、SQLite 以外のデータベースは Nathan ではサポートされていません。