Tinker in your browser
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
config wip Feb 11, 2019
public Use min-size Feb 12, 2019
resources Remove comment Feb 12, 2019
src Update Tinker.php Feb 15, 2019
tests fix typo and use dedicated assertion Feb 14, 2019
.editorconfig initial setup Dec 5, 2018
.gitattributes initial setup Dec 5, 2018
.gitignore wip Feb 8, 2019
.prettierrc formatter Dec 5, 2018
.scrutinizer.yml initial setup Dec 5, 2018
.styleci.yml initial setup Dec 5, 2018
.travis.yml initial setup Dec 5, 2018
CHANGELOG.md Update CHANGELOG.md Feb 15, 2019
CONTRIBUTING.md initial setup Dec 5, 2018
LICENSE.md initial setup Dec 5, 2018
README.md fix typo Feb 13, 2019
phpunit.xml.dist initial setup Dec 5, 2018
tailwind.js Dark mode layout Feb 8, 2019
webpack.mix.js Layout wip Feb 7, 2019


Artisan Tinker in your browser

Latest Version on Packagist Build Status StyleCI Quality Score Total Downloads

Artisan's tinker command is a great way to tinker with your application in the terminal. Unfortunately running a few lines of code, making edits, and copy/pasting code can be bothersome. Wouldn't it be great to tinker in the browser?

This package will add a route to your application where you can tinker to your heart's content.

Web tinker light

In case light hurts your eyes, there's a dark mode too.

Web tinker dark

🚨 A word to the wise 🚨

This package can run arbritary code. Unless you know what you are doing, you should never install or use this in a production environment, or any environment where you handle real world data.


You can install the package via composer:

composer require spatie/laravel-web-tinker --dev

Next, you must publish the assets from this package by running this command.

php artisan web-tinker:install

Optionally, you can publish the config file of the package.

php artisan vendor:publish --provider="Spatie\WebTinker\WebTinkerServiceProvider" --tag="config"

This is the content that will be published to config/web-tinker.php

return [
     * The web tinker page will be available on this path.
    'path' => '/tinker',

     * Possible values are 'auto', 'light' and 'dark'.
    'theme' => 'auto',

     * By default this package will only run in local development.
     * Do not change this, unless you know what your are doing.
    'enabled' => env('APP_ENV') === 'local',


By default this package will only run in a local environment.

Visit /tinker in your local environment of your app to view the tinker page.


Should you want to run this in another environment (we do not recommend this), there are two steps you must perform.

  1. You must register a viewWebTinker ability. A good place to do this is in the AuthServiceProvider that ships with Laravel.
public function boot()

    Gate::define('viewWebTinker', function ($user = null) {
        // return true if access to web tinker is allowed
  1. You must set the enabled variable in the web-tinker config file to true.


composer test


Please see CHANGELOG for more information on what has changed recently.


Please see CONTRIBUTING for details.


If you discover any security related issues, please email freek@spatie.be instead of using the issue tracker.


You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.

We publish all received postcards on our company website.


This package was inspired by and uses code from the nova-tinker-tool package by Marcel Pociot.

Support us

Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.

Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.


The MIT License (MIT). Please see License File for more information.