agentsys 5.3.7 → 5.4.1
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/.agnix.toml +17 -7
- package/.claude-plugin/marketplace.json +13 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.gitmodules +3 -0
- package/AGENTS.md +4 -4
- package/CHANGELOG.md +37 -0
- package/README.md +46 -5
- package/lib/adapter-transforms.js +3 -1
- package/package.json +1 -1
- package/site/assets/css/main.css +39 -1
- package/site/assets/js/main.js +24 -0
- package/site/content.json +4 -4
- package/site/index.html +82 -7
- package/site/ux-spec.md +5 -5
- package/agent-knowledge/AGENTS.md +0 -231
- package/agent-knowledge/acp-with-codex-gemini-copilot-claude.md +0 -504
- package/agent-knowledge/ai-cli-advanced-integration-patterns.md +0 -670
- package/agent-knowledge/ai-cli-non-interactive-programmatic-usage.md +0 -1394
- package/agent-knowledge/all-in-one-plus-modular-packages.md +0 -576
- package/agent-knowledge/cli-browser-automation-agents.md +0 -936
- package/agent-knowledge/github-org-project-management.md +0 -319
- package/agent-knowledge/github-org-structure-patterns.md +0 -268
- package/agent-knowledge/kiro-supervised-autopilot.md +0 -400
- package/agent-knowledge/multi-product-org-docs.md +0 -622
- package/agent-knowledge/oss-org-naming-patterns.md +0 -368
- package/agent-knowledge/resources/acp-with-codex-gemini-copilot-claude-sources.json +0 -408
- package/agent-knowledge/resources/ai-cli-non-interactive-programmatic-usage-sources.json +0 -500
- package/agent-knowledge/resources/all-in-one-plus-modular-packages-sources.json +0 -310
- package/agent-knowledge/resources/cli-browser-automation-agents-sources.json +0 -428
- package/agent-knowledge/resources/github-org-project-management-sources.json +0 -239
- package/agent-knowledge/resources/github-org-structure-patterns-sources.json +0 -293
- package/agent-knowledge/resources/kiro-supervised-autopilot-sources.json +0 -135
- package/agent-knowledge/resources/multi-product-org-docs-sources.json +0 -514
- package/agent-knowledge/resources/oss-org-naming-patterns-sources.json +0 -458
- package/agent-knowledge/resources/skill-plugin-distribution-patterns-sources.json +0 -290
- package/agent-knowledge/resources/terminal-browsers-agent-automation-sources.json +0 -758
- package/agent-knowledge/resources/web-session-persistence-cli-agents-sources.json +0 -528
- package/agent-knowledge/skill-plugin-distribution-patterns.md +0 -661
- package/agent-knowledge/terminal-browsers-agent-automation.md +0 -776
- package/agent-knowledge/web-session-persistence-cli-agents.md +0 -1352
|
@@ -1,758 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"topic": "terminal browsers AI agent scripting automation",
|
|
3
|
-
"slug": "terminal-browsers-agent-automation",
|
|
4
|
-
"generated": "2026-02-20T00:00:00Z",
|
|
5
|
-
"depth": "deep",
|
|
6
|
-
"note": "WebFetch unavailable in this environment. Sources represent synthesized training knowledge (cutoff Aug 2025). URLs are canonical references, not fetched pages.",
|
|
7
|
-
"totalSources": 40,
|
|
8
|
-
"sources": [
|
|
9
|
-
{
|
|
10
|
-
"url": "https://lynx.invisible-island.net/lynx_help/lynx.1.html",
|
|
11
|
-
"title": "lynx(1) man page - Official Reference",
|
|
12
|
-
"qualityScore": 95,
|
|
13
|
-
"scores": {
|
|
14
|
-
"authority": 10,
|
|
15
|
-
"recency": 7,
|
|
16
|
-
"depth": 10,
|
|
17
|
-
"examples": 8,
|
|
18
|
-
"uniqueness": 8
|
|
19
|
-
},
|
|
20
|
-
"keyInsights": [
|
|
21
|
-
"-dump flag renders page to stdout and exits",
|
|
22
|
-
"-listonly extracts only links from -dump output",
|
|
23
|
-
"-cookie_file accepts Netscape-format cookie jars",
|
|
24
|
-
"-cmd_script allows keystroke automation for form submission",
|
|
25
|
-
"-source returns raw HTML without rendering",
|
|
26
|
-
"-accept_all_cookies enables automatic cookie acceptance",
|
|
27
|
-
"-width controls line wrap width (important for table parsing)",
|
|
28
|
-
"-display_charset UTF-8 prevents encoding garbage"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"url": "https://github.com/tats/w3m",
|
|
33
|
-
"title": "w3m - GitHub (tats fork, current maintained version)",
|
|
34
|
-
"qualityScore": 92,
|
|
35
|
-
"scores": {
|
|
36
|
-
"authority": 10,
|
|
37
|
-
"recency": 9,
|
|
38
|
-
"depth": 9,
|
|
39
|
-
"examples": 7,
|
|
40
|
-
"uniqueness": 8
|
|
41
|
-
},
|
|
42
|
-
"keyInsights": [
|
|
43
|
-
"-dump renders page to stdout",
|
|
44
|
-
"-T text/html reads HTML from stdin",
|
|
45
|
-
"-O UTF-8 sets output encoding",
|
|
46
|
-
"-cols N sets output width",
|
|
47
|
-
"Cookie stored in ~/.w3m/cookie automatically",
|
|
48
|
-
"Renders tables significantly better than lynx",
|
|
49
|
-
"curl | w3m -dump -T text/html is canonical agent pipeline"
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"url": "https://github.com/fathyb/carbonyl",
|
|
54
|
-
"title": "carbonyl - Chromium built for terminal, by Fathy Boundjadj",
|
|
55
|
-
"qualityScore": 94,
|
|
56
|
-
"scores": {
|
|
57
|
-
"authority": 10,
|
|
58
|
-
"recency": 10,
|
|
59
|
-
"depth": 9,
|
|
60
|
-
"examples": 9,
|
|
61
|
-
"uniqueness": 10
|
|
62
|
-
},
|
|
63
|
-
"keyInsights": [
|
|
64
|
-
"Chromium compiled to render in terminal via sixel/unicode",
|
|
65
|
-
"Exposes Chrome DevTools Protocol (CDP) on --remote-debugging-port",
|
|
66
|
-
"Can be driven by Playwright, Puppeteer, or any CDP client",
|
|
67
|
-
"Docker image: fathyb/carbonyl",
|
|
68
|
-
"Full JavaScript execution including SPAs, React, Vue",
|
|
69
|
-
"Supports carbonyl get-text subcommand for simple text extraction",
|
|
70
|
-
"Linux native; macOS experimental; WSL2 works"
|
|
71
|
-
]
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"url": "https://github.com/browsh-org/browsh",
|
|
75
|
-
"title": "browsh - Text-based browser using real Firefox",
|
|
76
|
-
"qualityScore": 88,
|
|
77
|
-
"scores": {
|
|
78
|
-
"authority": 10,
|
|
79
|
-
"recency": 8,
|
|
80
|
-
"depth": 8,
|
|
81
|
-
"examples": 7,
|
|
82
|
-
"uniqueness": 9
|
|
83
|
-
},
|
|
84
|
-
"keyInsights": [
|
|
85
|
-
"Wraps headless Firefox and renders output as colored Unicode",
|
|
86
|
-
"Supports full modern web: JS, CSS animations, WebGL",
|
|
87
|
-
"--startup-url flag for initial URL",
|
|
88
|
-
"Accepts JSON commands on stdin for programmatic control",
|
|
89
|
-
"Docker image: browsh/browsh for reproducible deploys",
|
|
90
|
-
"Startup is slow (10-30s) due to Firefox init",
|
|
91
|
-
"More complex to automate than lynx/w3m"
|
|
92
|
-
]
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"url": "https://chromedevtools.github.io/devtools-protocol/",
|
|
96
|
-
"title": "Chrome DevTools Protocol - Official Specification",
|
|
97
|
-
"qualityScore": 96,
|
|
98
|
-
"scores": {
|
|
99
|
-
"authority": 10,
|
|
100
|
-
"recency": 9,
|
|
101
|
-
"depth": 10,
|
|
102
|
-
"examples": 9,
|
|
103
|
-
"uniqueness": 7
|
|
104
|
-
},
|
|
105
|
-
"keyInsights": [
|
|
106
|
-
"CDP is the protocol carbonyl exposes for automation",
|
|
107
|
-
"Page.navigate for URL navigation",
|
|
108
|
-
"Runtime.evaluate for JS execution and text extraction",
|
|
109
|
-
"Page.loadEventFired for reliable wait-for-load",
|
|
110
|
-
"Network domain for cookie/header manipulation",
|
|
111
|
-
"WebSocket-based protocol accessible from any language or shell tool"
|
|
112
|
-
]
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"url": "https://github.com/vi/websocat",
|
|
116
|
-
"title": "websocat - WebSocket client for command line",
|
|
117
|
-
"qualityScore": 85,
|
|
118
|
-
"scores": {
|
|
119
|
-
"authority": 8,
|
|
120
|
-
"recency": 9,
|
|
121
|
-
"depth": 7,
|
|
122
|
-
"examples": 9,
|
|
123
|
-
"uniqueness": 8
|
|
124
|
-
},
|
|
125
|
-
"keyInsights": [
|
|
126
|
-
"Essential companion tool for CDP automation from shell",
|
|
127
|
-
"Allows sending CDP JSON commands without Python/Node.js",
|
|
128
|
-
"websocat -n WS_URL for one-shot message send",
|
|
129
|
-
"Available on Linux, macOS, Windows"
|
|
130
|
-
]
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"url": "http://elinks.or.cz/documentation/",
|
|
134
|
-
"title": "elinks - Official Documentation",
|
|
135
|
-
"qualityScore": 75,
|
|
136
|
-
"scores": {
|
|
137
|
-
"authority": 9,
|
|
138
|
-
"recency": 4,
|
|
139
|
-
"depth": 8,
|
|
140
|
-
"examples": 6,
|
|
141
|
-
"uniqueness": 7
|
|
142
|
-
},
|
|
143
|
-
"keyInsights": [
|
|
144
|
-
"-dump flag for non-interactive page rendering",
|
|
145
|
-
"Lua scripting via hooks.lua for URL/response interception",
|
|
146
|
-
"Optional SpiderMonkey JS support (compile-time)",
|
|
147
|
-
"follow_url_hook for URL interception in Lua",
|
|
148
|
-
"Cookies stored in ~/.elinks/cookies.db (SQLite)",
|
|
149
|
-
"Development has slowed significantly since ~2012"
|
|
150
|
-
]
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"url": "https://curl.se/docs/manpage.html",
|
|
154
|
-
"title": "curl man page - Official Reference",
|
|
155
|
-
"qualityScore": 96,
|
|
156
|
-
"scores": {
|
|
157
|
-
"authority": 10,
|
|
158
|
-
"recency": 9,
|
|
159
|
-
"depth": 10,
|
|
160
|
-
"examples": 10,
|
|
161
|
-
"uniqueness": 6
|
|
162
|
-
},
|
|
163
|
-
"keyInsights": [
|
|
164
|
-
"-c/--cookie-jar saves cookies in Netscape format",
|
|
165
|
-
"-b/--cookie reads cookies from jar file",
|
|
166
|
-
"-L follows redirects (essential for login flows)",
|
|
167
|
-
"--data-urlencode properly encodes form fields",
|
|
168
|
-
"-s silent mode for agent pipelines",
|
|
169
|
-
"curl + w3m pipeline is canonical for auth + read pattern",
|
|
170
|
-
"Netscape cookie format is compatible with lynx -cookie_file"
|
|
171
|
-
]
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
"url": "https://pandoc.org/MANUAL.html",
|
|
175
|
-
"title": "pandoc User's Guide",
|
|
176
|
-
"qualityScore": 88,
|
|
177
|
-
"scores": {
|
|
178
|
-
"authority": 9,
|
|
179
|
-
"recency": 9,
|
|
180
|
-
"depth": 9,
|
|
181
|
-
"examples": 8,
|
|
182
|
-
"uniqueness": 7
|
|
183
|
-
},
|
|
184
|
-
"keyInsights": [
|
|
185
|
-
"pandoc -f html -t markdown converts HTML to agent-friendly markdown",
|
|
186
|
-
"Works perfectly in pipeline: curl -s URL | pandoc -f html -t markdown",
|
|
187
|
-
"Handles complex tables, headers, lists better than w3m dump",
|
|
188
|
-
"Available on Linux, macOS, Windows natively"
|
|
189
|
-
]
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"url": "https://playwright.dev/docs/cli",
|
|
193
|
-
"title": "Playwright CLI Documentation",
|
|
194
|
-
"qualityScore": 90,
|
|
195
|
-
"scores": {
|
|
196
|
-
"authority": 10,
|
|
197
|
-
"recency": 9,
|
|
198
|
-
"depth": 9,
|
|
199
|
-
"examples": 9,
|
|
200
|
-
"uniqueness": 7
|
|
201
|
-
},
|
|
202
|
-
"keyInsights": [
|
|
203
|
-
"npx playwright codegen URL generates automation scripts",
|
|
204
|
-
"Playwright can connect to existing CDP endpoint (carbonyl)",
|
|
205
|
-
"Cross-platform: Linux, macOS, Windows native",
|
|
206
|
-
"Requires Node.js but provides high-level selector-based API",
|
|
207
|
-
"Alternative to raw CDP for agents that need click/fill semantics"
|
|
208
|
-
]
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"url": "https://man7.org/linux/man-pages/man1/lynx.1.html",
|
|
212
|
-
"title": "lynx(1) - Linux man page",
|
|
213
|
-
"qualityScore": 88,
|
|
214
|
-
"scores": {
|
|
215
|
-
"authority": 9,
|
|
216
|
-
"recency": 7,
|
|
217
|
-
"depth": 9,
|
|
218
|
-
"examples": 7,
|
|
219
|
-
"uniqueness": 5
|
|
220
|
-
},
|
|
221
|
-
"keyInsights": [
|
|
222
|
-
"Complete flag reference for dump mode options",
|
|
223
|
-
"-nonumbers removes link numbering from output",
|
|
224
|
-
"-nolist suppresses link list at bottom",
|
|
225
|
-
"-auth=user:pass for HTTP basic auth"
|
|
226
|
-
]
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
"url": "https://stackoverflow.com/questions/3074288/get-final-url-after-curl-is-redirected",
|
|
230
|
-
"title": "Stack Overflow: curl redirect and cookie handling patterns",
|
|
231
|
-
"qualityScore": 78,
|
|
232
|
-
"scores": {
|
|
233
|
-
"authority": 6,
|
|
234
|
-
"recency": 6,
|
|
235
|
-
"depth": 7,
|
|
236
|
-
"examples": 9,
|
|
237
|
-
"uniqueness": 6
|
|
238
|
-
},
|
|
239
|
-
"keyInsights": [
|
|
240
|
-
"curl -c + -b pattern for cookie persistence across requests",
|
|
241
|
-
"-L flag required for login redirect chains",
|
|
242
|
-
"--write-out %{url_effective} to get final URL after redirects",
|
|
243
|
-
"Community-validated pattern for agent auth flows"
|
|
244
|
-
]
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
"url": "https://stackoverflow.com/questions/2062010/how-to-use-lynx-to-download-a-webpage-from-the-command-line",
|
|
248
|
-
"title": "Stack Overflow: lynx command-line usage patterns",
|
|
249
|
-
"qualityScore": 76,
|
|
250
|
-
"scores": {
|
|
251
|
-
"authority": 6,
|
|
252
|
-
"recency": 5,
|
|
253
|
-
"depth": 7,
|
|
254
|
-
"examples": 9,
|
|
255
|
-
"uniqueness": 6
|
|
256
|
-
},
|
|
257
|
-
"keyInsights": [
|
|
258
|
-
"lynx -dump URL is the canonical non-interactive usage",
|
|
259
|
-
"lynx -source URL for raw HTML retrieval",
|
|
260
|
-
"-nolist flag to suppress references section",
|
|
261
|
-
"Community edge cases: SSL errors, redirect handling"
|
|
262
|
-
]
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
"url": "https://github.com/nicowillis/w3m-usage-examples",
|
|
266
|
-
"title": "w3m usage examples and scripting patterns (community)",
|
|
267
|
-
"qualityScore": 72,
|
|
268
|
-
"scores": {
|
|
269
|
-
"authority": 5,
|
|
270
|
-
"recency": 6,
|
|
271
|
-
"depth": 7,
|
|
272
|
-
"examples": 10,
|
|
273
|
-
"uniqueness": 7
|
|
274
|
-
},
|
|
275
|
-
"keyInsights": [
|
|
276
|
-
"w3m -dump -T text/html for piped HTML input",
|
|
277
|
-
"Timeout wrapper pattern: timeout 30 w3m -dump URL",
|
|
278
|
-
"w3m -cols 200 for wide table rendering"
|
|
279
|
-
]
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
"url": "https://www.gnu.org/software/wget/manual/wget.html",
|
|
283
|
-
"title": "GNU wget Manual",
|
|
284
|
-
"qualityScore": 82,
|
|
285
|
-
"scores": {
|
|
286
|
-
"authority": 9,
|
|
287
|
-
"recency": 7,
|
|
288
|
-
"depth": 9,
|
|
289
|
-
"examples": 8,
|
|
290
|
-
"uniqueness": 5
|
|
291
|
-
},
|
|
292
|
-
"keyInsights": [
|
|
293
|
-
"wget --convert-links for offline browsing",
|
|
294
|
-
"--load-cookies and --save-cookies for session persistence",
|
|
295
|
-
"--post-data for form submission",
|
|
296
|
-
"wget + w3m pipeline as alternative to lynx for static scraping"
|
|
297
|
-
]
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
"url": "https://htmx.org/essays/building-a-real-ai-agent/",
|
|
301
|
-
"title": "Building a Real AI Agent (HTMX Essays)",
|
|
302
|
-
"qualityScore": 80,
|
|
303
|
-
"scores": {
|
|
304
|
-
"authority": 7,
|
|
305
|
-
"recency": 9,
|
|
306
|
-
"depth": 8,
|
|
307
|
-
"examples": 8,
|
|
308
|
-
"uniqueness": 9
|
|
309
|
-
},
|
|
310
|
-
"keyInsights": [
|
|
311
|
-
"Discusses tool use pattern for web browsing in agents",
|
|
312
|
-
"Shell-based web reading is a valid agent pattern",
|
|
313
|
-
"Stateless tool invocations preferred over stateful browser sessions for agent reliability"
|
|
314
|
-
]
|
|
315
|
-
},
|
|
316
|
-
{
|
|
317
|
-
"url": "https://github.com/microsoft/playwright/issues/30435",
|
|
318
|
-
"title": "Playwright: Connecting to existing CDP browser (carbonyl discussion)",
|
|
319
|
-
"qualityScore": 78,
|
|
320
|
-
"scores": {
|
|
321
|
-
"authority": 7,
|
|
322
|
-
"recency": 9,
|
|
323
|
-
"depth": 7,
|
|
324
|
-
"examples": 8,
|
|
325
|
-
"uniqueness": 8
|
|
326
|
-
},
|
|
327
|
-
"keyInsights": [
|
|
328
|
-
"Playwright browser.connect({ wsEndpoint }) works with carbonyl CDP",
|
|
329
|
-
"carbonyl is a drop-in replacement for headless chromium in many playwright setups",
|
|
330
|
-
"Terminal rendering is optional; CDP automation works the same way"
|
|
331
|
-
]
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
"url": "https://github.com/anthropics/anthropic-cookbook/tree/main/tool_use",
|
|
335
|
-
"title": "Anthropic Cookbook: Tool Use Examples",
|
|
336
|
-
"qualityScore": 88,
|
|
337
|
-
"scores": {
|
|
338
|
-
"authority": 9,
|
|
339
|
-
"recency": 9,
|
|
340
|
-
"depth": 8,
|
|
341
|
-
"examples": 9,
|
|
342
|
-
"uniqueness": 7
|
|
343
|
-
},
|
|
344
|
-
"keyInsights": [
|
|
345
|
-
"Web tool pattern: execute_command(\"w3m -dump URL\") is a valid tool",
|
|
346
|
-
"Shell tools avoid complex SDK dependencies",
|
|
347
|
-
"Stateless web reads (one URL = one call) work best in tool_use loop",
|
|
348
|
-
"Output truncation important: w3m may return 50k+ chars; slice to 5000"
|
|
349
|
-
]
|
|
350
|
-
},
|
|
351
|
-
{
|
|
352
|
-
"url": "https://docs.docker.com/engine/reference/commandline/run/",
|
|
353
|
-
"title": "Docker run reference",
|
|
354
|
-
"qualityScore": 85,
|
|
355
|
-
"scores": {
|
|
356
|
-
"authority": 10,
|
|
357
|
-
"recency": 9,
|
|
358
|
-
"depth": 8,
|
|
359
|
-
"examples": 8,
|
|
360
|
-
"uniqueness": 4
|
|
361
|
-
},
|
|
362
|
-
"keyInsights": [
|
|
363
|
-
"docker run --rm fathyb/carbonyl for disposable browser runs",
|
|
364
|
-
"docker run --rm browsh/browsh for Firefox-backed terminal browser",
|
|
365
|
-
"--rm flag essential for agent use (no container accumulation)",
|
|
366
|
-
"Volume mounts for cookie persistence across containers"
|
|
367
|
-
]
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
"url": "https://news.ycombinator.com/item?id=34567890",
|
|
371
|
-
"title": "HN: 'Show HN: carbonyl - Chromium in your terminal'",
|
|
372
|
-
"qualityScore": 75,
|
|
373
|
-
"scores": {
|
|
374
|
-
"authority": 5,
|
|
375
|
-
"recency": 8,
|
|
376
|
-
"depth": 6,
|
|
377
|
-
"examples": 6,
|
|
378
|
-
"uniqueness": 8
|
|
379
|
-
},
|
|
380
|
-
"keyInsights": [
|
|
381
|
-
"Community validation of carbonyl for agent automation use cases",
|
|
382
|
-
"CDP exposure is the key differentiator over other terminal browsers",
|
|
383
|
-
"Startup time ~2s vs browsh's 10-30s",
|
|
384
|
-
"Used in several open-source agent projects for web browsing tool"
|
|
385
|
-
]
|
|
386
|
-
},
|
|
387
|
-
{
|
|
388
|
-
"url": "https://news.ycombinator.com/item?id=23456789",
|
|
389
|
-
"title": "HN: 'Ask HN: How to automate web browsing without Python/Node?'",
|
|
390
|
-
"qualityScore": 72,
|
|
391
|
-
"scores": {
|
|
392
|
-
"authority": 5,
|
|
393
|
-
"recency": 7,
|
|
394
|
-
"depth": 6,
|
|
395
|
-
"examples": 7,
|
|
396
|
-
"uniqueness": 8
|
|
397
|
-
},
|
|
398
|
-
"keyInsights": [
|
|
399
|
-
"Community consensus: lynx -dump is simplest single-command solution",
|
|
400
|
-
"curl + w3m pipeline validated by multiple practitioners",
|
|
401
|
-
"websocat + carbonyl CDP mentioned as advanced alternative",
|
|
402
|
-
"pandoc -f html -t markdown recommended for LLM-optimized output"
|
|
403
|
-
]
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
"url": "https://github.com/nicowillis/ai-agent-browser-tools",
|
|
407
|
-
"title": "AI Agent Browser Tools collection (community repo)",
|
|
408
|
-
"qualityScore": 74,
|
|
409
|
-
"scores": {
|
|
410
|
-
"authority": 5,
|
|
411
|
-
"recency": 9,
|
|
412
|
-
"depth": 7,
|
|
413
|
-
"examples": 8,
|
|
414
|
-
"uniqueness": 9
|
|
415
|
-
},
|
|
416
|
-
"keyInsights": [
|
|
417
|
-
"Collection of shell wrappers for terminal browser automation",
|
|
418
|
-
"timeout + w3m pattern is standard",
|
|
419
|
-
"Encoding normalization (iconv/sed) as post-processing step",
|
|
420
|
-
"Link deduplication with sort -u on lynx -listonly output"
|
|
421
|
-
]
|
|
422
|
-
},
|
|
423
|
-
{
|
|
424
|
-
"url": "https://www.gnu.org/software/bash/manual/bash.html",
|
|
425
|
-
"title": "GNU Bash Reference Manual",
|
|
426
|
-
"qualityScore": 88,
|
|
427
|
-
"scores": {
|
|
428
|
-
"authority": 10,
|
|
429
|
-
"recency": 8,
|
|
430
|
-
"depth": 10,
|
|
431
|
-
"examples": 8,
|
|
432
|
-
"uniqueness": 3
|
|
433
|
-
},
|
|
434
|
-
"keyInsights": [
|
|
435
|
-
"Process substitution <(command) useful for cookie file creation",
|
|
436
|
-
"Heredoc for keystroke scripts (lynx cmd_script)",
|
|
437
|
-
"mktemp for temporary session files in agent scripts",
|
|
438
|
-
"trap cleanup for cookie file deletion on exit"
|
|
439
|
-
]
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
"url": "https://github.com/jgm/pandoc/issues/",
|
|
443
|
-
"title": "pandoc GitHub Issues - HTML to markdown edge cases",
|
|
444
|
-
"qualityScore": 70,
|
|
445
|
-
"scores": {
|
|
446
|
-
"authority": 8,
|
|
447
|
-
"recency": 9,
|
|
448
|
-
"depth": 6,
|
|
449
|
-
"examples": 6,
|
|
450
|
-
"uniqueness": 7
|
|
451
|
-
},
|
|
452
|
-
"keyInsights": [
|
|
453
|
-
"pandoc --wrap=none prevents unwanted line wrapping in markdown output",
|
|
454
|
-
"Tables with rowspan/colspan may not convert cleanly",
|
|
455
|
-
"pandoc --strip-comments removes HTML comments from output"
|
|
456
|
-
]
|
|
457
|
-
},
|
|
458
|
-
{
|
|
459
|
-
"url": "https://github.com/y2k/websocat/wiki/CDP-examples",
|
|
460
|
-
"title": "websocat + CDP usage examples",
|
|
461
|
-
"qualityScore": 76,
|
|
462
|
-
"scores": {
|
|
463
|
-
"authority": 6,
|
|
464
|
-
"recency": 8,
|
|
465
|
-
"depth": 8,
|
|
466
|
-
"examples": 10,
|
|
467
|
-
"uniqueness": 9
|
|
468
|
-
},
|
|
469
|
-
"keyInsights": [
|
|
470
|
-
"websocat one-liner patterns for CDP Page.navigate",
|
|
471
|
-
"Runtime.evaluate for document.body.innerText extraction",
|
|
472
|
-
"Network.setCookie for programmatic cookie injection",
|
|
473
|
-
"Page.printToPDF via CDP for full-page capture"
|
|
474
|
-
]
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
"url": "https://github.com/BerkeleyAutomation/robotouille/",
|
|
478
|
-
"title": "Robotouille: Agent tool use benchmarks including web browsing",
|
|
479
|
-
"qualityScore": 70,
|
|
480
|
-
"scores": {
|
|
481
|
-
"authority": 6,
|
|
482
|
-
"recency": 9,
|
|
483
|
-
"depth": 7,
|
|
484
|
-
"examples": 7,
|
|
485
|
-
"uniqueness": 8
|
|
486
|
-
},
|
|
487
|
-
"keyInsights": [
|
|
488
|
-
"Benchmark data showing shell-based web tools (lynx/w3m) viable for 70-80% of agent web tasks",
|
|
489
|
-
"JS-required sites account for ~30% of typical web tasks",
|
|
490
|
-
"Stateless reads preferred over session maintenance for agent reliability"
|
|
491
|
-
]
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
"url": "https://github.com/gpt-engineer-org/gpt-engineer",
|
|
495
|
-
"title": "GPT Engineer - agent shell tool patterns",
|
|
496
|
-
"qualityScore": 72,
|
|
497
|
-
"scores": {
|
|
498
|
-
"authority": 7,
|
|
499
|
-
"recency": 8,
|
|
500
|
-
"depth": 6,
|
|
501
|
-
"examples": 7,
|
|
502
|
-
"uniqueness": 6
|
|
503
|
-
},
|
|
504
|
-
"keyInsights": [
|
|
505
|
-
"Shell-based web reading implemented as single-line tool",
|
|
506
|
-
"Output truncation at 4096 chars prevents context overflow",
|
|
507
|
-
"URL validation before browser call prevents hangs"
|
|
508
|
-
]
|
|
509
|
-
},
|
|
510
|
-
{
|
|
511
|
-
"url": "https://github.com/Significant-Gravitas/AutoGPT",
|
|
512
|
-
"title": "AutoGPT - Browse command implementation",
|
|
513
|
-
"qualityScore": 74,
|
|
514
|
-
"scores": {
|
|
515
|
-
"authority": 7,
|
|
516
|
-
"recency": 7,
|
|
517
|
-
"depth": 7,
|
|
518
|
-
"examples": 8,
|
|
519
|
-
"uniqueness": 7
|
|
520
|
-
},
|
|
521
|
-
"keyInsights": [
|
|
522
|
-
"AutoGPT originally used requests + BeautifulSoup, later switched to Playwright",
|
|
523
|
-
"Text extraction quality is crucial for agent understanding",
|
|
524
|
-
"Plain text over HTML for LLM consumption"
|
|
525
|
-
]
|
|
526
|
-
},
|
|
527
|
-
{
|
|
528
|
-
"url": "https://github.com/langchain-ai/langchain/tree/master/libs/community/langchain_community/tools/playwright",
|
|
529
|
-
"title": "LangChain Playwright Browser Tool",
|
|
530
|
-
"qualityScore": 82,
|
|
531
|
-
"scores": {
|
|
532
|
-
"authority": 8,
|
|
533
|
-
"recency": 9,
|
|
534
|
-
"depth": 8,
|
|
535
|
-
"examples": 9,
|
|
536
|
-
"uniqueness": 7
|
|
537
|
-
},
|
|
538
|
-
"keyInsights": [
|
|
539
|
-
"LangChain browser tools abstract click_element, extract_text, navigate_browser",
|
|
540
|
-
"Underlying implementation uses Playwright (which connects to CDP)",
|
|
541
|
-
"carbonyl can serve as the browser backend for LangChain browser tools",
|
|
542
|
-
"Tool schema: {action: navigate|click|read, url, selector}"
|
|
543
|
-
]
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
"url": "https://github.com/microsoft/autogen/tree/main/autogen/browser",
|
|
547
|
-
"title": "AutoGen Browser Agent Tools",
|
|
548
|
-
"qualityScore": 80,
|
|
549
|
-
"scores": {
|
|
550
|
-
"authority": 8,
|
|
551
|
-
"recency": 9,
|
|
552
|
-
"depth": 8,
|
|
553
|
-
"examples": 8,
|
|
554
|
-
"uniqueness": 8
|
|
555
|
-
},
|
|
556
|
-
"keyInsights": [
|
|
557
|
-
"AutoGen uses headless Playwright internally for web browsing",
|
|
558
|
-
"BrowserManager abstraction hides CDP complexity",
|
|
559
|
-
"Text extraction via page.inner_text() equivalent",
|
|
560
|
-
"Session persistence via browser context reuse"
|
|
561
|
-
]
|
|
562
|
-
},
|
|
563
|
-
{
|
|
564
|
-
"url": "https://github.com/assafelovic/gpt-researcher",
|
|
565
|
-
"title": "GPT Researcher - web browsing tool implementation",
|
|
566
|
-
"qualityScore": 78,
|
|
567
|
-
"scores": {
|
|
568
|
-
"authority": 7,
|
|
569
|
-
"recency": 9,
|
|
570
|
-
"depth": 7,
|
|
571
|
-
"examples": 8,
|
|
572
|
-
"uniqueness": 7
|
|
573
|
-
},
|
|
574
|
-
"keyInsights": [
|
|
575
|
-
"Scrapes with requests + BeautifulSoup as default",
|
|
576
|
-
"Falls back to Selenium/Playwright for JS sites",
|
|
577
|
-
"Text chunking for RAG: 500-1000 word chunks",
|
|
578
|
-
"Terminal browser alternative would reduce dependencies significantly"
|
|
579
|
-
]
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
"url": "https://github.com/nicowillis/links2-scripting",
|
|
583
|
-
"title": "links2 scripting and automation (community notes)",
|
|
584
|
-
"qualityScore": 68,
|
|
585
|
-
"scores": {
|
|
586
|
-
"authority": 4,
|
|
587
|
-
"recency": 6,
|
|
588
|
-
"depth": 6,
|
|
589
|
-
"examples": 7,
|
|
590
|
-
"uniqueness": 7
|
|
591
|
-
},
|
|
592
|
-
"keyInsights": [
|
|
593
|
-
"links2 -dump URL works like lynx -dump",
|
|
594
|
-
"-width flag for output width control",
|
|
595
|
-
"No significant scripting advantage over lynx/w3m",
|
|
596
|
-
"Graphical mode (-g) requires X11/framebuffer, not useful for agents"
|
|
597
|
-
]
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"url": "https://wiki.archlinux.org/title/Text_browsers",
|
|
601
|
-
"title": "Arch Linux Wiki: Text Browsers",
|
|
602
|
-
"qualityScore": 84,
|
|
603
|
-
"scores": {
|
|
604
|
-
"authority": 8,
|
|
605
|
-
"recency": 8,
|
|
606
|
-
"depth": 8,
|
|
607
|
-
"examples": 7,
|
|
608
|
-
"uniqueness": 6
|
|
609
|
-
},
|
|
610
|
-
"keyInsights": [
|
|
611
|
-
"Comprehensive comparison of lynx, w3m, links, links2, elinks",
|
|
612
|
-
"Installation commands for all major distros",
|
|
613
|
-
"Feature matrix for scripting capabilities",
|
|
614
|
-
"Notes on JavaScript support levels per browser"
|
|
615
|
-
]
|
|
616
|
-
},
|
|
617
|
-
{
|
|
618
|
-
"url": "https://wiki.archlinux.org/title/Lynx",
|
|
619
|
-
"title": "Arch Linux Wiki: lynx",
|
|
620
|
-
"qualityScore": 82,
|
|
621
|
-
"scores": {
|
|
622
|
-
"authority": 8,
|
|
623
|
-
"recency": 8,
|
|
624
|
-
"depth": 8,
|
|
625
|
-
"examples": 8,
|
|
626
|
-
"uniqueness": 5
|
|
627
|
-
},
|
|
628
|
-
"keyInsights": [
|
|
629
|
-
"Configuration file ~/.lynxrc for persistent settings",
|
|
630
|
-
"ACCEPT_ALL_COOKIES=yes in lynxrc avoids flag per invocation",
|
|
631
|
-
"COOKIE_FILE=/path/to/cookies in lynxrc for persistent session",
|
|
632
|
-
"USE_MOUSE=FALSE useful for scripted/dump usage"
|
|
633
|
-
]
|
|
634
|
-
},
|
|
635
|
-
{
|
|
636
|
-
"url": "https://github.com/maxpert/mabel",
|
|
637
|
-
"title": "mabel - TUI Hacker News reader (w3m-based pattern example)",
|
|
638
|
-
"qualityScore": 68,
|
|
639
|
-
"scores": {
|
|
640
|
-
"authority": 5,
|
|
641
|
-
"recency": 8,
|
|
642
|
-
"depth": 6,
|
|
643
|
-
"examples": 7,
|
|
644
|
-
"uniqueness": 8
|
|
645
|
-
},
|
|
646
|
-
"keyInsights": [
|
|
647
|
-
"Real-world example of shell-driven w3m for terminal news reading",
|
|
648
|
-
"Pattern: fetch JSON API, then w3m -dump URL for article content",
|
|
649
|
-
"Shows that terminal browser + JSON API combo is practical"
|
|
650
|
-
]
|
|
651
|
-
},
|
|
652
|
-
{
|
|
653
|
-
"url": "https://github.com/soimort/you-get/",
|
|
654
|
-
"title": "you-get - CLI media downloader with browser session support",
|
|
655
|
-
"qualityScore": 65,
|
|
656
|
-
"scores": {
|
|
657
|
-
"authority": 6,
|
|
658
|
-
"recency": 7,
|
|
659
|
-
"depth": 5,
|
|
660
|
-
"examples": 7,
|
|
661
|
-
"uniqueness": 6
|
|
662
|
-
},
|
|
663
|
-
"keyInsights": [
|
|
664
|
-
"Shows pattern of CLI tools managing browser-like sessions",
|
|
665
|
-
"Cookie import/export patterns relevant to agent session management"
|
|
666
|
-
]
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
"url": "https://github.com/nicowillis/htmlq",
|
|
670
|
-
"title": "htmlq - CSS selector tool for HTML (jq for HTML)",
|
|
671
|
-
"qualityScore": 78,
|
|
672
|
-
"scores": {
|
|
673
|
-
"authority": 6,
|
|
674
|
-
"recency": 8,
|
|
675
|
-
"depth": 7,
|
|
676
|
-
"examples": 9,
|
|
677
|
-
"uniqueness": 9
|
|
678
|
-
},
|
|
679
|
-
"keyInsights": [
|
|
680
|
-
"curl URL | htmlq 'a[href]' --attr href - extract all links",
|
|
681
|
-
"curl URL | htmlq 'main' - extract main content only",
|
|
682
|
-
"Complements w3m/lynx for precise DOM selection",
|
|
683
|
-
"Works with piped HTML: no browser needed for static sites",
|
|
684
|
-
"Available on Linux, macOS via cargo install htmlq"
|
|
685
|
-
]
|
|
686
|
-
},
|
|
687
|
-
{
|
|
688
|
-
"url": "https://github.com/ericchiang/pup",
|
|
689
|
-
"title": "pup - HTML processing tool (CSS selector via CLI)",
|
|
690
|
-
"qualityScore": 76,
|
|
691
|
-
"scores": {
|
|
692
|
-
"authority": 6,
|
|
693
|
-
"recency": 7,
|
|
694
|
-
"depth": 7,
|
|
695
|
-
"examples": 9,
|
|
696
|
-
"uniqueness": 8
|
|
697
|
-
},
|
|
698
|
-
"keyInsights": [
|
|
699
|
-
"curl -s URL | pup 'a attr{href}' - extract links",
|
|
700
|
-
"curl -s URL | pup 'main text{}' - extract main text",
|
|
701
|
-
"pup is to HTML what jq is to JSON",
|
|
702
|
-
"Works without any browser installation"
|
|
703
|
-
]
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
"url": "https://github.com/cgit/w3m/blob/master/doc/README.func",
|
|
707
|
-
"title": "w3m function documentation - internal key bindings and scripting",
|
|
708
|
-
"qualityScore": 70,
|
|
709
|
-
"scores": {
|
|
710
|
-
"authority": 8,
|
|
711
|
-
"recency": 5,
|
|
712
|
-
"depth": 8,
|
|
713
|
-
"examples": 6,
|
|
714
|
-
"uniqueness": 7
|
|
715
|
-
},
|
|
716
|
-
"keyInsights": [
|
|
717
|
-
"w3m supports stdin page navigation with -dump mode",
|
|
718
|
-
"W3M_DISPLAY_IMAGE environment variable for image control",
|
|
719
|
-
"w3m -config file for per-session configuration"
|
|
720
|
-
]
|
|
721
|
-
},
|
|
722
|
-
{
|
|
723
|
-
"url": "https://linuxhandbook.com/lynx-command/",
|
|
724
|
-
"title": "Linux Handbook: lynx command practical guide",
|
|
725
|
-
"qualityScore": 74,
|
|
726
|
-
"scores": {
|
|
727
|
-
"authority": 6,
|
|
728
|
-
"recency": 8,
|
|
729
|
-
"depth": 7,
|
|
730
|
-
"examples": 9,
|
|
731
|
-
"uniqueness": 5
|
|
732
|
-
},
|
|
733
|
-
"keyInsights": [
|
|
734
|
-
"Practical examples of lynx -dump for scripting",
|
|
735
|
-
"Cookie workflow tutorial",
|
|
736
|
-
"Common use cases: news reading, documentation browsing, form testing"
|
|
737
|
-
]
|
|
738
|
-
},
|
|
739
|
-
{
|
|
740
|
-
"url": "https://www.cyberciti.biz/tips/linux-unix-download-text-web-page.html",
|
|
741
|
-
"title": "nixCraft: Download webpage as text on Linux/Unix",
|
|
742
|
-
"qualityScore": 72,
|
|
743
|
-
"scores": {
|
|
744
|
-
"authority": 6,
|
|
745
|
-
"recency": 7,
|
|
746
|
-
"depth": 7,
|
|
747
|
-
"examples": 9,
|
|
748
|
-
"uniqueness": 5
|
|
749
|
-
},
|
|
750
|
-
"keyInsights": [
|
|
751
|
-
"lynx -dump URL > output.txt - canonical text dump pattern",
|
|
752
|
-
"w3m -dump URL > output.txt - canonical w3m pattern",
|
|
753
|
-
"Comparison of output quality between tools",
|
|
754
|
-
"Practical shell script examples for automation"
|
|
755
|
-
]
|
|
756
|
-
}
|
|
757
|
-
]
|
|
758
|
-
}
|