TinkerLite is a lightweight desktop app that gives php artisan tinker the editor interface it deserves: tabs, snippets, SSH connections, and structured output. Built with Tauri and CodeMirror.
php artisan tinker is one of the most useful things in Laravel. It's also running in the wrong place.
You've used it. You pop into a terminal, run php artisan tinker, poke at a model, get your answer, and close the session. Next time you need the same query, you're writing it from scratch. If you also need to check something on staging, you open a second terminal, SSH in, run tinker there, and now you're juggling two bare REPLs with no connection between them.
TinkerLite is a lightweight PHP scratchpad desktop app built to fix this. It gives tinker the editor interface it always deserved: tabs, a snippet library, local and SSH connections, and an output panel that renders your results instead of dumping raw text. Built with Tauri v2 and CodeMirror 6, the app is roughly 14MB on macOS and sips memory rather than hogging it — nothing like the Electron-based alternatives that open before your coffee finishes brewing.
I open-sourced it today.
TinkerLite is connection-based. A connection points to either a local Laravel project or a remote project you can reach over SSH. Every connection gets its own set of tabs, and switching between connections restores exactly where you left off in each one.
The SSH flow avoids the usual frustration. Rather than filling out a form and hoping the credentials work, TinkerLite runs a two-step: it tests your credentials first, then (if that passes) shows you a PHP version picker and lets you set your project path. You know the connection works before you're relying on it.
The editor is CodeMirror 6 with the PHP language extension: syntax highlighting and autocomplete out of the box. TinkerLite goes further by scanning your project for class names and function names, adding them to the autocomplete pool. App\Models\User and your custom service classes show up as suggestions without any configuration.
Tab indents. Middle-click drag (or Alt+drag) gives you rectangular selection. Undo and redo work exactly as expected. Run your code with Cmd+Enter.
TinkerLite's output panel renders results in distinct blocks depending on what produced them:
| Block type | What it shows |
|---|---|
| Value | Expression results, formatted like a var_dump |
| Echo | Anything you echo or print, rendered separately |
| Error | PHP errors with accurate line numbers |
| Stderr | Raw stderr from the PHP process |
Accurate line numbers come from running php -l before eval, so errors point to the right place in your editor rather than somewhere inside the eval wrapper.
Each block has a copy button. Errors are readable at a glance.
Anything you write in TinkerLite can be saved as a named snippet, scoped to its connection. Your production debug queries and your local test scripts stay separate. Load a snippet with one click, rename it when your mental model shifts, replace it when you've iterated.
The goal is a per-project library of reusable queries and inspection scripts you can reach for instead of rewriting the same User::where('email', ...)->first() every time.
A pre-built download is on the way. For now, building from source takes under a minute with Rust and Node already installed:
git clone https://github.com/JordanDalton/tinkerlite.git
cd tinkerlite
npm install
npm run tauri dev
For a production build:
npm run tauri build
The app lands in src-tauri/target/release/bundle/macos/. If macOS blocks it on first launch, right-click and choose Open.
Requirements: Rust (stable toolchain via rustup), Node.js 18+, Xcode Command Line Tools, PHP 7.4+ on whatever machine you're connecting to. Laravel is optional; TinkerLite works with any PHP project.
TinkerLite is open source and on GitHub:
github.com/JordanDalton/tinkerlite
Clone it, connect it to a project, and see how it feels to run PHP code in a proper editor instead of a bare terminal prompt.
Written by Jordan Dalton. More at jordandalton.com.
Take the ideas in here from concept to working software in one focused day.
Book a build day →