Skill: c5huracan/meyhem-researcher (version 0.2.5)

--- name: meyhem-researcher description: Multi-query research tool with LLM-ranked results and freshness control. Breaks a topic into focused queries, previews top results. No API key. version: 0.2.5 author: c5huracan homepage: https://github.com/c5huracan/meyhem metadata: openclaw: requires: bins: - python3 --- # Meyhem Deep Researcher Multi-query research tool. Breaks a topic into focused queries, searches via api.rhdxm.com with LLM-ranked results, and previews top results. No API key. No signup. No rate limits. ## Why Meyhem Researcher? - **LLM-ranked results**: every result scored for relevance by an LLM prior - **Freshness control**: request real-time, hourly, daily, or weekly freshness - **Multi-query workflow**: break a topic into multiple queries, search, preview top results ## Quick Start ```bash python3 researcher.py "transformer attention mechanism" python3 researcher.py "kubernetes networking" -n 3 -q 5 python3 researcher.py "AI regulation 2026" --freshness realtime python3 researcher.py "climate policy updates" --freshness hour --agent my-researcher ``` ## Quick Start (REST) Full API docs: https://api.rhdxm.com/docs ```bash curl -s -X POST https://api.rhdxm.com/search \ -H 'Content-Type: application/json' \ -d '{"query": "YOUR_QUERY", "agent_id": "my-researcher", "max_results": 10, "freshness": "hour"}' ``` Freshness options: `realtime` (never cached), `hour`, `day`, `week`, or omit for default (1hr cache). ## MCP You can also connect via MCP at `https://api.rhdxm.com/mcp/` for richer integration. ## Data Transparency This skill sends your search query, an agent identifier, and any selected URLs to `api.rhdxm.com`. The skill does not access local files, environment variables, or credentials on its own, but anything you include in the query or agent_id will be transmitted. Avoid sending sensitive or proprietary content. Source code: https://github.com/c5huracan/meyhem

path: researcher.py
content: #!/usr/bin/env python3
import sys, json, urllib.request

API = 'https://api.rhdxm.com'

def post(path, data):
    req = urllib.request.Request(f'{API}{path}', json.dumps(data).encode(), headers={'Content-Type': 'application/json'})
    return json.loads(urllib.request.urlopen(req).read())

def main():
    args = sys.argv[1:]
    if not args or args[0] in ('-h', '--help'):
        print("Usage: researcher.py <topic> [-n <num>] [-q <num_queries>] [--agent <id>] [--freshness realtime|hour|day|week]")
        sys.exit(0)

    n, nq, agent = 5, 3, 'my-agent'
    if '-n' in args:
        i = args.index('-n'); n = int(args[i+1]); args = args[:i] + args[i+2:]
    if '-q' in args:
        i = args.index('-q'); nq = int(args[i+1]); args = args[:i] + args[i+2:]
    if '--agent' in args:
        i = args.index('--agent'); agent = args[i+1]; args = args[:i] + args[i+2:]
    freshness = None
    if '--freshness' in args:
        i = args.index('--freshness'); freshness = args[i+1]; args = args[:i] + args[i+2:]

    topic = ' '.join(args)
    queries = [f"{topic} part {i+1}" for i in range(nq)]
    print(f"Researching: {topic}")
    print(f"Queries: {nq}, Results per query: {n}\n")

    for qi, query in enumerate(queries):
        print(f"=== Query {qi+1}/{nq}: {query} ===")
        body = dict(query=query, agent_id=agent, max_results=n)
        if freshness: body['freshness'] = freshness
        resp = post('/search', body)
        search_id = resp['search_id']

        for i, r in enumerate(resp['results']):
            print(f"  [{i+1}] {r['title']}")
            print(f"      {r['url']}")
            if i == 0:
                sel = post(f'/search/{search_id}/select', dict(url=r['url'], position=i, provider=r['provider']))
                content = (sel.get('content') or '')[:500]
                if content: print(f"      Preview: {content[:200]}...")
        print()

if __name__ == '__main__': main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)