{"id":47713594,"url":"https://github.com/jorgecortesdev/laravel-claudify","last_synced_at":"2026-04-05T21:01:16.966Z","repository":{"id":347906326,"uuid":"1195690886","full_name":"jorgecortesdev/laravel-claudify","owner":"jorgecortesdev","description":"Configure Claude Code for Laravel projects with a single command","archived":false,"fork":false,"pushed_at":"2026-03-30T07:26:57.000Z","size":70,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T04:54:56.284Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jorgecortesdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-30T00:58:03.000Z","updated_at":"2026-04-02T19:45:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a99a830-cd9d-425c-8d75-91a94e650477","html_url":"https://github.com/jorgecortesdev/laravel-claudify","commit_stats":null,"previous_names":["jorgecortesdev/laravel-claudify"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/jorgecortesdev/laravel-claudify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgecortesdev%2Flaravel-claudify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgecortesdev%2Flaravel-claudify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgecortesdev%2Flaravel-claudify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgecortesdev%2Flaravel-claudify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jorgecortesdev","download_url":"https://codeload.github.com/jorgecortesdev/laravel-claudify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgecortesdev%2Flaravel-claudify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31371636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-02T18:43:11.225Z","updated_at":"2026-04-03T19:01:28.376Z","avatar_url":"https://github.com/jorgecortesdev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Claudify\n\nConfigure [Claude Code](https://claude.ai/download) for Laravel projects with a single command.\n\nClaudify detects your stack from `composer.json` and `package.json`, then sets up permissions, hooks, skills, and plugins — so you don't configure Claude Code manually for every Laravel app.\n\n## Requirements\n\n- PHP 8.2+\n- Laravel 11, 12, or 13\n- [Claude Code CLI](https://claude.ai/download)\n\n## Installation\n\n```bash\ncomposer require jorgecortesdev/laravel-claudify --dev\n```\n\nThen run the install command:\n\n```bash\nphp artisan claudify:install\n```\n\n## What it does\n\nThe install command runs these steps in order:\n\n### 1. Checks for Claude Code CLI\n\nExits with an error if `claude` is not in your PATH.\n\n### 2. Detects your stack\n\nReads `composer.json` and `package.json` to detect:\n\n- **Pest, Pint, Boost** (from `require-dev`)\n- **Node, Prettier, ESLint** (from `package.json`)\n\n### 3. Offers to install Laravel Boost\n\nIf [laravel/boost](https://github.com/laravel/boost) is not installed and your Laravel version supports it (11.45.3+, 12.41.1+, or 13+), you'll be asked whether to install it. Boost provides MCP tools, guidelines, and skills for Claude Code.\n\n### 4. Installs hooks\n\nCopies auto-format scripts to `.claude/hooks/` based on detected formatters:\n\n| Hook | Condition | What it does |\n|---|---|---|\n| `pint-format.sh` | Pint detected | Runs Pint on `.php` files after edits |\n| `prettier-format.sh` | Prettier detected | Runs Prettier on non-PHP files after edits |\n\n### 5. Writes `.claude/settings.json`\n\nGenerates permissions and deny rules based on your stack:\n\n**Base permissions** (always included):\n- `Bash(php:*)`, `Bash(php artisan:*)`, `Bash(composer:*)`\n\n**Conditional permissions** (when detected):\n\n| Condition | Permissions added |\n|---|---|\n| Pest | `Bash(vendor/bin/pest:*)` |\n| Pint | `Bash(vendor/bin/pint:*)`, `Bash(vendor/bin/pint --dirty:*)` |\n| Node | `Bash(npm:*)`, `Bash(npx:*)` |\n| Boost | All 9 Boost MCP tools: `search-docs`, `application-info`, `database-query`, `database-schema`, `database-connections`, `read-log-entries`, `browser-logs`, `get-absolute-url`, `last-error` |\n\n**Deny rules** (always included):\n- `Edit(.env*)`, `Write(.env*)`\n\n**Hooks** (when formatters detected):\n- PostToolUse on Edit/Write: runs Pint on `.php` files, Prettier on non-PHP files\n\nIf `.claude/settings.json` already exists, new settings are merged without overwriting your existing configuration. Duplicate permissions are deduplicated automatically.\n\n### 6. Installs skills\n\nCopies Laravel-specific skills to `.claude/skills/`:\n\n| Skill | What it provides |\n|---|---|\n| `laravel-debugging` | Root-cause debugging: log inspection, reproduction tests, common bug patterns (N+1, mass assignment, middleware order, queue serialization) |\n| `laravel-tdd-pest` | TDD with Pest: red-green-refactor cycle, HTTP testing, fakes, factories, database assertions, Sanctum/Gate/Inertia patterns |\n| `laravel-conventions` | Coding standards: strict types, type hints, readonly DTOs, enums, naming conventions, file organization |\n| `laravel-security` | Security patterns: input validation, Sanctum auth, policies, SQL injection, XSS, CSRF, rate limiting, file uploads |\n| `laravel-architecture` | Application structure: services vs actions, when to extract, repositories (usually not), events vs observers, jobs, scaling patterns |\n| `laravel-testing-browser` | Browser testing with Pest 4: visit(), interactions, assertions, smoke tests, mobile/device testing, dark mode, accessibility, visual regression, debugging |\n\nSkills are tracked via a `.claudify-manifest.json` file so user-created skills in `.claude/skills/` are never touched.\n\n### 7. Installs plugins\n\nInstalls Claude Code plugins per-project using the `claude` CLI:\n\n| Plugin | Condition |\n|---|---|\n| `laravel-simplifier@laravel` | Always |\n| `php-lsp@claude-plugins-official` | Always |\n| `typescript-lsp@claude-plugins-official` | Node dependencies detected |\n\nPlugins already installed at any scope (user, project, or local) are skipped.\n\n## Dry run\n\nPreview what would be configured without writing files:\n\n```bash\nphp artisan claudify:install --dry-run\n```\n\nThis shows the settings JSON, hook scripts, and skills that would be installed. It does not preview Boost installation or plugin installation since those require network access.\n\n## Auto-update on composer update\n\nAdd the update command to your `composer.json` so Claudify refreshes automatically when the package is updated:\n\n```json\n{\n    \"scripts\": {\n        \"post-update-cmd\": [\n            \"@php artisan claudify:update --ansi\"\n        ]\n    }\n}\n```\n\nThe update command re-runs guidelines, hooks, settings, and skills non-interactively. It skips Boost installation and plugin installation — those are first-install concerns handled by `claudify:install`.\n\n## Re-running\n\nSafe to re-run `claudify:install` at any time. Settings are merged (not overwritten), skills are updated, and plugins already installed are skipped. Run it again after adding packages like Pest or Prettier to pick up new permissions and hooks.\n\n## Testing\n\n```bash\ncomposer test\n```\n\n## Formatting\n\n```bash\ncomposer format\n```\n\n## Acknowledgements\n\nThis package was inspired by [Laravel Boost](https://github.com/laravel/boost) and its approach to configuring AI tools for Laravel projects. Some of the bundled skills were informed by community-shared Claude Code skills found across GitHub, rewritten and adapted for consistency and correctness.\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgecortesdev%2Flaravel-claudify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjorgecortesdev%2Flaravel-claudify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgecortesdev%2Flaravel-claudify/lists"}