n8n-nodes-deep-research 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Deep Research Node
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,190 @@
1
+ # n8n-nodes-deep-research
2
+
3
+ > **Free, zero-API-key research node for n8n** — search the web, Reddit, Hacker News, Wikipedia, news feeds, scrape any page, and run deep multi-source research, all at zero cost.
4
+
5
+ ![n8n Community Node](https://img.shields.io/badge/n8n-community%20node-blue)
6
+ ![Free Forever](https://img.shields.io/badge/free-forever-green)
7
+ ![No API Key](https://img.shields.io/badge/no%20API%20key%20required-success)
8
+
9
+ ## Features
10
+
11
+ | Operation | Source | Auth Required | Description |
12
+ |-----------|--------|---------------|-------------|
13
+ | **Web Search** | DuckDuckGo | No | General web search |
14
+ | **Reddit Search** | Reddit JSON API | No | Search posts with sort & time filters |
15
+ | **Hacker News** | HN Algolia API | No | Search stories, comments, Ask/Show HN |
16
+ | **Wikipedia** | Wikipedia API | No | Search articles, get extracts, any language |
17
+ | **News / RSS** | Google News, BBC, TechCrunch, Custom | No | Search news via RSS feeds |
18
+ | **GitHub** | GitHub Public API | No | Search repos, issues, code, users |
19
+ | **Scrape Web Page** | Any URL | No | Fetch page, extract text, links, metadata |
20
+ | **Deep Research** | ALL sources combined | No | Aggregates from every source in parallel |
21
+
22
+ ## Install
23
+
24
+ ### Option 1: Install via npm (recommended)
25
+
26
+ ```bash
27
+ # In your n8n custom nodes directory
28
+ cd ~/.n8n/custom
29
+ npm install n8n-nodes-deep-research
30
+ ```
31
+
32
+ Then restart n8n.
33
+
34
+ ### Option 2: Install globally and link
35
+
36
+ ```bash
37
+ # Clone or download this repo
38
+ git clone https://github.com/your-username/n8n-nodes-deep-research.git
39
+ cd n8n-nodes-deep-research
40
+ npm install
41
+ npm run build
42
+
43
+ # Link globally
44
+ npm link
45
+
46
+ # In your n8n custom nodes directory
47
+ cd ~/.n8n/custom
48
+ npm link n8n-nodes-deep-research
49
+ ```
50
+
51
+ ### Option 3: Docker
52
+
53
+ Add to your `docker-compose.yml`:
54
+
55
+ ```yaml
56
+ volumes:
57
+ - ./n8n-nodes-deep-research:/usr/local/lib/node_modules/n8n-nodes-deep-research
58
+ ```
59
+
60
+ Or in your Dockerfile:
61
+
62
+ ```dockerfile
63
+ COPY n8n-nodes-deep-research /usr/local/lib/node_modules/n8n-nodes-deep-research
64
+ RUN cd /usr/local/lib/node_modules/n8n-nodes-deep-research && npm install && npm run build
65
+ ```
66
+
67
+ ### Option 4: n8n Community Install (if published to npm)
68
+
69
+ In n8n, go to **Settings → Community Nodes → Install** and search for `deep-research`.
70
+
71
+ ## Usage
72
+
73
+ 1. Open any n8n workflow
74
+ 2. Add a **Deep Research** node
75
+ 3. Select your operation from the dropdown
76
+ 4. Enter your search query
77
+ 5. Configure any source-specific options (sort, time filter, etc.)
78
+ 6. Run the workflow
79
+
80
+ ### Example: Search Reddit for product feedback
81
+
82
+ ```
83
+ Operation: Reddit Search
84
+ Query: "best mechanical keyboard 2025"
85
+ Max Results: 15
86
+ Sort By: Top
87
+ Time Filter: Past Month
88
+ ```
89
+
90
+ ### Example: Deep Research on a topic
91
+
92
+ ```
93
+ Operation: Deep Research
94
+ Query: "quantum computing applications healthcare"
95
+ Max Results: 25
96
+ ```
97
+
98
+ This will run searches across DuckDuckGo, Reddit, Hacker News, Wikipedia, and Google News simultaneously and return all results.
99
+
100
+ ### Example: Scrape a web page
101
+
102
+ ```
103
+ Operation: Scrape Web Page
104
+ URL: https://example.com/article
105
+ Extract Links: true
106
+ Max Text Length: 20000
107
+ ```
108
+
109
+ ## Output Format
110
+
111
+ Each result is returned as a separate item with these common fields:
112
+
113
+ ```json
114
+ {
115
+ "title": "Result Title",
116
+ "url": "https://example.com/page",
117
+ "snippet": "Brief description or excerpt...",
118
+ "source": "duckduckgo|reddit|hackernews|wikipedia|news-google|github"
119
+ }
120
+ ```
121
+
122
+ ### Source-specific extra fields:
123
+
124
+ **Reddit**: `redditScore`, `redditAuthor`, `redditSubreddit`, `redditNumComments`, `redditCreatedUtc`
125
+
126
+ **Hacker News**: `hnPoints`, `hnAuthor`, `hnNumComments`, `hnCreated`, `hnObjectId`
127
+
128
+ **Wikipedia**: `wikiWordcount`, `wikiTimestamp`
129
+
130
+ **GitHub**: `githubStars`, `githubForks`, `githubLanguage`, `githubTopics`
131
+
132
+ **News/RSS**: `publishedAt`, `author`
133
+
134
+ **Scrape**: `description`, `ogTitle`, `ogDescription`, `ogImage`, `textContent`, `textLength`, `links`, `linksCount`
135
+
136
+ ### Return as Single Item
137
+
138
+ Enable **Additional Fields → Return as Single Item** to get all results wrapped in a single item:
139
+
140
+ ```json
141
+ {
142
+ "operation": "deepResearch",
143
+ "totalResults": 25,
144
+ "results": [
145
+ { "title": "...", "url": "...", "source": "..." },
146
+ ...
147
+ ]
148
+ }
149
+ ```
150
+
151
+ ## Development
152
+
153
+ ```bash
154
+ # Install dependencies
155
+ npm install
156
+
157
+ # Start development with hot reload
158
+ npm run dev
159
+
160
+ # Build for production
161
+ npm run build
162
+
163
+ # Lint code
164
+ npm run lint
165
+
166
+ # Lint and auto-fix
167
+ npm run lint:fix
168
+ ```
169
+
170
+ ## How It Works (No API Keys Needed)
171
+
172
+ - **DuckDuckGo**: Parses their HTML search page (no API key needed)
173
+ - **Reddit**: Uses the public `reddit.com/search.json` endpoint
174
+ - **Hacker News**: Uses the Algolia HN API (`hn.algolia.com`)
175
+ - **Wikipedia**: Uses the MediaWiki Action API
176
+ - **News**: Parses RSS/Atom feeds from news sites
177
+ - **GitHub**: Uses the unauthenticated public Search API (60 requests/hour)
178
+ - **Scraping**: Fetches raw HTML and extracts content
179
+
180
+ ## Limitations
181
+
182
+ - DuckDuckGo HTML parsing may break if DDG changes their page structure
183
+ - Reddit's public API has rate limits (without OAuth)
184
+ - GitHub unauthenticated API: 60 requests/hour
185
+ - Web scraping depends on the target page's structure
186
+ - No authentication means some rate-limited APIs may be slower
187
+
188
+ ## License
189
+
190
+ MIT
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none">
2
+ <circle cx="24" cy="24" r="22" stroke="#718096" stroke-width="2.5" fill="#1A202C"/>
3
+ <circle cx="20" cy="20" r="9" stroke="#63B3ED" stroke-width="2.5" fill="none"/>
4
+ <line x1="27" y1="27" x2="36" y2="36" stroke="#63B3ED" stroke-width="2.5" stroke-linecap="round"/>
5
+ <circle cx="20" cy="20" r="4" fill="#63B3ED"/>
6
+ <path d="M14 32 Q18 36 24 38 Q30 36 34 32" stroke="#63B3ED" stroke-width="1.5" fill="none" stroke-dasharray="2 2"/>
7
+ <circle cx="14" cy="30" r="2" fill="#90CDF4"/>
8
+ <circle cx="34" cy="30" r="2" fill="#90CDF4"/>
9
+ <circle cx="24" cy="38" r="2" fill="#90CDF4"/>
10
+ </svg>
@@ -0,0 +1,5 @@
1
+ import { type IExecuteFunctions, type INodeExecutionData, type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class DeepResearch implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }