An open API service indexing awesome lists of open source software.

https://github.com/anysearch-ai/anysearch-skill

Unified real-time search engine skill for AI agents.
https://github.com/anysearch-ai/anysearch-skill

anysearch hermes openclaw qclaw skill skills

Last synced: 8 days ago
JSON representation

Unified real-time search engine skill for AI agents.

Awesome Lists containing this project

README

          

# AnySearch Skill

Unified real-time search engine skill for AI agents. Supports general web search, vertical domain search, parallel batch search, and full-page content extraction.

## Download & Install

### For AI Agents

If your agent platform supports a skill marketplace/store, search for **anysearch** and install from there. Otherwise, download and install manually:

```bash
# Download (pin to a specific release version)
curl -L -o anysearch-skill.zip https://github.com/anysearch-ai/anysearch-skill/archive/refs/heads/main.zip
# or: wget -O anysearch-skill.zip https://github.com/anysearch-ai/anysearch-skill/archive/refs/heads/main.zip

# Verify integrity (replace with actual checksum from the release page)
# sha256sum anysearch-skill.zip

# Unzip
unzip anysearch-skill.zip

# Move to your agent's skill directory (example paths below, adjust for your agent)
# Claude Code: mv anysearch-skill ~/.claude/skills/anysearch
# OpenCode: mv anysearch-skill ~/.config/opencode/skills/anysearch
# Cursor/Windsurf: mv anysearch-skill /.skills/anysearch
# Generic: mv anysearch-skill /anysearch
# Shared agents: mv anysearch-skill ~/.agents/skills/anysearch
```

`~/.agents/skills/` is a useful shared install location when multiple AI tools read from the same skill directory, including Codex, Cursor, and OpenClaw personal agent skills.

### For Humans

1. Download the zip: https://github.com/anysearch-ai/anysearch-skill/archive/refs/heads/main.zip
2. Unzip to your agent's skill directory
3. Configure API key (see below)
4. Run the entry test to verify installation

## API Key Configuration

An API key is **optional but strongly recommended**. Without a key, you can still use all search features via anonymous access, but with **lower rate limits and quota**.

### How to configure

Copy the example env file and fill in your key:

```bash
cp .env.example .env
# Edit .env and set: ANYSEARCH_API_KEY=
```

Or set the environment variable directly:

```bash
export ANYSEARCH_API_KEY= # Linux/macOS
set ANYSEARCH_API_KEY= # Windows CMD
$env:ANYSEARCH_API_KEY="" # Windows PowerShell
```

### Get an API Key

Visit https://anysearch.com/console/api-keys to sign up and create a free API key.

Key priority order: `--api_key` CLI flag > `.env` file > environment variable > anonymous

## Post-Install Verification

After installation, probe the platform and run the entry test:

### Step 1: Detect available runtime

Run these checks in order. The first success determines the active CLI:

```bash
# Check Python (recommended)
python --version # Need >= 3.6, requires `requests` library
python3 --version # Need >= 3.6, requires `requests` library
# Check Node.js (alternative)
node --version # Need >= 12, no external dependencies
# Check Shell (fallback)
# Windows: PowerShell 5.1+ / Linux/macOS: bash 4+
```

Priority: **Python > Node.js > Shell**

Important: do not assume `python` exists. On many macOS systems, the correct executable is `python3`. Check both `python` and `python3`; if either works, Python is available.

### Step 2: Run entry test (probe all available runtimes)

Run the `doc` command with **each available** runtime to verify the skill works, and observe which runs without errors or warnings:

```bash
# Python
python /scripts/anysearch_cli.py doc

# Python 3 fallback (common on macOS)
python3 /scripts/anysearch_cli.py doc

# Node.js (if available)
node /scripts/anysearch_cli.js doc

# PowerShell (Windows)
powershell -ExecutionPolicy Bypass -File /scripts/anysearch_cli.ps1 doc

# Bash (Linux/macOS)
bash /scripts/anysearch_cli.sh doc
```

For each runtime, record whether the command succeeded and any errors/warnings encountered. The runtime that completes without errors and produces the cleanest output is the recommended runtime for this environment.

### Step 3: Persist recommended runtime to configuration file

Based on the entry test results, write the recommended runtime to `/runtime.conf`:

```bash
echo "Runtime: " > /runtime.conf
echo "Command: " >> /runtime.conf
```

Example for Python:

```bash
echo "Runtime: Python" > /runtime.conf
echo "Command: python /scripts/anysearch_cli.py" >> /runtime.conf
```

Example for Python 3:

```bash
echo "Runtime: Python" > /runtime.conf
echo "Command: python3 /scripts/anysearch_cli.py" >> /runtime.conf
```

Example for Node.js:

```bash
echo "Runtime: Node.js" > /runtime.conf
echo "Command: node /scripts/anysearch_cli.js" >> /runtime.conf
```

Example for PowerShell:

```bash
echo "Runtime: PowerShell" > /runtime.conf
echo "Command: powershell -ExecutionPolicy Bypass -File /scripts/anysearch_cli.ps1" >> /runtime.conf
```

Example for Bash:

```bash
echo "Runtime: Bash" > /runtime.conf
echo "Command: bash /scripts/anysearch_cli.sh" >> /runtime.conf
```

**Important:** Runtime preferences are stored in `runtime.conf`, NOT in SKILL.md. The agent reads `runtime.conf` on skill load to determine the active CLI. If the file is missing or corrupted, the agent falls back to the Platform Detection procedure in SKILL.md. If `runtime.conf` already exists, replace it instead of appending.

### Routine agent usage

After `runtime.conf` exists, agents should use the stored `Command` directly for routine calls instead of running `doc` before every search. For example, if `runtime.conf` contains `Command: python3 /scripts/anysearch_cli.py`, use:

```bash
python3 /scripts/anysearch_cli.py search "query" --max_results 5
python3 /scripts/anysearch_cli.py batch_search --queries '[{"query":"q1","max_results":5},{"query":"q2","max_results":5}]'
python3 /scripts/anysearch_cli.py extract "https://example.com/page"
python3 /scripts/anysearch_cli.py extract --url "https://example.com/page"
```

`extract` output is already Markdown. Do not pass `--format markdown`, `--format json`, or `--markdown`; the extract command only accepts the URL positional argument or `--url`/`-u`. If a subcommand argument is unclear or fails, run ` --help` for that subcommand rather than the full `doc` command.

### Step 4 (optional): Test a real search

```bash
python /scripts/anysearch_cli.py search "hello world" --max_results 1
```

If your system does not provide `python`, use:

```bash
python3 /scripts/anysearch_cli.py search "hello world" --max_results 1
```

A successful JSON response confirms the API connection is working.

## File Structure

```
anysearch/
├── .env.example # API key configuration template
├── .env # Your API key (gitignored, create from .env.example)
├── runtime.conf # Detected runtime preferences (gitignored)
├── runtime.conf.example # Runtime configuration template
├── SKILL.md # Skill definition for AI agents
├── README.md # This file
└── scripts/
├── anysearch_cli.py # Python CLI
├── anysearch_cli.js # Node.js CLI
├── anysearch_cli.ps1 # PowerShell CLI
└── anysearch_cli.sh # Bash CLI
```