A Claude Code marketplace plugin that converts n8n workflows to LangGraph TypeScript applications.
This plugin provides a structured pipeline for converting n8n workflow JSON files into fully functional LangGraph applications with Langfuse observability built in by default. It handles the full lifecycle: analysis, architecture planning, implementation guidance, and post-implementation review.
Every converted application includes a Langfuse helper module that traces all LLM calls, tool invocations, and graph executions — giving you a dashboard with latency, token usage, costs, and session replay. The integration is opt-in via environment variables: zero overhead when keys are not set.
3 specialized subagents + 1 orchestrator skill:
/n8n-to-langgraph <workflows-dir>
│
├─► workflow-analyzer (×2-3 in parallel)
│ Parses n8n JSON, extracts system prompts verbatim,
│ traces execution paths, maps integrations & credentials
│
├─► conversion-architect
│ Designs LangGraph StateGraph topology, state schemas,
│ tool specs, test plan, and phased implementation order
│
└─► conversion-reviewer (review mode)
Compares implementation against originals for fidelity,
test coverage, and code quality
Each agent has domain-specific skills preloaded via frontmatter — they don't inherit from the parent conversation. This guarantees the right knowledge is available regardless of how the agent is invoked.
.claude-plugin/
├── plugin.json # Plugin metadata
└── marketplace.json # Marketplace registration
agents/
├── workflow-analyzer.md # n8n workflow analysis agent
├── conversion-architect.md # LangGraph architecture design agent
└── conversion-reviewer.md # Post-implementation review agent
skills/
└── n8n-to-langgraph/
└── SKILL.md # Orchestrator skill + domain knowledge
In Claude Code, run:
/plugin marketplace add fazer-ai/n8n-to-langgraph
/plugin install n8n-to-langgraph@n8n-to-langgraph
See the plugin marketplaces docs for more details.
Alternatively, add to your ~/.claude/settings.json:
{
"enabledPlugins": {
"n8n-to-langgraph@n8n-to-langgraph": true
},
"extraKnownMarketplaces": {
"n8n-to-langgraph": {
"source": {
"source": "git",
"url": "https://github.com/fazer-ai/n8n-to-langgraph.git"
}
}
}
}Then restart Claude Code.
/n8n-to-langgraph workflows/
This runs two phases:
-
Analysis — Parallel agents parse your n8n workflow JSONs, extract every system prompt verbatim, trace execution paths, and identify all integrations and credentials needed.
-
Architecture — An architect agent produces a detailed conversion plan: state schemas, tool specs, graph topology, original vs adapted prompts with diffs, milestone-based test plan, and phased implementation checklist.
The plan is then handed off to ralph-loop for autonomous implementation.
/n8n-to-langgraph review
Launches parallel reviewers that compare the implementation against the original workflows, checking prompt fidelity, logic completeness, test coverage, and integration correctness. Issues are confidence-scored (0-100) so you can focus on what matters.
| n8n | LangGraph |
|---|---|
| Workflow | StateGraph |
| Sub-workflow | Tool or nested graph |
| Webhook trigger | HTTP route |
| AI Agent node | createReactAgent |
| Code node | Utility function or graph node |
| IF/Switch node | Conditional edges |
| Credentials | Environment variables (.env) |
| Execution data | State schema (Annotation) |
| — (no n8n equivalent) | Langfuse observability (CallbackHandler) |
| — (no n8n equivalent) | Logger service (pino structured logging) |
This plugin works best with these companion plugins:
- n8n-mcp-skills — n8n domain knowledge for the analyzer agents
- chatwoot-skills — Chatwoot integration knowledge (if your workflows use Chatwoot)
- ralph-loop — Autonomous implementation loop
LangGraph skills (langgraph-fundamentals, langgraph-persistence, langchain-dependencies) are expected to be available in your Claude Code environment.
Converted applications integrate with Langfuse for observability. The generated code includes a helper module and wires it into all graph/agent invocations. Users need to provide their Langfuse API keys in .env:
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_BASEURL=https://cloud.langfuse.comWhen keys are not set, the integration is silently disabled with zero overhead.
Converted applications include a centralized logger service (src/lib/logger.ts) built on pino with structured, leveled logging throughout all layers — webhook handlers, graph nodes, tools, API calls, and error paths. Log level is configurable via LOG_LEVEL env var (default: info). Pretty-printed in development, JSON in production.
MIT