From nodeshub-seo-skills
Step-by-step guide to connect NodesHub API for SEO tools like SERP analysis, keyword research, rank tracking, and content briefs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nodeshub-seo-skills:connect-nodeshubThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**First action:** Run the banner so the blue logo and skill name appear in the terminal:
First action: Run the banner so the blue logo and skill name appear in the terminal:
python3 -c "import sys; sys.path.insert(0,'.claude/skills/nod-nodeshub-api/scripts'); from banner import print_banner; print_banner('Connect NodesHub')"
Then walk the user through connecting the NodesHub API so they can use all nod- skills (SERP analysis, keyword research, rank tracking, content briefs, and more). Do it step by step, asking for confirmation before continuing.
Anything the user types into the chat leaves their machine — it's sent to the LLM provider, written to local session logs (~/.claude/projects/<slug>/*.jsonl) in plain text, and may appear in telemetry, backups, or IDE sync. A secret that touches the chat context is a leaked secret.
You MUST:
The user saves the key themselves (see Step 2). You only read the file afterwards to verify.
Privacy: The API key is stored in the repo in .claude/settings.local.json (that file is in .gitignore). Tell the user: do not make this repo public if it contains the API key — keep the repo private.
First, run:
python3 .claude/skills/nod-nodeshub-api/scripts/check_setup.py
Tell the user — do not ask them to paste anything here:
Then say: "Copy the key to your clipboard. Do not paste it into this chat. Go to Step 2."
Give the user these two options. They run one themselves — you never see the key.
Option A — one-line terminal command (recommended):
python3 .claude/skills/nod-nodeshub-api/scripts/save_key.py "<paste-your-key-here>"
Tell the user:
HISTCONTROL=ignorespace/ignoreboth is set), paste their key in place of <paste-your-key-here>, and run it.ignorespace, they can run history -d <n> afterwards to wipe that line.Option B — edit the file manually:
Tell the user to open .claude/settings.local.json in their editor and add/merge:
{
"env": {
"NODESHUB_API_KEY": "<paste-your-key-here>"
}
}
If the file already has other content (e.g. permissions), keep it and just add/update the env.NODESHUB_API_KEY field.
Reply "done" (not the key) when saved.
Remind them: .claude/settings.local.json is in .gitignore, so the key will not be committed. Do not make the repo public — it now contains private data.
Run:
python3 .claude/skills/nod-nodeshub-api/scripts/check_setup.py
Expected output includes something like:
API Key: xxxxxxxx...
Balance: 100 / 100 tokens
Setup OK.
Ask: "Did you see 'Setup OK' and your token balance? If you see any error, paste it here."
.claude/settings.local.json under env.NODESHUB_API_KEY, or run save_key.py with the key. File is gitignored.For more detail (security, token costs, user-level config), see .claude/skills/nod-nodeshub-api/setup/README.md.
npx claudepluginhub senuto/nodeshub-seo-skills --plugin nodeshub-seo-skillsProvides a shared Python API client for NodesHub, enabling SERP extraction, keyword expansion, and intent classification. Use for checking API balance, testing endpoints, or troubleshooting connectivity.
Creates, edits n8n workflows as TypeScript files with node docs access and n8nac CLI for workspace init, preventing param errors.
First-run alias that redirects new Agentic SEO users to the canonical agentic-seo and project-init workflow without duplicating process rules.