{"_id":"@elizaos/plugin-n8n-root","_rev":"4-2079827cdd5131ae68be39e744cc6767","name":"@elizaos/plugin-n8n-root","dist-tags":{"next":"2.0.0-alpha.1","latest":"2.0.0-alpha.1"},"versions":{"2.0.0-alpha.1":{"name":"@elizaos/plugin-n8n-root","version":"2.0.0-alpha.1","keywords":["plugin","elizaos","n8n","ai","plugin-creation","anthropic","claude"],"author":{"name":"ElizaOS"},"license":"MIT","_id":"@elizaos/plugin-n8n-root@2.0.0-alpha.1","maintainers":[{"name":"shawticus","email":"shawmakesmagic@gmail.com"},{"name":"shakkernerd","email":"shakkerdroid@gmail.com"},{"name":"wtfsayo","email":"hi@sayo.wtf"},{"name":"odilitime","email":"janesmith@airmail.cc"},{"name":"cjft","email":"cjft@trimboli.io"}],"homepage":"https://github.com/elizaos/eliza#readme","bugs":{"url":"https://github.com/elizaos/eliza/issues"},"dist":{"shasum":"df04b3e3e110a090e93d5efb25134dd937729232","tarball":"https://registry.npmjs.org/@elizaos/plugin-n8n-root/-/plugin-n8n-root-2.0.0-alpha.1.tgz","fileCount":89,"integrity":"sha512-smyMxw4Hb0jA7QojnMPvsGhAsRQhLkDgHrdxjdpuhzlU+y2vXuZEH4Pn+4QINuz6J/UpIFps1t8pbjPnmEKFIQ==","signatures":[{"sig":"MEUCIHC3C/WpL7y91pqxK3WSAXm2HE6v1bXcBM6KGXLRTW/9AiEA6I58YcfdQAqDtgz8TVx6waWl7lvtFRw3kA2rvZj8BuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":524172},"main":"typescript/dist/index.js","type":"module","types":"typescript/dist/index.d.ts","exports":{".":{"types":"./typescript/dist/index.d.ts","import":"./typescript/dist/index.js","default":"./typescript/dist/index.js"},"./rust":{"import":"./rust/pkg/node/elizaos_plugin_plugin_n8n.js"},"./package.json":"./package.json"},"gitHead":"05d4ca11d769db8c7f54a722ee24b2ce2b951543","scripts":{"dev":"cd typescript && bun --hot build.ts","lint":"bunx @biomejs/biome check --write ./typescript","test":"bun run test:ts && bun run test:rust && bun run test:python","build":"bun run build:ts && bun run build:rust && bun run build:python","clean":"rm -rf typescript/dist python/dist rust/target .turbo node_modules","test:ts":"cd typescript && vitest run || echo 'TypeScript tests skipped - no tests found'","build:ts":"cd typescript && bun run build","lint:rust":"test -d rust && cd rust && cargo clippy --all-targets --fix --allow-dirty --allow-staged -- -D warnings && cargo fmt || echo 'Rust lint skipped'","test:rust":"test -d rust && cd rust && cargo test || echo 'Rust tests skipped'","typecheck":"tsc --noEmit -p typescript/tsconfig.json","build:rust":"test -d rust && cd rust && cargo build --release || echo 'Rust build skipped - no rust directory'","lint:check":"bunx @biomejs/biome check ./typescript","lint:python":"test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint skipped'","test:python":"if test -d python; then cd python && pytest -p no:anchorpy --asyncio-mode=auto; else echo 'Python tests skipped'; fi","build:python":"test -d python && cd python && (python3 -m build 2>/dev/null || pyproject-build) || echo 'Python build skipped - no python directory'","lint:python:fix":"test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint fix skipped'"},"_npmUser":{"name":"shawticus","email":"shawmakesmagic@gmail.com"},"repository":{"url":"git+https://github.com/elizaos/eliza.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v22.20.0+arm64 (darwin)","agentConfig":{"pluginType":"elizaos:plugin:1.0.0","pluginParameters":{"CLAUDE_MODEL":{"type":"string","default":"claude-3-opus-20240229","required":false,"description":"Claude model to use"},"PLUGIN_DATA_DIR":{"type":"string","default":"./data","required":false,"description":"Directory for plugin workspace"},"ANTHROPIC_API_KEY":{"type":"string","required":true,"sensitive":true,"description":"API key for Anthropic Claude models"}}},"description":"N8n workflow integration plugin with AI-powered plugin creation for ElizaOS","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.5","typescript":"^5.9.3","@types/node":"^25.0.3","@biomejs/biome":"^2.3.11"},"peerDependencies":{"@elizaos/core":"2.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/plugin-n8n-root_2.0.0-alpha.1_1769034075030_0.7266816553485971","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-21T22:21:14.923Z","modified":"2026-06-16T05:14:49.048Z","2.0.0-alpha.1":"2026-01-21T22:21:15.253Z"},"bugs":{"url":"https://github.com/elizaos/eliza/issues"},"author":{"name":"ElizaOS"},"license":"MIT","homepage":"https://github.com/elizaos/eliza#readme","keywords":["plugin","elizaos","n8n","ai","plugin-creation","anthropic","claude"],"repository":{"url":"git+https://github.com/elizaos/eliza.git","type":"git"},"description":"N8n workflow integration plugin with AI-powered plugin creation for ElizaOS","maintainers":[{"email":"shawmakesmagic@gmail.com","name":"shawticus"},{"email":"janesmith@airmail.cc","name":"odilitime"}],"readme":"# 🤖 elizaOS N8n Plugin\n\n> **AI-powered plugin creation for ElizaOS** - Transform natural language into production-ready plugins using Claude models.\n\n[![npm version](https://img.shields.io/npm/v/@elizaos/plugin-n8n.svg)](https://www.npmjs.com/package/@elizaos/plugin-n8n)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## 🌟 Overview\n\nThe N8n plugin enables AI agents to autonomously create, build, test, and deploy ElizaOS plugins. Available in **TypeScript**, **Python**, and **Rust** with full feature parity.\n\n### Key Features\n\n- 🧠 **AI-Powered Generation** - Claude models generate complete plugin implementations\n- 🔄 **Iterative Refinement** - Automatic error fixing through build/lint/test cycles\n- ✅ **Quality Assurance** - Built-in testing and validation\n- 🚀 **Production Ready** - Generated code follows ElizaOS best practices\n- 🌐 **Multi-Language** - Use from TypeScript, Python, or Rust\n\n## 📦 Installation\n\n### TypeScript/Node.js\n\n```bash\nnpm install @elizaos/plugin-n8n\n# or\npnpm add @elizaos/plugin-n8n\n# or\nbun add @elizaos/plugin-n8n\n```\n\n### Python\n\n```bash\npip install elizaos-plugin-n8n\n```\n\n### Rust\n\n```toml\n[dependencies]\nelizaos-plugin-n8n = \"1.0\"\n```\n\n## ⚙️ Configuration\n\nSet the following environment variables:\n\n| Variable            | Required | Description                | Default                  |\n| ------------------- | -------- | -------------------------- | ------------------------ |\n| `ANTHROPIC_API_KEY` | ✅       | Anthropic API key          | -                        |\n| `PLUGIN_DATA_DIR`   | ❌       | Plugin workspace directory | `./data`                 |\n| `CLAUDE_MODEL`      | ❌       | Claude model to use        | `claude-3-opus-20240229` |\n\n## 🚀 Quick Start\n\n### TypeScript\n\n```typescript\nimport { n8nPlugin } from \"@elizaos/plugin-n8n\";\n\n// Register with your agent\nconst agent = new Agent({\n  name: \"DevBot\",\n  plugins: [n8nPlugin],\n});\n\n// The agent can now create plugins via conversation:\n// \"Create a weather plugin that fetches current conditions\"\n```\n\n### Python\n\n```python\nimport asyncio\nfrom elizaos_plugin_n8n import N8nConfig, PluginCreationClient, PluginSpecification\n\nasync def main():\n    config = N8nConfig.from_env()\n\n    async with PluginCreationClient(config) as client:\n        spec = PluginSpecification(\n            name=\"@elizaos/plugin-weather\",\n            description=\"Weather information plugin\",\n            actions=[{\"name\": \"getWeather\", \"description\": \"Get weather\"}],\n        )\n\n        job_id = await client.create_plugin(spec)\n        print(f\"Job started: {job_id}\")\n\nasyncio.run(main())\n```\n\n### Rust\n\n```rust\nuse elizaos_plugin_n8n::{N8nConfig, PluginCreationClient, PluginSpecification};\n\n#[tokio::main]\nasync fn main() -> anyhow::Result<()> {\n    let config = N8nConfig::from_env()?;\n    let client = PluginCreationClient::new(config)?;\n\n    let spec = PluginSpecification::builder()\n        .name(\"@elizaos/plugin-weather\")\n        .description(\"Weather information plugin\")\n        .build()?;\n\n    let job_id = client.create_plugin(spec, None).await?;\n    println!(\"Job started: {}\", job_id);\n\n    Ok(())\n}\n```\n\n## 💬 Conversational Usage\n\nOnce the plugin is registered with an agent, users can create plugins through natural conversation:\n\n```\nUser: Create a plugin that helps manage todo lists with add, remove, and list functionality\n\nAgent: I'll create a todo list management plugin for you!\n\n📦 Plugin: @elizaos/plugin-todo\n📝 Description: Todo list management with add, remove, and list functionality\n🆔 Job ID: abc-123-def\n\nComponents to be created:\n- 3 actions (addTodo, removeTodo, listTodos)\n- 1 provider (todoProvider)\n\nUse 'check plugin status' to monitor progress.\n```\n\n## 🛠️ Actions\n\n| Action                        | Description                           |\n| ----------------------------- | ------------------------------------- |\n| `createPlugin`                | Create plugin from JSON specification |\n| `createPluginFromDescription` | Create plugin from natural language   |\n| `checkPluginCreationStatus`   | Check job progress                    |\n| `cancelPluginCreation`        | Cancel active job                     |\n\n## 📊 Providers\n\n| Provider                       | Description            |\n| ------------------------------ | ---------------------- |\n| `plugin_creation_status`       | Active job status      |\n| `plugin_creation_capabilities` | Available features     |\n| `plugin_registry`              | Created plugins list   |\n| `plugin_exists_check`          | Check if plugin exists |\n\n## 🏗️ Architecture\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                     N8n Plugin System                        │\n├─────────────────────────────────────────────────────────────┤\n│                                                               │\n│  ┌─────────────┐    ┌──────────────┐    ┌───────────────┐   │\n│  │   Actions   │    │  Providers   │    │   Services    │   │\n│  │             │    │              │    │               │   │\n│  │ • create    │    │ • status     │    │ • Plugin      │   │\n│  │ • check     │◄───┤ • capability │◄───┤   Creation    │   │\n│  │ • cancel    │    │ • registry   │    │   Service     │   │\n│  │ • describe  │    │ • exists     │    │               │   │\n│  └─────────────┘    └──────────────┘    └───────┬───────┘   │\n│                                                   │          │\n│                    ┌──────────────────────────────▼───────┐  │\n│                    │     AI Code Generation Pipeline      │  │\n│                    ├──────────────────────────────────────┤  │\n│                    │                                      │  │\n│                    │  Generate → Build → Lint → Test     │  │\n│                    │     ↑                        │       │  │\n│                    │     └────── Validate ────────┘       │  │\n│                    │                                      │  │\n│                    │  Max 5 iterations for refinement    │  │\n│                    └──────────────────────────────────────┘  │\n│                                                               │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## 📁 Project Structure\n\n```\nplugin-n8n/\n├── typescript/           # TypeScript implementation\n│   ├── index.ts         # Main plugin export\n│   ├── actions/         # Action implementations\n│   ├── providers/       # Provider implementations\n│   ├── services/        # Service classes\n│   ├── types/           # Type definitions\n│   ├── utils/           # Utilities\n│   └── __tests__/       # Tests\n├── python/              # Python implementation\n│   ├── elizaos_plugin_n8n/\n│   │   ├── __init__.py\n│   │   ├── client.py    # Main client\n│   │   ├── config.py    # Configuration\n│   │   ├── errors.py    # Error types\n│   │   ├── models.py    # Model definitions\n│   │   └── types.py     # Type definitions\n│   └── tests/           # Tests\n├── rust/                # Rust implementation\n│   ├── src/\n│   │   ├── lib.rs       # Library entry\n│   │   ├── client.rs    # Main client\n│   │   ├── config.rs    # Configuration\n│   │   ├── error.rs     # Error types\n│   │   ├── models.rs    # Model definitions\n│   │   └── types.rs     # Type definitions\n│   └── tests/           # Tests\n├── package.json         # NPM package config\n└── README.md           # This file\n```\n\n## 🧪 Development\n\n### Build All\n\n```bash\nnpm run build:all\n```\n\n### Test All\n\n```bash\nnpm run test:all\n```\n\n### Lint All\n\n```bash\nnpm run lint:all\n```\n\n### Language-Specific Commands\n\n```bash\n# TypeScript\nnpm run build\nnpm run test\nnpm run typecheck\n\n# Python\nnpm run test:python\nnpm run lint:python\nnpm run typecheck:python\n\n# Rust\nnpm run build:rust\nnpm run test:rust\nnpm run lint:rust\n```\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## 🙏 Acknowledgments\n\n- Built with ❤️ by the ElizaOS community\n- Powered by [Anthropic's Claude](https://www.anthropic.com)\n- Inspired by [n8n](https://n8n.io) workflow automation\n\n---\n\n<p align=\"center\">\n  <a href=\"https://github.com/elizaos/eliza\">⭐ Star us on GitHub</a> •\n  <a href=\"https://x.com/elizaos\">🐦 Follow on X</a> •\n  <a href=\"https://discord.gg/elizaos\">💬 Join our Discord</a>\n</p>\n","readmeFilename":"README.md"}