npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-openclaw-chat

v1.0.8

Published

n8n node to interact with OpenClaw Gateway HTTP API (chat completions, embeddings, models, responses, tools)

Readme

n8n Node for OpenClaw Gateway HTTP API

npm version License: MIT

This n8n community node provides integration with OpenClaw Gateway HTTP API, enabling you to interact with OpenClaw agents directly from your n8n workflows. It supports chat completions, embeddings, model listing, OpenResponses, and direct tool invocation.

Features

  • Chat Completions: Standard OpenAI-compatible chat completions with streaming support
  • Embeddings: Generate embeddings for text inputs
  • Model Listing: List available OpenClaw models/agents
  • OpenResponses: Native OpenClaw responses with file uploads, tools, and session management
  • Tool Invocation: Direct tool calls (memory search, session listing, etc.)
  • Flexible Authentication: Support for multiple OpenClaw Gateway instances
  • Error Handling: Comprehensive error handling with informative messages

Installation

Method 1: Community Nodes (Recommended)

  1. Go to Settings → Community Nodes in your n8n instance
  2. Click "Install"
  3. Enter n8n-nodes-openclaw-chat and click "Install"

Method 2: Manual Installation

cd ~/.n8n/nodes
npm install n8n-nodes-openclaw-chat

Method 3: Docker Deployment

Add to your docker-compose.yml:

volumes:
  - ~/.n8n/nodes:/home/node/.n8n/nodes

environment:
  - N8N_CUSTOM_EXTENSIONS=n8n-nodes-openclaw-chat

Configuration

1. Create OpenClaw API Credentials

  1. In your n8n workflow, add an OpenClaw Chat node
  2. Click the "Create New Credential" button
  3. Select "OpenClaw API" credential type
  4. Fill in the following fields:

| Field | Description | Example | |-------|-------------|---------| | Base URL | Your OpenClaw Gateway URL | http://localhost:18789 or https://agent1.apipie.ai | | API Token | Bearer token from OpenClaw Gateway | 82af605cb191558a24874cdc5983cd07bdd40819723920cb2502f4bd456bc026 | | Default Agent ID | Default agent for chat completions | default, main, webchat | | Allow Insecure HTTPS | Allow self-signed certificates (dev only) | false |

Security Note: Keep your API token secure. Never commit it to version control.

2. Get Your OpenClaw Gateway Token

  • Local OpenClaw: Check ~/.openclaw/openclaw.json for gateway.auth.token
  • OpenClaw Cloud: Available in your instance dashboard
  • Generate new token: Run openclaw gateway token generate

Node Operations

📨 Chat Completion

Endpoint: POST /v1/chat/completions

Create chat completions with OpenAI-compatible API.

Parameters:

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | Model | String | Yes | openclaw/default | Model identifier (openclaw/<agentId>) | | Messages | Array | Yes | - | Conversation history with role/content | | Stream | Boolean | No | false | Enable streaming response (SSE) | | Max Tokens | Number | No | 4096 | Maximum tokens to generate | | Temperature | Number | No | 1 | Sampling temperature (0-2) | | Top P | Number | No | 1 | Nucleus sampling (0-1) | | Frequency Penalty | Number | No | 0 | Frequency penalty (-2 to 2) | | Presence Penalty | Number | No | 0 | Presence penalty (-2 to 2) | | Stop Sequences | String | No | - | Sequences to stop generation | | User | String | No | - | End-user identifier |

Example Workflow:

Manual Trigger → OpenClaw Chat (Chat Completion)

Node Configuration:

  • Resource: Chat Completion
  • Operation: Create
  • Model: openclaw/default
  • Messages:
    • Role: system, Content: You are a helpful assistant
    • Role: user, Content: What skills are installed?
  • Temperature: 0.7

🔤 Embeddings

Endpoint: POST /v1/embeddings

Generate embeddings for input text.

Parameters:

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | Model | String | Yes | openclaw/default | Embedding model | | Input | String | Yes | - | Text or array of texts to embed | | Encoding Format | Options | No | float | float or base64 | | User | String | No | - | End-user identifier |

Example Workflow:

Webhook → OpenClaw Chat (Embeddings) → Vector Database

📋 Model Listing

Endpoint: GET /v1/models

List available OpenClaw models and agents.

Example Workflow:

Schedule Trigger → OpenClaw Chat (Model List) → Google Sheets

🚀 OpenResponses

Endpoint: POST /v1/responses

Native OpenClaw responses with advanced features (files, tools, session persistence).

Parameters:

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | Model | String | Yes | openclaw | Model identifier | | Input | String/Array | Yes | - | Text, message array, or structured input | | Stream | Boolean | No | false | Enable streaming response | | Tools | JSON | No | - | Tool definitions array | | User | String | No | - | Stable session identifier | | Previous Response ID | String | No | - | Continue previous conversation |

Example Workflow:

Email Attachment → File Parse → OpenClaw Chat (Response) → Send Answer

🛠️ Tool Invocation

Endpoint: POST /tools/invoke

Direct tool invocation without full agent turn.

Parameters:

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | Tool Name | String | Yes | - | Tool name (e.g., memory_search, sessions_list) | | Action | String | No | - | Tool action (e.g., json) | | Arguments | JSON | No | {} | Tool arguments |

Example Workflow:

Manual Trigger → OpenClaw Chat (Tool) → Filter → Display Results

Supported Tools (subject to gateway policy):

  • memory_search - Search memory files
  • sessions_list - List active sessions
  • cron_list - List cron jobs
  • gateway_status - Gateway health check
  • ...and other non-destructive tools

Advanced Usage

Streaming Responses

Enable streaming for real-time token delivery:

  1. Select "Create Streaming" operation for Chat Completion or Response resources
  2. Connect to "Split In Batches" node to process chunks
  3. Use "Code" node to assemble final response

Session Management

Use the user field to maintain conversation context across nodes:

{
  "user": "customer-12345",
  "input": "Follow up on my previous question"
}

File Uploads (OpenResponses)

Use OpenResponses endpoint with base64-encoded files:

{
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": "Summarize this PDF"
    },
    {
      "type": "input_file",
      "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": "BASE64_DATA",
        "filename": "document.pdf"
      }
    }
  ]
}

Tool Definitions (OpenResponses)

Define client tools for agent use:

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get current weather",
        "parameters": {
          "type": "object",
          "properties": {
            "location": { "type": "string" }
          },
          "required": ["location"]
        }
      }
    }
  ]
}

Example Workflows

1. Customer Support Bot

Webhook (Customer Question)
    ↓
OpenClaw Chat (Chat Completion)
    ↓
IF (Needs Human)
    ├→ Slack Notification
    └→ Ticket Creation
    ↓
OpenClaw Chat (Response with Tools)
    ↓
Send Email Response

2. Document Processing Pipeline

Google Drive (New File)
    ↓
Convert to Text
    ↓
OpenClaw Chat (Embeddings)
    ↓
Qdrant Vector Store
    ↓
OpenClaw Chat (Response with RAG)
    ↓
Save to Database

3. Automated Monitoring

Schedule Trigger (Every hour)
    ↓
OpenClaw Chat (Tool: sessions_list)
    ↓
Filter (Inactive > 24h)
    ↓
IF (Found)
    └→ Slack Alert

Error Handling

The node includes comprehensive error handling:

| Error Type | Description | Resolution | |------------|-------------|------------| | Authentication Failed | Invalid API token or base URL | Verify credentials, check gateway status | | Endpoint Not Found | API endpoint disabled | Enable endpoint in gateway config | | Rate Limited | Too many requests | Add wait node, implement backoff | | Invalid Input | Malformed request body | Check parameter formatting | | Tool Denied | Tool blocked by gateway policy | Use allowed tools only |

Enable "Continue on Fail" in node settings to handle errors gracefully in your workflow.

Development

Project Structure

n8n-nodes-openclaw-chat/
├── src/
│   ├── credentials/
│   │   └── OpenClawApi.credentials.ts
│   ├── nodes/
│   │   └── OpenClaw/
│   │       ├── OpenClawChat.node.ts
│   │       └── GenericFunctions.ts
│   └── index.ts
├── package.json
├── tsconfig.json
└── README.md

Build from Source

# Clone repository
git clone https://github.com/EncryptShawn/n8n-nodes-openclaw-chat.git
cd n8n-nodes-openclaw-chat

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run tests
npm test

# Lint code
npm run lint

Testing with Local n8n

  1. Build the node: npm run build
  2. Copy to n8n custom nodes directory:
    cp -r dist ~/.n8n/custom/n8n-nodes-openclaw-chat
  3. Restart n8n
  4. The node will appear as "OpenClaw Chat" in the node panel

API Reference

For complete OpenClaw Gateway HTTP API documentation, see:

Troubleshooting

Node Not Appearing

  1. Check n8n logs for loading errors
  2. Verify node is in ~/.n8n/custom/ directory
  3. Restart n8n instance
  4. Check n8n version compatibility (requires n8n 1.0+)

Authentication Errors

{
  "error": "OpenClaw API request failed: HTTP 401"
}
  1. Verify base URL includes protocol (http:// or https://)
  2. Check API token matches gateway token
  3. Test connection with curl:
    curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:18789/health

Endpoint Errors

{
  "error": "OpenClaw API request failed: HTTP 404"
}
  1. Ensure endpoint is enabled in gateway config:
    {
      "gateway": {
        "http": {
          "endpoints": {
            "chatCompletions": { "enabled": true },
            "responses": { "enabled": true }
          }
        }
      }
    }
  2. Restart gateway after config changes

Streaming Issues

  1. Ensure you're using "Create Streaming" operation
  2. Check n8n version supports streaming responses
  3. Verify network connectivity to gateway

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make changes with tests
  4. Submit a pull request

Please follow the n8n Node Development Guidelines.

Example Workflows

Check the examples/ directory for ready-to-import n8n workflows:

  • Basic Chat Completion (examples/basic-chat-completion.json) – Simple manual trigger asking OpenClaw to list installed skills

To import a workflow in n8n:

  1. Go to WorkflowsImport from file
  2. Select the JSON file
  3. Configure your OpenClaw API credentials (see Configuration)
  4. Execute the workflow

License

MIT © EncryptShawn

Support


Happy Automating! 🚀