$ php artisan tinker --execute

The free workbench for everyday Laravel debugging.

Run Tinker snippets and Artisan commands against a local Laravel app, a Docker container, or a server over SSH — with output you can actually read, duplicate and N+1 queries flagged after every run, and a hard stop before anything touches production.

A free alternative to Tinkerwell, Laravel only. See the honest comparison

latest release v0.1.11 · no account required

View release notes
  • Signed and notarized on macOS, published on the Microsoft Store
  • No account, no license key, no trial timer
  • Snippets, history, and connections stay on your machine
  • The daily Laravel workflow is free; Premium only adds cloud sync
  • +Reusable connections for local projects, SSH servers, and Docker containers
  • +Monaco editor with PHP autocomplete, Laravel-aware suggestions, and runner tabs
  • +Saved snippets and full run history, stored locally
  • +Built-in Laravel log viewer — no SSH session needed

// clean output

Output you can read, not scroll through.

LaraBench parses what your snippet dumps and renders it as structured cards. Models become attribute cards, collections become tables, nested data becomes expandable trees, executed SQL queries show up with bindings and timing, and exceptions get a proper stack trace. The raw output is always one toggle away.

dump() a model and read its attributes as a card instead of a wall of text.
Collections and JSON arrays with a consistent shape render as tables.
Executed SQL queries show up with bindings and timing right next to the result output.

// query analysis

Fifty queries is not an answer. It's a question.

Seeing every query your snippet fired is only useful if you can tell which ones matter. After each run, LaraBench groups them and flags what it found right in the Queries panel — duplicates, repeated query shapes that look like an N+1, and the queries eating your run time. The full breakdown is one click away.

Findings are grouped by type, each with the query text, repeat count, and timing.

duplicate queries

The same query, with the same bindings, run more than once. Grouped with a repeat count so you can see what to cache or eager load.

possible N+1

One query shape repeating with different arguments — the classic loop-over-a-relation pattern. Named by table, so you know where to look.

slow queries

Queries that took a meaningful share of the run, ranked by how much of the total time they account for.

// mcp server

Give Claude Code your Laravel app, not your production database.

LaraBench ships an MCP server. Point Claude Code, Claude Desktop, Codex, or Cursor at it and your assistant can read your saved snippets, run history, and Laravel logs — and, with Premium, run a snippet or an Artisan command against a connection you have explicitly opened up. The per-connection defaults are the point: your assistant gets the context, not a blank cheque.

Read the MCP setup docs
The MCP Server page: turn it on or off, copy the client config, and set what each connection exposes.

reads work with the app closed

Your assistant can list connections, browse saved snippets, search run history, and read Laravel logs straight from the local store.

runs stay behind your approval

Production connections are hidden from AI by default, dry-run connections suppress writes, and a production write needs an in-app confirmation from you.

everything is on the record

Runs triggered over MCP land in History with an AI badge, so you can see exactly what your assistant did.

// connections

Works with local projects, Docker containers, and SSH servers.

Use a local project connection when the app runs directly on your machine, a Docker connection when it should stay inside the container, or SSH when the code lives on a remote server.

Local project

Point LaraBench at a Laravel app on your machine and run code with your local PHP setup. Great for plain local apps, Herd, Valet, and other setups your host can boot directly.

Local Docker

Point LaraBench at your dev container — a Laradock workspace, for example — and it runs code inside it with docker exec. Nothing to install in the container.

Remote SSH

Add a host, user, and app path. LaraBench connects over SSH and reuses the connection, so repeat runs are fast.

// screenshots

A look at the app.

Write a Tinker snippet or an Artisan command, pick a connection, and run it. Exit code, duration, and host sit right above the output.
Keep multiple snippets or commands open at once and switch between them without losing your place.
Reusable snippets and Artisan commands, stored locally. Load one straight into the runner.
Run a snippet repeatedly, compare two approaches side by side, switch between hot and cold sessions, and trim outliers from the summary.
Every run is recorded locally. Filter by project, reopen a run, or save it as a reusable snippet.
Browse the Laravel log files on the selected connection, filter by level, and search.

Hard to run something on production by accident.

The environment label is always visible in the runner, and production runs need an explicit confirmation. Commands that look like they modify data get a stronger warning.

[!] production · api.larabench.com · confirm to continue

environment badge

The runner always shows whether the selected connection is local, staging, or production.

production confirmation

Runs against production open a confirmation dialog first, with the host and the exact command.

write detection

If a snippet or command looks like it modifies data, the warning gets stronger.

your call

You can disable the confirmation for repeat runs and re-enable it in Settings.

User::where(…)->

PHP autocomplete that understands Laravel

The editor runs Intelephense with generated Laravel stubs, so facades, Eloquent models, and helpers autocomplete as you type. You can also point a connection at a local copy of your project to get suggestions for your own models. A format button cleans up the snippet.

saved · history

Saved snippets and history

Snippets and Artisan commands you save can be loaded from a picker inside the runner. Every run also lands in history, so the query you wrote last week is a search away. Everything is stored locally on your machine.

// inside the app

What you get in the app.

Set up a connection, keep a few snippets open in tabs, run code, benchmark alternative approaches, and check the output. Saved snippets, run history, a log viewer, batch runs, an MCP server for your AI tools, and a jobs feed for Laravel covers the rest. No project setup, no config files.

Free, on macOS, Windows & Linux

The desktop app is free. Premium adds cloud sync across devices — the day-to-day Laravel workflow stays free.

Connections

Add, test, and edit local projects, SSH servers, and Docker containers, each with an app path and environment label.

Run Code

Tinker and Artisan modes, a Monaco editor, tabs for keeping multiple runs open, and clean structured output with the raw text a toggle away.

Saved

Reusable snippets and Artisan commands, stored locally and loadable straight into the runner.

Benchmark

Repeat a snippet with warmups, compare two variants side by side, switch between hot and cold sessions, and inspect outliers before trimming them from the summary.

Batch Runs

Give a snippet or command named value lists like id: 1,2,3, run the rows one after another behind a single production confirmation, retry what didn't finish, and export the table as CSV, Markdown, or JSON. A Premium extra.

History

Every run, recorded locally. Filter by project, reopen a run, or save it for reuse.

Logs

A Laravel log viewer for the selected connection, with level filters and search.

MCP Server

A token-protected server that lets Claude Code, Claude Desktop, Codex, or Cursor reach your projects through LaraBench. You choose how much of each connection they may touch.

Jobs

Browse the jobs feed for Laravel from the website without leaving the app. Filter by stack, source, seniority, arrangement, or country, then open the original listing.

News

Editorial Laravel coverage and package releases in one feed, with release notes and registry links, without leaving the app.

Appearance

Separate app and editor themes, stored locally. Custom themes are a Premium extra.

$ ./LaraBench

Set up a connection and run your first snippet in a minute.

Nothing to install in your project, no account, no license key. Download it, point it at a Laravel app, and run some code.

Download LaraBench — free

macOS, Windows, and Linux · coming from Tinkerwell? Read the comparison first