Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Instruckt Laravel Laravel Package

joshcirre/instruckt-laravel

Laravel package that adds visual feedback for AI coding agents: browser annotations become structured markdown, with a backend API, MCP tools, JSON storage, and a Blade toolbar. Installs via Vite plugin or Blade component. Requires PHP 8.2+ and Laravel 11/12.

View on GitHub
Deep Wiki
Context7
v0.4.30

Allow laravel/mcp ^1.0 so Instruckt can be required alongside Laravel MCP 1.0 and laravel/ai 1.x.

v0.4.27

What's new

Database store

Annotations can now be persisted to a database table instead of a flat JSON file. Set INSTRUCKT_STORE=database and run the migration:

php artisan vendor:publish --tag=instruckt-migrations
php artisan migrate

Required for hosted and multi-instance environments.

S3 / remote screenshot storage

Set INSTRUCKT_SCREENSHOT_DISK=s3 (or any configured Laravel disk) to store screenshots on a remote disk. Screenshots are served via temporary signed URLs so they survive deploys.

MCP token authentication

Protect the /instruckt/mcp SSE endpoint with a Bearer token:

INSTRUCKT_MCP_TOKEN=your-secret-token

Then add the header in your .mcp.json:

{
  "instruckt": {
    "url": "https://your-app.com/instruckt/mcp",
    "headers": { "Authorization": "Bearer your-secret-token" }
  }
}

Split middleware config

middleware is now split into api_middleware (annotation CRUD routes) and mcp_middleware (MCP SSE endpoint) for independent control.

MCP error handling fix

instruckt.get_screenshot now returns a proper MCP error response (isError: true) when an annotation has no screenshot or the file is missing, preventing Claude Code from attempting to recover by locating the image via other means.

Upgrade notes

  • If you have published the config, re-publish or manually add api_middleware, mcp_middleware, mcp_token, store, and screenshot_disk keys (all have sensible defaults).
  • The old middleware key still works but is superseded by api_middleware.
v0.4.26

Add Laravel 13 support

v0.4.22

Add configurable toolbar tool visibility — hide individual tools (annotate, screenshot, freeze, etc.) via the tools config array. (PR #4 by @JonPurvis)

v0.4.21

What's new

  • Vite plugin support: instruckt:install now prefers injecting the instruckt/vite plugin into vite.config.* with server: false (Laravel owns the backend), and adds a simple import 'virtual:instruckt' to app.js
  • Falls back to legacy JS snippet and Blade component for projects without Vite
  • instruckt:uninstall updated to clean up Vite plugin injection, virtual imports, and all legacy injection patterns
v0.4.20

What's New

Server-side source resolution

  • New SourceResolver class resolves Livewire component names to PHP class files and line numbers using ReflectionClass
  • Blade view names resolved to file paths via the view finder
  • Store::createAnnotation() automatically enriches annotations with source_file, source_line, class_name, and render_line

Blade view tracking middleware

  • New TrackBladeViews middleware injects a JSON script tag listing all rendered Blade views per request
  • Works with the npm package's Blade adapter to provide framework context for plain Blade pages (e.g. Livewire starter kit auth pages)

On-demand source resolution endpoint

  • New POST /instruckt/resolve-source endpoint for resolving source info on demand

MCP crash fix

  • MCP tools no longer use abort() which threw uncaught HttpException in the stdio context
  • Store::updateAnnotation() returns null instead of aborting; MCP tools handle gracefully

Install command improvement

  • InstallCommand now always includes 'blade' in the adapters list alongside any JS framework adapter
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo