Install
$ agentstack add skill-sloemo01-hermes-skills-bundle-deep-web-research ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Deep Web Research with Kimi WebBridge
When to Use
- User asks for "deep research", "comprehensive research", "investigate thoroughly"
- Multi-source investigation needed (GitHub, X/Twitter, Google, docs sites)
- Need 10+ tabs organized in named tab groups
- User says "retry" to re-do with same approach
Core Methodology
1. Session & Tab Group Setup
# First navigate: create session + tab group with human-readable label
curl -s -X POST http://127.0.0.1:10086/command \
-H 'Content-Type: application/json' \
-d '{"action":"navigate","args":{"url":"","newTab":true,"group_title":""},"session":""}'
Rules:
- One task = one session = one tab group
- Session name = task identifier (e.g.,
vsouthvpawv-research,web-search) group_title= user-language label shown in browser tab group- Never switch session names mid-task
2. Opening Additional Sources
# Subsequent navigates: same session, newTab:true, no group_title needed
curl -s -X POST http://127.0.0.1:10086/command \
-H 'Content-Type: application/json' \
-d '{"action":"navigate","args":{"url":"","newTab":true},"session":""}'
3. Reading Page Content
# Snapshot returns accessibility tree with @e refs
curl -s -X POST http://127.0.0.1:10086/command \
-H 'Content-Type: application/json' \
-d '{"action":"snapshot","args":{},"session":""}'
4. Following Links / Interacting
- Use
@erefs from snapshot for click/fill - Prefer snapshot over CSS selectors
- For navigation, use
navigatewith same session
Proper Use of @e References
Important: The @e references (e.g., @e58, @e100) returned by the snapshot tool are special identifiers that work ONLY as direct values for the selector parameter in tools like click, fill, etc.
Common Mistake
Attempting to use @e references in evaluate() with DOM query methods will FAIL:
// ❌ WRONG - This will throw "Failed to execute 'querySelector' on 'Document': '@e58' is not a valid selector"
document.querySelector("@e58").href
Correct Usage
Always pass @e references directly as the selector value. The Kimi WebBridge resolves @e references server-side before browser execution, making them valid in WebBridge commands but NOT in raw browser JS.
# ✅ CORRECT - Use @e reference directly as selector
curl -s -X POST http://127.0.0.1:10086/command \
-d '{"action":"click","args":{"selector":"@e58"},"session":"my-session"}'
# ✅ CORRECT - For getting attributes, use the get_attribute action
curl -s -X POST http://127.0.0.1:10086/command \
-d '{"action":"get_attribute","args":{"selector":"@e58","attribute":"href"},"session":"my-session"}'
When You Need Attributes
If you need to extract attributes like href, textContent, etc. from an element identified by @e reference:
- Use the
get_attributeaction with the@ereference - Or, if you need to use
evaluate, use a standard CSS selector (not an@ereference)
Example using a proper CSS selector in evaluate:
curl -s -X POST http://127.0.0.1:10086/command \
-d '{"action":"evaluate","args":{"code":"const el = document.querySelector(\"a.target-link\"); return el ? el.href : null;"},"session":"my-session"}'
Workflow Recommendation
- Use
snapshotto get the accessibility tree with@ereferences - Identify the target element by its
@ereference and role/name - For actions (click, fill): Pass the
@ereference directly asselector - For attribute extraction: Use
get_attributewith the@ereference - Never try to manipulate
@ereferences as strings or use them in CSS selectors outside of the tool parameters
5. Closing
Only call close_session when user explicitly asks ("close those tabs").
Research Patterns
Parallel Source Investigation
Open multiple tabs simultaneously for different source types:
- GitHub repos/orgs
- X/Twitter profiles
- Google searches (quoted, site:, filetype:)
- Documentation sites
- Blog posts / Medium / Substack
Identity Resolution
When researching a handle/person:
- Search handle + keywords
- Check GitHub profile → pinned repos → org membership
- Check X/Twitter → bio → followers/following → interactions
- Cross-reference usernames across platforms
- Look for "verified" markers, org affiliations
Technical Project Analysis
For GitHub projects:
- Main repo → README → topics → stars/forks
- Owner profile → other repos → contribution graph
- Related repos (forks, dependencies, forks of forks)
- Issues/PRs for active development signals
- Contributors list for team/community size
Key Commands Reference
| Action | Purpose | |--------|---------| | navigate (newTab:true, group_title) | Open first tab, create tab group | | navigate (newTab:true) | Open additional tabs in same group | | snapshot | Read page content (accessibility tree) | | click / fill | Interact using @e refs | | find_tab | Switch to earlier tab in session | | list_tabs | Inspect open tabs | | close_session | Close entire tab group (user-initiated only) |
Daemon Management
macOS / Linux:
~/.kimi-webbridge/bin/kimi-webbridge start
Windows (PowerShell):
& "$env:USERPROFILE\.kimi-webbridge\bin\kimi-webbridge.exe" start
Cross-platform (any shell with HOME/USERPROFILE):
# Using $HOME (Linux/macOS) or %USERPROFILE% (Windows)
${HOME:-$USERPROFILE}/.kimi-webbridge/bin/kimi-webbridge${EXE:-} start
The daemon runs on http://127.0.0.1:10086 regardless of platform.
Pitfalls to Avoid
- ❌ Switching session names mid-task → fragments tab groups
- ❌ Using Chrome CDP / built-in browser tools instead of Kimi WebBridge
- ❌ Not using
newTab:truefor parallel pages - ❌ Using bare domains in
find_tab(use exact URL) - ❌ Calling
close_sessionwithout user request - ❌ CSS/JS selectors when @e refs available
Example: Multi-Source Person Investigation
# Session: "alice-research"
# 1. Google search
navigate("https://google.com/search?q=%22alice%22+github", newTab:true, group_title:"alice deep research", session:"alice-research")
# 2. GitHub profile
navigate("https://github.com/alice", newTab:true, session:"alice-research")
# 3. X/Twitter
navigate("https://x.com/alice", newTab:true, session:"alice-research")
# 4. Company site
navigate("https://company.com/team/alice", newTab:true, session:"alice-research")
# ... repeat for 10+ sources
# Snapshot each, cross-reference, synthesize
References
- [E-Reference Guide](file:///e:/hermes-skills-bundle/deep-web-research/references/e-reference-guide.md)
- [Search Engine Preference](file:///e:/hermes-skills-bundle/deep-web-research/references/search-engine-preference.md)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: sloemo01
- Source: sloemo01/hermes-skills-bundle
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.