PHPackages                             amims71/tinker-web - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. amims71/tinker-web

ActiveProject[Utility &amp; Helpers](/categories/utility)

amims71/tinker-web
==================

A standalone local web scratchpad for any PHP/Laravel project — write PHP in your browser and evaluate it against any local app, no per-project install required.

v0.1.1(today)18↑2525%MITPHPPHP ^8.2CI passing

Since Jul 1Pushed todayCompare

[ Source](https://github.com/amims71/tinker-web)[ Packagist](https://packagist.org/packages/amims71/tinker-web)[ RSS](/packages/amims71-tinker-web/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

tinker-web
==========

[](#tinker-web)

**A standalone local PHP scratchpad for *any* Laravel/PHP project — in your browser.**

Run `tinker-web`, point it at any local Laravel app, and evaluate PHP against that app's booted container from a browser editor — no per-project package to install. Think Tinkerwell, but a small open-source local web app.

```
$ tinker-web ~/code/my-app
  tinker-web — a local scratchpad for any PHP project
  Serving:  http://127.0.0.1:51488/?t=…    (opens automatically)

```

How it works
------------

[](#how-it-works)

- A tiny **local HTTP server** (127.0.0.1 only, single-user) serves a CodeMirror-style editor.
- Each run spawns a **fresh PHP runner rooted in the target project** — it `require`s the target's `vendor/autoload.php`, boots that app, evaluates your snippet, and renders the result with the target's own `symfony/var-dumper` + Laravel Tinker casters (so Eloquent models/collections read nicely). A separate process per eval = clean isolation, and no dependency clash with the tool.
- The target needs **nothing installed** (it uses its own PsySH/Tinker if present, with a plain-eval fallback otherwise).

Requirements
------------

[](#requirements)

- PHP **8.2+** (to run the tool).
- A local Laravel app to target (any version). `laravel/tinker` in the target gives the nicest rendering but isn't required.

Install
-------

[](#install)

```
composer global require amims71/tinker-web     # then ensure ~/.composer/vendor/bin (or ~/.config/composer/vendor/bin) is on your PATH
```

Or clone and run directly:

```
git clone https://github.com/amims71/tinker-web && cd tinker-web && composer install
php bin/tinker-web /path/to/app
```

Usage
-----

[](#usage)

```
tinker-web                 # target the current directory
tinker-web .               # same — the current directory (any relative path is resolved)
tinker-web /path/to/app    # target a specific project
tinker-web --port=9000     # fixed port (default: an OS-assigned ephemeral port)
tinker-web --no-open       # don't auto-open the browser
```

Add more projects from the toolbar; recent projects are remembered in `~/.config/tinker-web`. Write PHP in the editor and press **⌘/Ctrl + ↵** to run — or flip on **Auto-run** to re-evaluate live as you finish each statement. Snippets run as a **notebook**: each top-level statement becomes its own result cell (state persists within a run), and `dump()`/`dd()` output and return values render as VarDumper's **collapsible, interactive** HTML — click to expand Eloquent models and arrays. `dd()`/`exit()`/`die()` stop the run cleanly with a marker instead of erroring.

Security
--------

[](#security)

`tinker-web` executes arbitrary PHP against the target app, so it is deliberately **local-only**:

- Binds to **`127.0.0.1`** exclusively (never `0.0.0.0`).
- Requires a **random per-session token** in the URL (constant-time compared).
- Enforces a **Host-header allowlist** (`127.0.0.1` / `localhost`) to blunt DNS-rebinding.

Only run it on your own machine against apps you trust. Rendering a model shows its attributes (including hidden ones like tokens) — expected for a local scratchpad.

Roadmap
-------

[](#roadmap)

- CodeMirror 6 editor (bundled) with PHP syntax highlighting, autocomplete/IntelliSense, and auto-import.
- Warm runner daemon per target, plus a stateful REPL session (variables persist across evals).
- Refuse/warn when the target's `APP_ENV` is `production`.

Testing
-------

[](#testing)

```
composer install && vendor/bin/pest
```

License
-------

[](#license)

MIT.

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance100

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/23295804?v=4)[Amimul Ehshan](/maintainers/amims71)[@amims71](https://github.com/amims71)

---

Top Contributors

[![amims71](https://avatars.githubusercontent.com/u/23295804?v=4)](https://github.com/amims71 "amims71 (31 commits)")

---

Tags

phplaravelREPLpsyshTinkerscratchpad

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/amims71-tinker-web/health.svg)

```
[![Health](https://phpackages.com/badges/amims71-tinker-web/health.svg)](https://phpackages.com/packages/amims71-tinker-web)
```

###  Alternatives

[laravel/tinker

Powerful REPL for the Laravel framework.

7.4k456.0M2.2k](/packages/laravel-tinker)[intonate/tinker-zero

Use laravel/tinker on your laravel-zero applications

4967.3k20](/packages/intonate-tinker-zero)[amranidev/laracombee

Recommendation system for laravel

11538.8k1](/packages/amranidev-laracombee)[yieldstudio/tailwind-merge-php

Merge Tailwind CSS classes without style conflicts

4975.4k1](/packages/yieldstudio-tailwind-merge-php)[wujunze/money-wrapper

MoneyPHP Wrapper

103.8k](/packages/wujunze-money-wrapper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
