Tinkerwell 4 is out now! See what's new or buy now.
Tinkerwell background image
Tinkerwell Logo Tinkerwell
See what's new in Tinkerwell 4

The PHP Scratchpad

Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.

Tinkerwell
SQL
1 2 3 4 5 6 7 8 9
// Get a user from your database
$user = User::find(42);

// Add Tinkerwell to the user's apps
$wasAdded = $user->attachApp(Tinkerwell::class);

// Send welcome email
Mail::to($user->email)
    ->send(new WelcomeEmail());
Illuminate\Mail\SentMessage {#4128 #sentMessage: Symfony\Component\Mailer\SentMessage {#4152 } }
INSERT INTO `user_apps` ( `user_id`, `app_id` ) VALUES ( 42, 1 )
true
SELECT * FROM `users` WHERE `id` = 42
App\Models\User {#3846
      id: 42
      name: "Marcel Pociot"
      email: "[email protected]"
      provider_id: "804684"
      provider_token: "ghu_zgN5qayX1!wYA2xoAD4JZm43QI9MvqR04Tf8d"
      provider_refresh_token: null
      created_at: "2023-09-01 11:45:12"
      updated_at: "2023-09-11 13:24:19"
      current_installation_id: null
      username: "mpociot"
      avatar: "https://avatars.githubusercontent.com/u/804684?v=4"
      current_account_id: 56
      provider: "github"
      account_reminder_sent_at: null
      provider_http_token: null
      provider_url: null
    }
    
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
[!] Aliasing 'User' to 'App\User' for this Tinker session.
App\User {#4076
  #connection: "mysql"
  #table: "users"
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  +preventsLazyLoading: false
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #escapeWhenCastingToString: false
  #attributes: array:21 [
    "id" => 49
    "name" => "Marcel"
    "email" => "[email protected]"
    "password" => "$2y$10$7UxZSEfJtplRlH.e7eMUDe8WGuwrmrhZhP9WhGO.c.H7g14tqDOGm"
    "quaderno_id" => ""
    "remember_token" => null
    "created_at" => "2023-06-08 09:16:07"
    "updated_at" => "2023-09-29 11:36:42"
    "package" => "premium"
    "paddle_id" => null
    "confirmed_at" => "2023-06-08 09:16:20"
    "confirmation_code" => null
    "public" => 0
    "twitter" => null
    "github" => null
    "web" => null
    "bio" => null
    "github_id" => null
    "last_login_at" => "2023-06-08 09:16:34"
    "educational_email" => null
    "educational_email_last_verified_at" => null
  ]
  #original: array:21 [
    "id" => 49
    "name" => "Marcel"
    "email" => "[email protected]"
    "password" => "$2y$10$7UxZSEfJtplRlH.e7eMUDe8WGuwrmrhZhP9WhGO.c.H7g14tqDOGm"
    "quaderno_id" => ""
    "remember_token" => null
    "created_at" => "2023-06-08 09:16:07"
    "updated_at" => "2023-09-29 11:36:42"
    "package" => "premium"
    "paddle_id" => null
    "confirmed_at" => "2023-06-08 09:16:20"
    "confirmation_code" => null
    "public" => 0
    "twitter" => null
    "github" => null
    "web" => null
    "bio" => null
    "github_id" => null
    "last_login_at" => "2023-06-08 09:16:34"
    "educational_email" => null
    "educational_email_last_verified_at" => null
  ]
  #changes: []
  #casts: array:2 [
    "last_login_at" => "datetime"
    "educational_email_last_verified_at" => "datetime"
  ]
  #classCastCache: []
  #attributeCastCache: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  +usesUniqueIds: false
  #hidden: array:2 [
    0 => "password"
    1 => "remember_token"
  ]
  #visible: []
  #fillable: array:17 [
    0 => "name"
    1 => "email"
    2 => "password"
    3 => "quaderno_id"
    4 => "package"
    5 => "paddle_id"
    6 => "confirmed_at"
    7 => "github"
    8 => "github_id"
    9 => "twitter"
    10 => "web"
    11 => "bio"
    12 => "public"
    13 => "last_login_at"
    14 => "onboarding_disabled"
    15 => "educational_email"
    16 => "educational_email_last_verified_at"
  ]
  #guarded: array:1 [
    0 => "*"
  ]
  #rememberTokenName: "remember_token"
}

Framework wonders

Tinkerwell ships with drivers for all major frameworks and is extendable to support any PHP application.

The fastest feedback loop in a code editor

Prototype functions and controller methods without leaving the editor. Provide request context, implement the logic and craft the response before you even hit the browser. Switch to your IDE to set up routes and views, and you're done.

The perfect IDE companion for Laravel developers – with plenty of options for other frameworks.

1 2 3 4 5

use App\Models\User;

 

collect(User::all())->map(function ($user) {

return$user->e

email

pub $email: ?string

encrypter

pub static $encrypter: ?string

exists

pub $exists: bool

});

Unleash Eloquent

It has never been easier to fix a bug on a production environment than by connecting to the application and run a quick Eloquent query.

1 2 3 4 5

$value = rand(1, 10); //? 5

 

$user = User::first();

$user->name; //? "Marcel"

Dispatch jobs, preview emails, work with APIs

You can do everything within the editor without reloading your browser to dump variables and objects. Tinkerwell detects the output type and displays emails, creates searchable tables and renders object graphs with relations for complex objects.

1 2 3 4 5

$response = Http::get('https://api.github.com/users/

 

$gists = $response->json();

foreach ($gists as $gist) {

echo $gist['html_url'];

Close (Esc) Cmd+K to toggle focus

Made with you in mind

All the tools we build at Beyond Code have one main goal – to make your life easier.

  • Tinkerwell saves Time

    Save time

    There’s no need to waste time creating test routes or controllers. Just write code.

  • Tinkerwell improves Workflow

    Improve your workflow

    Application context coding and debugging will help you get every job done faster.

  • Tinkerwell boosts productivity

    Boost your productivity

    When you start using Tinkerwell, you’ll wonder how you were ever productive without it.

Tinkerwell is more than just a tinker tool. Way more.

Explore the features that make Tinkerwell the perfect companion for your daily development workflow.

  • Run code via SSH Run your PHP code on remote servers – without modifying your live code or files in any way.
  • Detail Dive Display the output in expandable cards, interactive tables, and graphs. You can even preview emails flawlessly.
  • Magic Comments Debug your PHP code with the usage of magic comments and live code-coverage like never before.
  • AI code generation Let the AI assistant do the heavy lifting and fill out the details where it lacks context.
  • Inspect logs Trail logs when you are connected to an application and inspect them with Tinkerwells debugging capabilities.
  • Tinker on Laravel Vapor Evaluate your code on any of your environments – including Laravel Vapor and Docker.
Tinkerwell circle background image

Trusted and tested by the best

Tinkerwell is trusted by more than 12,000 developers across the globe. Here’s what they have to say.

  • Taylor Otwell, CEO of Laravel
    “I’ve pretty much used Tinkerwell every day since it was released.”

    Taylor Otwell

    Creator of Laravel

  • Mohamed Said, VP of Engineering at Foodics
    “I don't know why anyone wouldn’t use Tinkerwell. I can't even remember how I used to test code on the go before it.”

    Mohamed Said

    VP of Engineering at Foodics

  • Eric L. Barnes, Creator of Laravel News
    “I use Tinkerwell all the time now. Love that app.”

    Eric L. Barnes

    Creator of Laravel News

  • Chris Arter, Laravel Contributor
    “I use Tinkerwell every single day and have 25 tabs open at any one time. It’s the essential tool for Laravel developers”

    Jack Ellis

    Co-founder of Fathom Analytics

  • Israel Araujo, Developer
    “Amazing. I don't know how I lived without it. Much better than my former workflow.”

    Israel Araujo

    Developer

  • Jess Archer, Laravel Core team member
    “Tinkerwell is the fastest way to test an idea or debug an application. It just keeps getting better and better!”

    Jess Archer

    Laravel Core team member

  • Gilbert Pellegrom, CTO at Lemon Squeezy
    “Tinkerwell quickly became an essential part of my daily Laravel workflow. It’s easily the biggest upgrade to my dev experience in years.”

    Gilbert Pellegrom

    CTO at Lemon Squeezy

  • Alex Garrett-Smith, Founder of CodeCourse
    “My productivity soared with Tinkerwell. This should be part of every PHP developer's toolkit.”

    Alex Garrett-Smith

    Founder of CodeCourse

  • Lars Peterke, Developer
    “Tinkerwell is the swiss army knive for every developer's daily work. It's that essential.”

    Lars Peterke

    Developer

  • Sam Carré, Head of engineering at Codepotato
    “Gone are the days of creating a whole PHP app just to test a function or two. Tinkerwell has helped me level-up as a developer.”

    Sam Carré

    Head of engineering at Codepotato

  • Tony Lea, Developer at Cirricula
    “Pretty rad man. With the auto reload functionality as I type, it makes it easy to debug a lot of the logic in my apps. Very well done.”

    Tony Lea

    Developer at Cirricula

  • Daniel Ferguson, CTO at Imperial Wealth
    “Tinkerwell takes the guess work out of development. It’s one of the few apps that lives on my toolbar - I reach for it daily.”

    Daniel Ferguson

    CTO at Imperial Wealth

Pay once, use forever

Every purchase includes a perpetual fallback license that you can use forever.

Single Developer License
  • Icon background image Available for macOS, Windows and Linux
  • Icon background image License for two devices
  • Icon background image 30-days money-back guarantee
  • Icon background image Includes access to all updates for one year
  • Icon background image Perpetual fallback license (pay once, use forever)