Skip to content
Development
Skill

/laravel-scout

Implement full-text search with Laravel Scout. Use when adding search to Eloquent models with Meilisearch, Algolia, or database driver.

From plugin
fusengine-claude-plugins
34200 skills40 agents34 commands

Claude Code

$ npx -y skills add fusengine/claude-plugins --skill laravel-scout --agent claude-code

SKILL.md

laravel-scout.SKILL.md
name: laravel-scout
description: Implement full-text search with Laravel Scout. Use when adding search to Eloquent models with Meilisearch, Algolia, or database driver.
versions:
  laravel: "13.0"
  scout: "11.9"
  php: "8.3"
user-invocable: false
references: references/searchable.md, references/drivers.md
related-skills: laravel-architecture, laravel-eloquent

<objective> Covers Laravel Scout full-text search: the Searchable trait on Eloquent models, driver selection (Meilisearch, Algolia, database, collection), automatic index sync on model changes, the fluent search builder with filters, toSearchableArray() field control, queued indexing, and bulk import/reindexing. For semantic/vector similarity search on PostgreSQL, see laravel-vector-search instead — Scout stays the tool for keyword/full-text search. </objective>

Laravel Scout

Agent Workflow (MANDATORY)

Before ANY implementation, spawn 3 agents in parallel, one `Agent` call each with a `name`:

1. **fuse-ai-pilot:explore-codebase** - Analyze existing model and search patterns 2. **fuse-ai-pilot:research-expert** - Verify Scout docs via Context7 3. **mcp__context7__query-docs** - Check search and indexing patterns

After implementation, run **fuse-ai-pilot:sniper** for validation.

---

Overview

| Component | Purpose | |-----------|---------| | **Searchable Trait** | Makes Eloquent models searchable | | **Search Drivers** | Meilisearch, Algolia, database, collection | | **Indexing** | Automatic sync on model changes | | **Search Builder** | Fluent search API with filters |

---

Decision Guide: Search Driver

Which driver?
├── Production (recommended) → Meilisearch (fast, self-hosted, free)
├── Managed service → Algolia (hosted, pay per search)
├── Small dataset → database (no extra infra)
└── Testing → collection (in-memory, no engine)

---

Quick Setup

composer require laravel/scout
composer require meilisearch/meilisearch-php http-interop/http-factory-guzzle
SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=masterKey
$results = Article::search('laravel tutorial')->paginate(15);

---

Critical Rules

1. **Use `toSearchableArray()`** to control indexed data 2. **Queue indexing** with `SCOUT_QUEUE=true` for performance 3. **Use `searchable()`** for bulk import after setup 4. **Pause indexing** during seeders with `Scout::withoutSyncing()`

---

Reference Guide

| Need | Reference | |------|-----------| | Searchable trait, indexing, conditions | [searchable.md](references/searchable.md) | | Driver setup, Meilisearch, Algolia | [drivers.md](references/drivers.md) |

---

Best Practices

DO

  • Use Meilisearch for production (fast, typo-tolerant)
  • Queue indexing operations (`SCOUT_QUEUE=true`)
  • Limit indexed fields with `toSearchableArray()`

DON'T

  • Index sensitive data (passwords, tokens)
  • Forget to import existing records after setup
  • Use collection driver in production

---

Laravel 13 Notes

Native pgvector vector search

For semantic search (embeddings) on PostgreSQL, Laravel 13 exposes `Schema::ensureVectorExtensionExists()` and `whereVectorSimilarTo()`, covered by the dedicated [[laravel-vector-search]] skill. Scout remains relevant for full-text (Meilisearch/Algolia); for vector similarity, use pgvector directly without a Scout driver.

// Hybrid: Scout for full-text, pgvector for similarity
$keyword = Post::search($query)->get();
$semantic = Post::whereVectorSimilarTo('embedding', $embedding, minSimilarity: 0.4)->limit(10)->get();

Scout 11 (current 11.9, L13 compatible)

  • `where()` accepts comparison operators: `User::search('*')->where('age', '>', 30)->get()`
  • Custom engines: `$builder->wheres` becomes a list of `['field', 'operator', 'value']`
  • Algolia uses `filters` (instead of `numericFilters`); `scout:delete-all-indexes` (Meilisearch) only deletes indexes with the `SCOUT_PREFIX` prefix
Read more
@fusengine
Ships withfusengine-claude-plugins

A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.

34200 skills40 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
34
Star history of fusengine/agents on GitHub, a chart by star-history.com

Other skills on fusengine-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about laravel-scout.

Which coding agents can use laravel-scout?
laravel-scout installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.