PHPackages                             pupocz/tracy-claude-panel - 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. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. pupocz/tracy-claude-panel

ActiveLibrary[Debugging &amp; Profiling](/categories/debugging)

pupocz/tracy-claude-panel
=========================

Tracy BlueScreen panel that formats errors for AI-assisted debugging. One-click error export to Claude Code and other AI coding assistants.

v1.1.0(3mo ago)06MITPHPPHP &gt;=8.1

Since Mar 23Pushed 3mo agoCompare

[ Source](https://github.com/PuPoCZ/tracy-claude-panel)[ Packagist](https://packagist.org/packages/pupocz/tracy-claude-panel)[ RSS](/packages/pupocz-tracy-claude-panel/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (1)Versions (4)Used By (0)

Tracy Claude Panel
==================

[](#tracy-claude-panel)

Tracy BlueScreen panel that formats errors for AI-assisted debugging. One-click error export to [Claude Code](https://claude.ai/code) and other AI coding assistants.

What it does
------------

[](#what-it-does)

When a PHP error occurs, this panel appears on Tracy's BlueScreen with a **"Copy for Claude"** button. One click copies a structured error summary to your clipboard, ready to paste into Claude Code or any AI assistant.

**Example output:**

```
Error: Warning — Undefined variable $person
URL: GET http://localhost:8080/admin/employee/5
Presenter: User:Admin:EmployeeDetail:default
File: app/Modules/User/Presentation/Admin/EmployeeDetail/default.latte:42

Source:
   38:
   39:
   40:             Employee ID
   41:             {$employee->getNumber()}
 → 42:         {if $person->getOffice()}
   43:             Office
   44:             {$person->getOffice()}
   45:
   46:

Stack (app only):
  app/Shared/Components/admin-card.latte:50 LatteTemplate::main()
  app/Modules/User/Presentation/Admin/EmployeeDetail/default.latte:42 LatteTemplate::renderBlock()

```

**Example with vendor-originated error (e.g. invalid Nette link):**

```
Error: User Warning — Invalid link: Missing parameter $id required by ProfilePresenter::actionDefault()
URL: GET http://localhost:8080/admin/external-lecturers/2/detail
Presenter: User:Admin:ExternalLecturerDetail:default
File: app/Modules/User/Presentation/Admin/ExternalLecturerDetail/ExternalLecturerDetailPresenter.php:63

Source:
   59:         $this['pageHeader']->setBackLink($this->link('ExternalLecturers:default'));
   60:
   61:         if ($this->getUser()->isAllowed('ExternalLecturers', 'edit')) {
   62:             if ($person->getSlug()) {
 → 63:                 $this['pageHeader']->add('Profile', $this->link(':User:Front:Profile:default', ['slug' => $person->getSlug()]))
   64:                     ->setIcon('visibility');
   65:             }
   66:         }
   67:     }

Args: Component::link(':User:Front:Profile:default', ['slug': 'ivan-omavka'])

Stack (app only):
  app/Modules/User/Presentation/Admin/ExternalLecturerDetail/ExternalLecturerDetailPresenter.php:63 Component::link()

```

Features
--------

[](#features)

- **Error info** — type, message, file, line number
- **URL + HTTP method** — `GET http://localhost:8080/admin/users`
- **Nette presenter:action** — `User:Admin:EmployeeDetail:default` (auto-detected via Application event, works with any mapping)
- **Smart file resolution** — when error originates in vendor code (e.g. `trigger_error` inside Nette), resolves to the first app-level frame where the problem actually is
- **Function arguments** — shows the arguments of the call that triggered the error (scalars, short arrays, class names for objects)
- **Latte template resolution** — maps compiled PHP back to original `.latte` file and line number (supports Latte 2 and 3)
- **Source code snippet** — shows code around the error with `→` marker
- **Doctrine SQL** — extracts query + parameters from DBAL exceptions
- **Filtered stack trace** — only your app files, no vendor noise; Latte frames resolved to `.latte` paths
- **Chained exceptions** — shows the full cause chain with circular reference protection

Installation
------------

[](#installation)

```
composer require --dev pupocz/tracy-claude-panel
```

### Nette Framework

[](#nette-framework)

Register the extension in your config (e.g. `config/common.neon`):

```
extensions:
    tracyClaudePanel: PuPoC\TracyClaudePanel\Bridge\Nette\TracyClaudePanelExtension
```

That's it. The extension registers the panel and hooks into `Application::$onRequest` for presenter detection. It only activates in debug mode.

### Standalone Tracy (without Nette)

[](#standalone-tracy-without-nette)

Register manually in your bootstrap after enabling Tracy:

```
use PuPoC\TracyClaudePanel\ClaudeBlueScreenPanel;

Tracy\Debugger::enable();
ClaudeBlueScreenPanel::register(__DIR__ . '/app');
```

The argument is the absolute path to your application source directory. Files outside this directory are filtered from the stack trace.

#### Optional: Presenter detection for standalone usage

[](#optional-presenter-detection-for-standalone-usage)

```
$application->onRequest[] = [ClaudeBlueScreenPanel::class, 'onRequest'];
```

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

[](#requirements)

- PHP 8.1+
- Tracy 2.10+

### Optional (auto-detected when available)

[](#optional-auto-detected-when-available)

- **nette/application** — for presenter:action context
- **latte/latte** — for template source resolution (Latte 2 and 3)
- **doctrine/dbal** — for SQL query extraction

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

[](#how-it-works)

1. Registers a panel on Tracy's BlueScreen via `addPanel()`
2. When an error occurs, builds a structured text summary
3. If the error originates in vendor code, walks the stack trace to find the first app-level frame
4. Resolves compiled Latte templates to original `.latte` files using source comments and position markers
5. For Nette apps, uses the `Application::$onRequest` event to capture the current presenter name before the error happens
6. Renders a "Copy for Claude" button that copies the summary to clipboard

License
-------

[](#license)

MIT

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance82

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

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

3

Last Release

95d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1894988?v=4)[pupo](/maintainers/pupo)[@Pupo](https://github.com/Pupo)

---

Tags

netteaidebuggingerrortracyclaudebluescreenpanel

### Embed Badge

![Health badge](/badges/pupocz-tracy-claude-panel/health.svg)

```
[![Health](https://phpackages.com/badges/pupocz-tracy-claude-panel/health.svg)](https://phpackages.com/packages/pupocz-tracy-claude-panel)
```

###  Alternatives

[recca0120/laravel-tracy

A Laravel Package to integrate Nette Tracy Debugger

382284.2k3](/packages/recca0120-laravel-tracy)[contributte/tracy

Nette Tracy extensions for easy-developing

131.5M5](/packages/contributte-tracy)[vasek-purchart/tracy-blue-screen-bundle

This bundle lets you use the Tracy's debug screen in combination with the the default profiler in your Symfony application.

1178.1k](/packages/vasek-purchart-tracy-blue-screen-bundle)[orisai/tracy-pets

Tracy got an angry pet to remind you of your failures

1025.7k3](/packages/orisai-tracy-pets)[koriym/xdebug-mcp

Universal PHP Xdebug MCP Server with AI-optimized debugging support

5221.3k1](/packages/koriym-xdebug-mcp)[thehocinesaad/laravel-error-ai

This package adds Ask AI button to the error page.

2222.3k](/packages/thehocinesaad-laravel-error-ai)

PHPackages © 2026

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