I got tired of every AI tool wanting $20/month + my data, so I built AgentKit — 5 production-ready AI agents as import-ready n8n workflows that run entirely on your own machine.
The 5 agents:
Telegram AI Assistant — chat with memory (Google Sheets), powered by Ollama or OpenAI
Content Repurposer — send /repurpose on Telegram, get X thread + LinkedIn post + IG caption + YouTube pack
Lead Qualifier — webhook in, AI scores the lead 1-10, hot ones ping you on Telegram instantly
Daily Researcher — 8AM schedule trigger, RSS in, AI digest out to Telegram (EN + Roman Urdu)
Support Bot — FAQ-only answers from your knowledge base, never hallucinates
Local-first stack: your n8n + Ollama (free) or OpenAI + Telegram (free) + Google Sheets. No cloud service, no monthly fee.
Free Community Edition (GitHub, import-ready JSONs + setup guide):
Each workflow has a CONFIG node (one place for all keys/settings) and a sticky with setup notes. Tested on n8n 2.43.7.
There’s also a $59 commercial version (client work allowed) — link in the repo README.
Would love feedback — especially if something breaks on import, I’ll fix it same day. What would you automate first?
Update — Oct 22: I recorded a full A-to-Z demo of the commercial version: I download the actual buyer file on camera and run all 5 agents live in n8n, nothing pre-installed. https://youtu.be/dO8RJ6XmwwE
I’m posting it here because the recording caught 4 real defects in my own kit — I’d rather publish them than hide them:
The AI node timeout was hard-coded at 90s instead of reading the CONFIG node, so slow local models died mid-run.
Agent 01’s log node wrote to the memory tab instead of the log tab in Google Sheets.
The README’s file map didn’t match the shipped folders.
START-HERE used absolute paths that break on any other machine.
All four are documented openly in the video description, and fixes are underway for both editions. D1 is the one that can bite mid-run — if a local model times out on you, that node is why.
One question for other builders here: where do you put error handling — inside each workflow, or one global error workflow that everything calls? I’ve changed my mind on this twice already.