Communitygithub.com

iamvtor/opencode-setup

Search personal websites and blogs using Exa advanced search. Full filter support for finding individual perspectives, portfolios, and personal blogs. Use when searching for personal sites, blog posts, or portfolio websites.

¿Qué es opencode-setup?

opencode-setup is a OpenCode agent skill that search personal websites and blogs using Exa advanced search. Full filter support for finding individual perspectives, portfolios, and personal blogs. Use when searching for personal sites, blog posts, or portfolio websites.

Compatible con~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/iamvtor/opencode-setup/tree/HEAD/skills/exa-personal-site-search

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Personal Site Search (Exa Python SDK)

Prerequisites

uv pip install exa-py

Set EXA_API_KEY environment variable. Get one at https://dashboard.exa.ai/api-keys

Approach

Use ctx_execute(language: "python", code: "...") to call Exa. Never run Exa searches in main context — always spawn Task agents that return only distilled output.

Supported Parameters

The personal site category supports ALL available parameters:

from exa_py import Exa
import os, json

exa = Exa(os.environ["EXA_API_KEY"])

response = exa.search(
    "building side projects indie hacking journey 2025",
    num_results=15,
    category="personal site",
    type="auto",
    exclude_domains=["medium.com"],  # exclude aggregators for independent blogs
    contents={"highlights": True}
)

results = []
for r in response.results:
    results.append({
        "title": r.title,
        "url": r.url,
        "highlights": getattr(r, 'highlights', [])
    })
print(json.dumps(results, indent=2))

Full Parameter Support

  • query (required)
  • num_results
  • type ("auto", "fast", "instant", "deep-lite", "deep", "deep-reasoning")
  • include_domains / exclude_domains
  • start_published_date / end_published_date (ISO 8601)
  • start_crawl_date / end_crawl_date (ISO 8601)
  • include_text / exclude_text (single-item arrays only; multi-item causes 400)
  • contents={"text": {"max_characters": N}}
  • contents={"highlights": True} / contents={"highlights": {"query": "..."}}
  • contents={"summary": True} / contents={"summary": {"query": "..."}}
  • user_location
  • moderation
  • additional_queries
  • contents={"livecrawl_timeout": 10000, "max_age_hours": 0} for fresh content

Skills relacionados