n8n Publish Check — Data skill for Claude Code
Scan n8n workflow exports for secrets and private data before publishing.
How to install n8n Publish Check
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open OnePathToFreedom/n8n-publish-check and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What n8n Publish Check does
Scan n8n workflow exports for secrets and private data before publishing. Claude skill, Python CLI and git pre-commit hook.
Alternatives in Data
- Private GPT — Complete API layer for private AI applications on local models: RAG, skills, tools, MCP, text-to-sql, and more 57.5k ★
- Financial Services — Reference agents, skills, and data connectors for the financial-services workflows we see most — investment ba 34.5k ★
- n8n Code JavaScript — JavaScript in n8n Code nodes with data access patterns 3.6k ★
README
n8n-publish-check
Check an exported n8n workflow (JSON) for secrets and private data **before** it is committed to GitHub, posted publicly or shared with a client. Works as a Claude skill, as a standalone Python script, or as a git pre-commit hook.
It is a heuristic scanner plus a manual review, not a guarantee. "No findings" means the known patterns did not match, nothing more.

Values are masked in the report (first 3 and last 2 characters), so the report itself is safe to paste into a ticket or a chat.
What it checks
It knows the structure of an n8n export and looks in the places where data actually leaks:
| Where | Severity |
|---|---|
pinData (real sample data from executions) |
high |
Literal values in Authorization / API-key-like fields, secrets in ?api_key= / ?token= |
high |
| Known token formats (OpenAI/Anthropic, GitHub, Slack, Telegram, AWS, Google, Stripe, JWT, private keys) | high |
| IBANs (checksum-validated) | high |
| Your own deny-list terms (client names, internal domains) | high |
| Emails, phone numbers, IP addresses | medium |
Resource IDs (chatId, documentId, ...), cachedResultName |
medium |
Webhook path, staticData, shared / homeProject |
medium |
Credential id/name, webhookId, meta.instanceId |
low |
Expressions that read `$env`, `$credentials`, `$secrets` or `$vars` are treated as safe.
Usage
Standard library only, Python 3.8+.
# scan
python3 scripts/scan.py workflow.json
# write a sanitized copy (the original is never modified), then re-scan it
python3 scripts/scan.py workflow.json --sanitize workflow.public.json
python3 scripts/scan.py workflow.public.json
Exit codes: `0` nothing at or above the threshold, `1` findings, `2` invalid JSON. Use `--fail-on low|medium|high` to change the threshold. Raw secret values are never printed in full.
 leakage in medical-data research re
Bdc Validate Share Metadata
Validate ORD metadata JSON before publishing a BDC data product
Reform Pipeline
End-to-end reform pipeline in one command — scan the news for a modelable reform in a topic area, score and ve
Artifact
Build a data artifact or app, from constraints through to the pre-publish gate
Related Agents
PR Delivery Agent
Pre-PR secrets scanner, conventional-commit git stager, and GitHub PR publisher (or offline .patch generator w
Secret Guard
MUST be used whenever the user asks to scan for secrets, API keys, credentials, or tokens before a commit or i
Tp Audit Scanner
Use this when the user asks for a security / quality audit, pre-release sweep, or "scan this for issues". Find