# Wigolo Find Similar

Hybrid semantic discovery, fuses embeddings + keyword search + live web search via...

- Repository: https://github.com/KnockOutEZ/wigolo (5517 stars)
- Category: Engineering
- License: AGPL-3.0-only
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add KnockOutEZ/wigolo --skill wigolo-find-similar -g -a claude-code -y`
Codex: `npx skills add KnockOutEZ/wigolo --skill wigolo-find-similar -g -a codex -y`
Cursor: `npx skills add KnockOutEZ/wigolo --skill wigolo-find-similar -g -a cursor -y`
Gemini CLI: `npx skills add KnockOutEZ/wigolo --skill wigolo-find-similar -g -a gemini-cli -y`

## Description

Hybrid semantic discovery, fuses embeddings + keyword search + live web search via 3-way Reciprocal Rank Fusion. Use when the user has a good source and wants more like it, says "find similar", "related pages", "more like this", or wants to discover content related to a known URL or concept. Works best after a `crawl` or several `fetch` calls have warmed the local cache. Emits `cold_start` when local signals are weak.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# wigolo find_similar

Hybrid semantic discovery: semantic embeddings + keyword search + web search, fused via Reciprocal Rank Fusion (RRF).

## Quick Reference

```json
// Find pages similar to a URL
{ "url": "https://docs.astro.build/en/getting-started/" }

// Find pages related to a concept
{ "concept": "JavaScript framework server-side rendering" }

// Scoped to specific domains
{ "url": "https://react.dev/reference/react/use", "include_domains": ["vuejs.org", "svelte.dev"] }

// Cache-only (no web fallback)
{ "url": "https://example.com/page", "include_web": false }
```

## Parameters

| Parameter | Type | Default | When to use |
|-----------|------|---------|-------------|
| `url` | string |, | Find pages similar to this URL's content |
| `concept` | string |, | Find pages related to a text concept (no URL needed) |
| `max_results` | number | 10 | Cap at 50 |
| `include_domains` | string[] | none | Scope results to specific sites |
| `exclude_domains` | string[] | none | Filter out domains |
| `include_cache` | boolean | true | Search local cache (fast, free) |
| `include_web` | boolean | true | Web fallback when cache is sparse |
| `mode` | string | "auto" | "auto", "cache", "web-expansion", "crawl-rank" |
| `threshold` | number | 0 | Hard post-filter on the raw fused score; 0 = no filtering. Filters `match_signals.fused_score`, not the normalized `relevance_score` |
| `include_ranking_debug` | boolean | false | Attach per-result `ranking_debug` with the raw ranks |
| `max_tokens_out` | number | none | Token-budget cap (cl100k-base) |
| `include_full_markdown` | boolean | false | Restore full body alongside evidence |
| `citation_format` | string | "numbered" | "numbered" / "json" / "anthropic_tags" |

Provide either `url` or `concept` (not both).

## How It Works

The rest: https://github.com/KnockOutEZ/wigolo/blob/HEAD/skills/wigolo-find-similar/SKILL.md
