Buckets:
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| NightVisionToggle-1.0.4.jar | 17.5 kB xet | 413dfa65 | |
| README.md | 8.06 kB xet | a21b6e81 | |
| ferritecore-8.2.0-fabric.jar | 80.1 kB xet | 09d4df74 | |
| sodium-fabric-0.8.12+mc1.21.11.jar | 1.91 MB xet | 6def2779 | |
| xaeroworldmap-fabric-1.21.11-1.41.0.jar | 1.44 MB xet | 9e21e11c |
n8nClaw
A lightweight, self-hosted AI assistant built entirely in n8n. Inspired by OpenClaw — multi-channel messaging, persistent memory, task management, and autonomous work — all in a single visual workflow.
Architecture
TRIGGERS
+-----------+-----------+-----------+
| Telegram | WhatsApp | Gmail | Hourly
| Trigger | Webhook | Trigger | Heartbeat
+-----------+-----------+-----------+
| | | |
[ Filter ] [ Filter ] [ Get User ] [ Get User ]
| | | |
[ Get User Profile from Init Table ]
| | | |
[ Edit Fields — normalize: user_message, system_prompt, last_channel ]
\ | | /
+----------+-----------+----------+
|
+-----v------+
| n8nClaw | (Claude Sonnet 4.5 via OpenRouter)
| AI Agent | (Postgres Chat Memory - 15 msgs)
+-----+------+
|
+------------+-------------+
| | |
[ Switch: last_channel ]
| |
Telegram WhatsApp
Reply Reply (Evolution API)
TOOLS & SUB-AGENTS
+-------------------------------------------+
| Tasks DB | Subtasks DB | Init/User DB |
| Research | Email Mgr | Doc Manager |
| Worker 1 | Worker 2 | Worker 3 |
| Vector Store (Supabase RAG) |
+-------------------------------------------+
MEMORY PIPELINE (scheduled)
+-------------------------------------------+
| Postgres Chat History |
| -> Aggregate messages |
| -> Summarize (Haiku 4.5) |
| -> Embed (OpenAI) |
| -> Store in Supabase Vector DB |
+-------------------------------------------+
What's Included
Channels (Triggers)
| Channel | Trigger Type | Notes |
|---|---|---|
| Telegram | Native Telegram Trigger | Supports text, voice, images, documents |
| Webhook (Evolution API) | Text messages via Evolution API | |
| Gmail | Poll trigger (every minute) | Auto-processes incoming emails |
| Heartbeat | Schedule (hourly) | Autonomous task processing |
Core Agent — n8nClaw
- Model: Claude Sonnet 4.5 (via OpenRouter)
- Memory: Postgres chat history (15-message context window)
- Personality: Configurable via "soul" field (name, vibe, purpose)
- User Profile: Living document updated as the agent learns about you
Media Handling (Telegram)
| Media Type | Processing |
|---|---|
| Voice messages | Gemini 2.5 Flash transcription |
| Images | Gemini nano-banana-pro-preview analysis |
| Documents | Gemini 2.5 Flash document analysis |
Tools
| Tool | Purpose |
|---|---|
| Get/Upsert Tasks | Task management (n8n data tables) |
| Get/Upsert Subtasks | Subtask tracking linked by parent_task_id |
| Update User & Heartbeat | Persist user profile and heartbeat state |
| Supabase Vector Store | RAG — query past conversations for context |
Sub-Agents
| Agent | Model | Purpose |
|---|---|---|
| Research Agent | Gemini 3 Flash | Web research via Tavily + Wikipedia |
| Email Manager | Claude Haiku 4.5 | Gmail CRUD (read, reply, send, delete, search) |
| Document Manager | Claude Haiku 4.5 | Google Docs/Drive (create, update, move, delete) |
| Worker 1 | Claude Haiku 4.5 | Simple tasks |
| Worker 2 | Claude Sonnet 4.5 | Mid-level work |
| Worker 3 | Claude Opus 4.6 | Higher-order thinking |
Long-Term Memory Pipeline
A scheduled workflow that:
- Pulls new chat history from Postgres
- Aggregates and summarizes conversations (Haiku 4.5)
- Embeds summaries (OpenAI embeddings)
- Stores in Supabase vector database for RAG retrieval
Setup
Prerequisites
- n8n (self-hosted or cloud)
- Accounts/API keys for the services you want to use
1. Import the Workflow
- Open n8n
- Go to Workflows > Import from File
- Select
n8nClaw.json
2. Create Data Tables
Create three n8n data tables:
Init Table (user profile):
| Column | Type |
|---|---|
| username | string |
| soul | string |
| user | string |
| heartbeat | string |
| last_channel | string |
| last_vector_id | number |
Tasks Table:
| Column | Type |
|---|---|
| task_name | string |
| task_details | string |
| task_complete | boolean |
| Is_recurring | boolean |
Subtasks Table:
| Column | Type |
|---|---|
| parent_task_id | string |
| subtask_name | string |
| subtask_details | string |
| subtask_complete | boolean |
3. Configure Credentials
Set up the following credentials in n8n (only configure what you need):
| Credential | Required For | Where to Get |
|---|---|---|
| Telegram Bot API | Telegram channel | @BotFather |
| OpenRouter API | All AI models | openrouter.ai |
| Postgres | Chat memory | Your Postgres instance |
| Supabase | Vector store / RAG | supabase.com |
| OpenAI API | Embeddings | platform.openai.com |
| Gmail OAuth2 | Email management | Google Cloud Console |
| Evolution API | evolution-api.com | |
| Google AI (Gemini) | Media processing | ai.google.dev |
| Google Docs/Drive OAuth2 | Document management | Google Cloud Console |
| Tavily API | Web search | tavily.com |
4. Update Placeholders
Search the workflow JSON for YOUR_ and replace with your actual values:
| Placeholder | What to Replace With |
|---|---|
YOUR_USERNAME |
Your chosen username |
YOUR_TELEGRAM_CHAT_ID |
Your Telegram chat ID (get it from @userinfobot) |
YOUR_PHONE |
Your phone number (for WhatsApp filtering) |
YOUR_EVOLUTION_INSTANCE |
Your Evolution API instance name |
YOUR_WEBHOOK_PATH |
Auto-generated on import (or set your own) |
YOUR_*_TABLE_ID |
The IDs of the data tables you created in step 2 |
YOUR_*_CREDENTIAL_ID |
Auto-populated when you connect credentials in n8n |
YOUR_PROJECT_ID |
Your n8n project ID |
5. Set Up Supabase Vector Store
Create a documents table in Supabase with the pgvector extension enabled. The table should match the schema expected by n8n's Supabase Vector Store node (with a match_documents function).
6. Activate
- Connect all credentials in the n8n UI
- Update the data table IDs to point to your tables
- Update the filter nodes with your Telegram chat ID / WhatsApp number
- Activate the workflow
Customization
Adding a New Channel
- Add a new trigger node (webhook, poll, etc.)
- Add a filter node to validate incoming messages
- Add a "Get row(s)" node to fetch user profile from the Init table
- Add an "Edit Fields" node to normalize into
user_message,system_prompt_details, andlast_channel - Connect to the n8nClaw agent
- Add a new output in the Switch node to route responses back to the channel
Changing Models
All models are configured via OpenRouter. To swap models, edit the model ID in any OpenRouter Chat Model node. The tiered worker system is:
- Worker 1: Cheap/fast model for simple tasks
- Worker 2: Mid-tier model for moderate complexity
- Worker 3: Best model for reasoning-heavy work
License
MIT
- Total size
- 3.45 MB
- Files
- 5
- Last updated
- Jun 17
- Pre-warmed CDN
- US EU US EU