Ajitesh-png

Claude n8n Bridge — DevOps skill for Claude Code

DevOps community

Self-hosted n8n in Docker wired to Claude Code: n8n owns schedules and webhooks, a host-side runner executes only allowlisted task names (never prompts or shell from the caller), workflows live as fil.

How to install Claude n8n Bridge

This entry records only its repository, not the path inside it, so there is no exact command to give. Open Ajitesh-png/claude-n8n-bridge and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude n8n Bridge does

Self-hosted n8n in Docker wired to Claude Code: n8n owns schedules and webhooks, a host-side runner executes only allowlisted task names (never prompts or shell from the caller), workflows live as files in git.

Alternatives in DevOps

  • Codeg — Aggregate and browse AI coding agent sessions (Claude Code, Codex, Gemini CLI, etc.) in one place 850 ★
  • Second Brain Cloudflare — One memory layer, every AI tool 734 ★
  • Ductor — Control Claude Code, Codex CLI and Gemini CLI from Telegram 310 ★

README

n8n — self-hosted, Claude-Code-driven

Open-source n8n running locally in Docker, wired so that **Claude Code authors the workflows as files** and **n8n runs them on triggers you don't have to remember**.

  • Editor: http://localhost:5678
  • n8n 2.35.4 (community), Postgres 17
  • Everything in this folder is a file in git except .env and shared/.

Why this shape

n8n and Claude Code are good at opposite things, and the split is the whole design:

Good at Bad at
n8n schedules, inbound webhooks, retries, fan-out over rows, API glue, "did this run?" judgment, reading a repo, anything needing local Python or a signed-in browser
Claude Code judgment, repo context, writing/verifying content, multi-step reasoning being awake at 09:00, catching a webhook, remembering to run weekly

So: **n8n owns triggering. Claude Code and the repo's engines own the work.**

n8n lives in a Linux container and cannot run `claude` or `python -m engine.run`. `runner/runner.py` is the bridge — a small HTTP server on Windows that n8n calls at `http://host.docker.internal:8787/run`.

Schedule / webhook          host bridge                     the actual work
┌──────────────┐   HTTP    ┌────────────────────┐  argv   ┌────────────────────┐
│ n8n (docker) │──────────▶│ runner.py (Windows)│────────▶│ claude -p  …       │
│              │  Bearer   │  • token required  │         │ python -m engine…  │
│              │  + task   │  • task allowlist  │         │ (cwd = repo root)  │
└──────────────┘   name    └────────────────────┘         └────────────────────┘

The two rules that keep the bridge safe

The runner executes code, so:

  1. Bearer token on every request (RUNNER_TOKEN, shared via n8n/.env).
  2. n8n sends a task name, never a prompt and never a shell command. Every runnable thing is declared in runner/tasks.json, which lives in git and which you control. There is deliberately no endpoint that acce