PHPackages                             bnomei/scip-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. bnomei/scip-laravel

ActiveLibrary

bnomei/scip-laravel
===================

Laravel-aware SCIP index generation for Laravel applications.

v1.0.0(yesterday)00MITPHPPHP ^8.3CI passing

Since Mar 21Pushed yesterdayCompare

[ Source](https://github.com/bnomei/scip-laravel)[ Packagist](https://packagist.org/packages/bnomei/scip-laravel)[ Docs](https://github.com/bnomei/scip-laravel)[ Fund](https://www.buymeacoffee.com/bnomei)[ GitHub Sponsors](https://github.com/bnomei)[ RSS](/packages/bnomei-scip-laravel/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (9)Versions (2)Used By (0)

scip-laravel
============

[](#scip-laravel)

[![Laravel 11-13](https://camo.githubusercontent.com/608cde5f14dcbf2bf4d37a01b0040f5f544ea1ae2e3be1bb0427d36545723aef/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f4c61726176656c2f31312d31333f636f6c6f723d463035333430)](https://laravel.com)[![PHP 8.3+](https://camo.githubusercontent.com/3b45b7e22c59d491628c44fdfd58c07557d1ab3673cf55989a61dfac10074773/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f5048502f382e332532423f636f6c6f723d3445354239332669636f6e3d706870266c6162656c)](https://camo.githubusercontent.com/3b45b7e22c59d491628c44fdfd58c07557d1ab3673cf55989a61dfac10074773/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f5048502f382e332532423f636f6c6f723d3445354239332669636f6e3d706870266c6162656c)[![Tests](https://github.com/bnomei/scip-laravel/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/bnomei/scip-laravel/actions/workflows/tests.yml)[![License](https://camo.githubusercontent.com/552d983e51c16b56f2a32000def01806d5f017184d7bfb4a072235fae982f933/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f6c6963656e73652f4d49543f636f6c6f723d393939393939)](LICENSE)[![Discord](https://camo.githubusercontent.com/36eaef1b06f4996feb7587aa3281dcbd658e57535bc6b5e10110ed108e7a7a03/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f646973636f72642f626e6f6d65693f636f6c6f723d3732383964612669636f6e3d646973636f7264266c6162656c)](https://discordapp.com/users/bnomei)[![Buymecoffee](https://camo.githubusercontent.com/62e55d1129b82bf9c2fd4656451e81ab87a9787e7c9676ca58276532ed9666ee/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f69636f6e2f646f6e6174653f69636f6e3d6275796d6561636f6666656526636f6c6f723d464638313346266c6162656c)](https://www.buymeacoffee.com/bnomei)

`scip-laravel` is a Laravel-aware SCIP generator for Laravel applications. Install it into the Laravel app you want to index as a dev dependency only. It is an indexing and code-intelligence tool, not a production runtime dependency.

`scip-laravel` builds on:

- [`scip-php`](https://github.com/davidrjenni/scip-php) for baseline PHP SCIP indexing
- [`Surveyor`](https://github.com/laravel/surveyor) for Laravel-aware analysis metadata
- [`Ranger`](https://github.com/laravel/ranger) for Laravel application inventories such as routes, models, broadcast surfaces, and Inertia pages

Consumers should execute the repo-local `vendor/bin/scip-laravel` binary to generate a merged `index.scip`. What this package adds on top of those three pillars is the Laravel-specific merge and enrichment layer, so AI agents can retrieve Laravel-native concepts from the SCIP file, not just raw PHP symbols. In practice that includes:

- Eloquent model members such as declared properties, declared methods, static methods, constants, attributes, accessors, mutators, relations, and supported model-style reads and writes from PHP, Blade, and Volt; syntactically declared members resolve precisely when statically knowable, while dynamic Eloquent members such as magic attributes, unresolved relation-style properties, and other runtime-only indirection remain best-effort
- named routes as first-class symbols, with definitions in `routes/*.php` and references from `route(...)`, `to_route(...)`, `request()->routeIs(...)`, `redirect()->route(...)`, plus controller links and supported Volt and full-page Livewire route anchors
- Blade views and component edges from `view()`, `@extends`, `@include*`, ``, ``, `@livewire(...)`, and supported local prefixed components such as `flux:*`
- Livewire and Volt component semantics such as supported `wire:model`, `wire:click`, `wire:submit`, Blade-local props and slots, route-bound model usage, and validation keys
- Inertia page names and contract symbols for page props and shared data from `Inertia::render(...)` back to local page files
- broadcast channel names and payload contract symbols from channel definitions, `broadcastOn()`, and broadcast payload usage
- config keys as first-class symbols from `config/*.php`, with references from `config(...)`, `Config::get(...)`, and `app('config')->get(...)`
- translation keys as first-class precise symbols from PHP and JSON lang files, with raw-key display names and references from `__()`, `trans()`, `trans_choice()`, `Lang::get()`, and `@lang`, using one stable symbol per raw key shared across locale variants in the same translation family
- environment variables as first-class symbols from `.env.example` and `.env`, with references from `env(...)` lookups including defaulted forms such as `env('KEY', false)`

Compatibility
-------------

[](#compatibility)

- Laravel: 11, 12, and 13
- PHP: `^8.3`

The package bundles a compatible `scip-php` runtime inside this repository so Composer installs do not depend on an unpublished upstream tag.

The vendored `packages/scip-php` copy is intentionally patched locally for performance and bootstrap compatibility. See [packages/scip-php/LOCAL\_PATCHES.md](/Users/bnomei/Sites/scip-laravel/packages/scip-php/LOCAL_PATCHES.md) and do not update that directory blindly from upstream.

Install
-------

[](#install)

Install it into the target Laravel app as a local dev dependency:

```
composer require --dev bnomei/scip-laravel
```

Do not add it as a production dependency. Consumers should invoke the repo-local binary from that install.

The target Laravel app must have a readable `composer.json`, `composer.lock`, `vendor/autoload.php`, and `vendor/composer/installed.php`.

Usage
-----

[](#usage)

Generate `index.scip` in the current Laravel app:

```
vendor/bin/scip-laravel
```

Generate to a custom path:

```
vendor/bin/scip-laravel --output=build/index.scip
```

Index a different Laravel app from outside its root:

```
vendor/bin/scip-laravel /path/to/laravel-app
```

Show the CLI contract:

```
vendor/bin/scip-laravel --help
```

Usage With AI-Assisted Development
----------------------------------

[](#usage-with-ai-assisted-development)

If you use AI coding tools, [Frigg](https://github.com/bnomei/frigg) is a good companion to `scip-laravel`.

`scip-laravel` generates a Laravel-aware `index.scip`. Frigg is a local-first, read-only MCP server for code understanding that can use optional SCIP overlays alongside source-backed repository indexing. In practice, that means better navigation and code search for PHP, Blade, and adjacent repositories without turning this package into a hosted service or runtime dependency. Think of it as PHPStorm with the Laravel Idea plugin but for your agents.

CLI
---

[](#cli)

```
vendor/bin/scip-laravel [--output=index.scip] [--config=scip-laravel.php] [--mode=safe|full] [--strict] [--feature=models,routes,views,inertia,broadcast,config,translations,env] [target-root]

```

- `target-root` defaults to the current working directory.
- Relative `target-root` values resolve from the current working directory.
- Relative `--config` and `--output` values resolve from the resolved target root.
- `--feature` is an explicit allow-list override.

Modes
-----

[](#modes)

- `full` is the default whenever `--mode` is omitted. It boots the target app as-is and prioritizes maximum discovery.
- `safe` applies deterministic runtime overrides before Laravel boot for cache, session, queue, mail, filesystem, broadcast, and database-related settings where possible. Use `--mode=safe` when you need that behavior.
- `--strict` makes enabled enricher failures fatal. Without it, post-baseline enricher failures fail open.

Config
------

[](#config)

An optional repo-root `scip-laravel.php` file may return:

```
