This repository contains a collection of custom n8n nodes for enhanced document processing, text splitting, and embeddings generation, maintained by Reset Network.
All packages are published to npm under the @resetnetwork
scope and can be installed individually:
Package | Version | Description |
---|---|---|
n8n-nodes-contextual-document-loader |
n8n-nodes-semantic-splitter-with-context instead |
|
n8n-nodes-semantic-splitter-with-context |
Semantic text splitter with contextual information for enhanced document processing | |
n8n-nodes-google-gemini-embeddings-extended |
Google Gemini Embeddings with extended features like output dimensions support | |
n8n-nodes-google-vertex-embeddings-extended |
Google Vertex AI Embeddings with output dimensions and configurable batch size support | |
n8n-nodes-query-retriever-rerank |
Advanced query retrieval with multi-step reasoning, reranking, and comprehensive debugging | |
n8n-nodes-sse-trigger-extended |
Extended Server-Sent Events trigger with custom headers support and enhanced reliability |
Each node can be installed individually via npm:
# Install a specific node
npm install n8n-nodes-semantic-splitter-with-context
# Or install multiple nodes
npm install n8n-nodes-semantic-splitter-with-context n8n-nodes-google-gemini-embeddings-extended n8n-nodes-query-retriever-rerank n8n-nodes-sse-trigger-extended
For local development and testing:
# Clone the repository
git clone https://github.com/ResetNetwork/n8n-nodes.git
cd n8n-nodes
# Install dependencies for all packages
npm install
# Build all packages (optimized with Turborepo caching)
npm run build:all
# Set up local development environment
./setup-local.sh
# Start n8n
./start-n8n.sh
This repository uses pnpm workspaces with Turborepo for optimized build caching and task orchestration, plus Changesets for version management.
# Install dependencies for all packages
pnpm install
# Build all packages (optimized with Turborepo caching)
pnpm run build:all
# Build all packages (using pnpm workspaces)
pnpm run build
# Build only packages that changed since last commit
pnpm run build:changed
# Run linting on all packages
pnpm run lint
# Fix linting issues in all packages
pnpm run lintfix
# Format code in all packages
pnpm run format
# Run development mode for all packages (with watch mode)
pnpm run dev
# Run tests across all packages
pnpm run test
# Create a changeset after making changes
pnpm run changeset
# Update package versions based on changesets
pnpm run version-packages
# Publish updated packages to npm
pnpm run release
# Legacy publish method (backup)
pnpm run publish-all
./setup-local.sh
- Automatically builds and links all nodes for local testing./start-n8n.sh
- Starts n8n with pre-flight checks./dev-watch.sh
- Runs all nodes in watch mode for development./cleanup-local.sh
- Removes all node links when you're done
You can also work with individual packages:
# Work on a specific package
cd n8n-nodes-semantic-splitter-with-context
# Install dependencies for this package only
npm install
# Build this package only
npm run build
# Run in development mode
npm run dev
- Node.js (version 18 or above)
- pnpm (version 9 or above) - Install with
npm install -g pnpm
- n8n installed globally or locally
# Clone and setup
git clone https://github.com/ResetNetwork/n8n-nodes.git
cd n8n-nodes
# Run the setup script
./setup-local.sh
# Start n8n
./start-n8n.sh
For development with auto-reload:
# In one terminal, run the watchers
./dev-watch.sh
# In another terminal, start n8n
./start-n8n.sh
If you prefer manual setup:
-
Install n8n globally (if not already installed):
npm install n8n -g
-
Clone and prepare the repository:
git clone https://github.com/ResetNetwork/n8n-nodes.git cd n8n-nodes npm install
-
Build all packages:
npm run build
-
Link packages to n8n:
# Create the custom directory if it doesn't exist mkdir -p ~/.n8n/custom cd ~/.n8n/custom npm init -y # Link each package npm link n8n-nodes-semantic-splitter-with-context npm link n8n-nodes-google-gemini-embeddings-extended npm link n8n-nodes-google-vertex-embeddings-extended npm link n8n-nodes-query-retriever-rerank npm link n8n-nodes-sse-trigger-extended
-
Start n8n:
n8n start
This repository uses Changesets for version management and publishing.
- npm Account: You need an npm account with access to publish packages
- Organization Access: For publishing under an organization scope, you need appropriate permissions
- Authentication: Login to npm via
npm login
After making changes to any package, create a changeset to document the changes:
npm run changeset
This will:
- Prompt you to select which packages have changed
- Ask for the type of change (patch, minor, major)
- Let you write a summary of the changes
- Create a changeset file in
.changeset/
When ready to release, update package versions based on changesets:
npm run version-packages
This will:
- Update package.json versions according to changesets
- Update CHANGELOG.md files
- Remove consumed changeset files
Publish the updated packages:
npm run release
This will:
- Publish all packages with updated versions to npm
- Use the configured public access
The old publishing method is still available:
npm run publish-all
- Create changesets immediately after making changes
- Use semantic versioning appropriately:
patch
: Bug fixes and non-breaking changesminor
: New features that are backward compatiblemajor
: Breaking changes
- Write clear changeset summaries that explain the impact to users
- Group related changes in a single changeset when appropriate
After installation, verify the nodes appear in n8n:
- Open n8n in your browser (typically at http://localhost:5678)
- Search for the following nodes in the nodes panel:
- Semantic Splitter with Context (search for "semantic splitter")
- Google Gemini Embeddings Extended (search for "gemini")
- Google Vertex Embeddings Extended (search for "vertex")
- Query Retriever with Rerank (search for "query retriever" or "rerank")
- SSE Trigger Extended (search for "sse trigger" or "server-sent events")
For development testing, use the provided test script:
#!/bin/bash
# test-nodes.sh
echo "Building all nodes..."
npm run build
echo "Starting n8n..."
n8n start
For testing the SSE Trigger Extended node, the repository includes a built-in test server that automatically starts with n8n:
- Endpoint:
http://localhost:3001/events
- Authentication: Requires either:
x-api-key: test-key-123
headerauthorization: Bearer test-token-456
header
- Behavior: Sends a new message every 2 seconds with unique timestamps
- Auto-start: Automatically runs when using
./start-n8n.sh
Manual SSE server commands:
# Start SSE server only
npm run test-sse-server
# Test with API key (Header Auth)
curl -H "x-api-key: test-key-123" http://localhost:3001/events
# Test with Bearer token
curl -H "authorization: Bearer test-token-456" http://localhost:3001/events
# Check server health
curl http://localhost:3001/health
n8n Configuration Examples:
- Header Auth: Header Name =
x-api-key
, Header Value =test-key-123
- Bearer Token: Token =
test-token-456
- Ensure the node is properly built (
npm run build
) - Check that the node is linked correctly
- Restart n8n
- Check the n8n logs for any error messages
If ~/.n8n/custom
doesn't exist:
mkdir -p ~/.n8n/custom
cd ~/.n8n/custom
npm init -y
If you encounter permission issues:
- Use
sudo
for global npm operations, or - Configure npm to use a different directory for global packages
If your n8n installation uses a different directory (set via N8N_CUSTOM_EXTENSIONS
), use that directory instead of ~/.n8n/custom
.
If you encounter "Cannot use import statement outside a module" errors:
- Clean node_modules and reinstall dependencies
- Ensure you're using compatible package versions
- Check that TypeScript target is set correctly (ES2019 or later)
We welcome contributions! Please follow these guidelines:
- Fork the repository and create a feature branch
- Follow the existing code structure and patterns
- Run linting before committing:
npm run lint
- Fix any linting issues:
npm run lintfix
- Format code:
npm run format
- Test your changes thoroughly in a local n8n instance
- Submit a pull request with a clear description of your changes
- Make your changes in the respective node's source files
- Run the build command:
npm run build:all
(ornpm run build
for legacy method) - Test in n8n
- For active development, use watch mode:
npm run dev
- Before committing, create a changeset:
npm run changeset
- Build caching: Only rebuilds packages that have changed
- Parallel execution: Runs tasks across packages simultaneously
- Incremental builds: Use
npm run build:changed
to build only modified packages - Task orchestration: Optimizes task dependencies and execution order
MIT License - see individual package directories for specific license files.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Check individual package README files for specific documentation