Skip to main content

Debug everything in your PHP app.
Install nothing.

Exceptions. Dumps. Emails. Profiling. Logs. All in one UI, launched with one command. Works with the SDKs you already have. No cloud account.

curl -fsSL https://raw.githubusercontent.com/buggregator/server/master/scripts/install.sh | sh

One file, about 40 MB. One command installs it.

Listens on all network interfaces by default. To keep it on this computer only, see the one-line setting →

Other ways to install →

Runs on Windows, macOS and Linux, on Intel/AMD and ARM.

Prefer not to do it yourself? Your AI agent can set Buggregator up for you →

See it in action →MIT LicenseFree forever

Everything in one dashboard

12 debugging tools. One interface.

Catch unhandled exceptions with full stack traces via Sentry SDK. See exactly where your code breaks.

Read the guide : Exceptions

Illuminate\Auth\AuthenticationException

Unauthenticated. User session has expired.
exception_handlerUnhandled
routes/web.php
15
Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('auth');
app/Http/Controllers/DashboardController.php in index at line 23
1 vars
vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php in unauthenticated at line 44
2 vars

Sentry SDK compatible — PHP, JavaScript, Python, Ruby

Replaces your local dev stack — for free

Sentry (local)

Exceptions & stack traces

Mailhog / Mailtrap

Email capture

Ray

Variable dumps

Blackfire / XHProf UI

Performance profiling

Log viewers

Application logs

RequestBin

HTTP request inspection

Inspector.dev (local)

Application performance monitoring

SMS gateways (dev)

SMS gateway testing

Charles / Fiddler / mitmproxy

Outgoing HTTP request inspection

Mockoon / Beeceptor (dev)

Mock API responses

All of this. One command. Zero cost.

Want debugging functions in your code? Add Buggregator Trap — trap(), tr(), td() out of the box. →

Your app doesn't know we exist.

Not a package. A server.

Buggregator runs beside your application — as one binary or one Docker container. Your codebase doesn't change. Your dependencies don't change. You already have the SDKs installed — they just need a different address.

No new dependencies

Your app's composer.json stays untouched. No service providers. No migrations. No Buggregator code inside your project.

One env variable

Already using Sentry SDK, VarDumper, or Monolog? Change where they send data. That's it. Your code doesn't need to know about Buggregator.

One instance, all your apps

Run one Buggregator — binary or container. Point all your projects at it. Microservices, monorepos, multiple teams — one dashboard.

With Telescope or Ray

your-laravel-app/
├── app/
├── telescope/ ← added to your app
├── Providers/
└── TelescopeServiceProvider
└── database/migrations/
└── 2024_..._telescope ← migration

With Buggregator

your-app/
(unchanged)
→
buggregator
:8000
↑ Zero changes in your code. Only .env.

Made for dev environments.

No account. No credit card. No project setup.

Add Buggregator to your docker-compose.yml alongside your other services. Change your .env. Start debugging. That's 60 seconds — not 15 minutes of cloud dashboard configuration.

Getting started with Sentry / Mailtrap / Blackfire:

  1. 1.Create an account
  2. 2.Verify your email
  3. 3.Create an organization
  4. 4.Create a project
  5. 5.Choose your platform / SDK
  6. 6.Copy DSN or credentials
  7. 7.Paste into your .env
  8. 8.Wait for first event to arrive

~15 minutes before you see a single debug event

Getting started with Buggregator:

  1. 1.Add to docker-compose.yml
  2. 2.Change your .env

Open http://127.0.0.1:8000 — done.

Your debug data never leaves your machine. No cloud storage. No third-party servers. Full privacy.

Just change the address

BEFORE
SENTRY_LARAVEL_DSN=https://abc123@o123456.ingest.sentry.io/789
AFTER
SENTRY_LARAVEL_DSN=http://sentry@127.0.0.1:8000/1

Only the host changed. Your Sentry SDK keeps working exactly the same.

How it works

Three steps. That's it.

1

Run one command

Install one file with one command, or start it with docker run. No registration, no account.

$ curl -fsSL https://raw.githubusercontent.com/buggregator/server/master/scripts/install.sh | sh
$ HTTP_ADDR=127.0.0.1:8000 \
  SMTP_ADDR=127.0.0.1:1025 \
  VAR_DUMPER_ADDR=127.0.0.1:9912 \
  MONOLOG_ADDR=127.0.0.1:9913 \
  PROXY_ADDR=127.0.0.1:8080 \
  ~/.local/bin/buggregator

The script picks the file for your CPU: Intel/AMD or ARM.

One file for Linux, macOS and Windows, about 40 MB. Nothing else to install.

This run line keeps it on this computer. Without the *_ADDR settings it listens on all network interfaces →

Rather not run a script? Download the file yourself →

8000
Web UI + Sentry + Ray + Inspector + XHProf
1025
SMTP — email capture
9912
VarDumper — dump() output
9913
Monolog — application logs
8080
HTTP Proxy — outgoing request capture

Runs on Windows, macOS and Linux, on Intel/AMD and ARM.

Prefer not to do it yourself? Your AI agent can set Buggregator up for you →

2

Add one env variable

Change one line in your .env file. Your existing Sentry SDK, VarDumper, Monolog, or Ray — they all just work.

SENTRY_LARAVEL_DSN=http://sentry@127.0.0.1:8000/1
VAR_DUMPER_SERVER=127.0.0.1:9912
MAIL_HOST=127.0.0.1
MAIL_PORT=1025
3

Open your browser

Navigate to http://127.0.0.1:8000 and Buggregator is ready. No login required.

http://127.0.0.1:8000 →
Free forever No registration No credit card Open source (MIT)

Works with your framework

No vendor lock-in. Your existing SDK just works.

LaravelSymfonySpiralWordPressYii3Drupal

Also: JavaScript, Python, Ruby, Go — via Sentry SDK

Works with: RoadRunner · FrankenPHP · Swoole · Laravel Octane

See integration guides →

Share one instance with your team

Run one Buggregator for the whole team when you need it.

SSO Authentication

Sign in with Auth0, Google, GitHub, Keycloak, GitLab or any OIDC provider

Persistent Storage

Keep events across restarts in a SQLite file — no database server to run

Kubernetes Ready

Deploy as Deployment + Service in your cluster

Webhooks

Trigger external actions on incoming events

Prometheus Metrics

Monitor event counts with Grafana

Multi-project Support

Separate events by project or team

New in v2.6

Mock APIs and AI-assisted debugging

Fake the API you're waiting for

The API isn't ready, or its sandbox is slow? Write a rule — method, path, status, body, delay — and Buggregator answers /mock/... with it. Every call is recorded, with what was sent back or why no rule matched. Rules can live in buggregator.yaml, so CI gets the same answers.

Let your AI assistant see the runtime

Your AI assistant can read your code but not what happened when it ran. Buggregator's MCP server lets Claude Code, Cursor and other MCP clients read your errors, dumps and profiles. With the new Xdebug proxy, they can also read a paused session — stack and variables — while your IDE stays in control. Off by default. The Xdebug tools read the paused session; stepping stays in your IDE.

Also new: install the UI as an app with a badge for new events, and filter Sentry errors, traces, logs and metrics by project and time period.

Built with harnsy

An AI team builds Buggregator. We make the decisions.

The server, UI, docs and this website are built in harnsy, the tool we use to run our AI agents. An AI lead gives work to roles — developers, a reviewer, a release manager — on Claude Code and Codex, on our own machine.

Visit harnsy.dev ↗

An AI employee that sets up Buggregator, connects your app and debugs with Xdebug — for your harnsy team.

Hire the Buggregator operator into your project →

Made by us and our partners

Debugging functions for your PHP code

A Composer package with trap(), tr() and td() — drop-in replacements for dump() and dd(). Chain .depth(), .once(), .if() to dump only what you need. Call tr() between two lines to see the time and memory spent. Works on its own or with the full server.

// Dump variables — clean output, never pollutes your response
trap($user)->depth(3);
// Dump and return — use inline without breaking flow
$response = tr($api->call());
// Dump and die
td($error);
composer require --dev buggregator/trap -W

Never leave your IDE

The Buggregator plugin for PhpStorm brings dumps, logs, and debug data directly into your editor.

Partner project

Tests without the boilerplate

Testo is a PHP testing framework. Write tests as classes, plain functions or attributes right on your code — no TestCase to extend. Assertions grouped by type, benchmarks with one #[Bench] attribute, and a PhpStorm plugin. PHP 8.2+, now in open beta.

composer require --dev testo/testo

Open source. Built with the community.

Buggregator is free forever. No paid plans, no feature gates. If it helps you, consider starring the repo.

If Buggregator saves you time, a star helps others find it.

Growing every day

Stars and downloads across all repositories.

Total Stars

—

Server

—

 

Trap

—

 

Backed by the community

Buggregator is free forever. Sponsors make that possible.

Be the first to support Buggregator.