> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel Telescope

> Learn how to install Laravel Telescope, from a local-only installation to configuring watchers.

## What is Laravel Telescope

[Laravel Telescope](https://github.com/laravel/telescope) is the official debugging tool that visualizes the internal state of your Laravel application.
It records detailed information about requests, exceptions, queries, jobs, logs, mail, notifications, cache operations, and scheduled runs.

It's a debugging tool **intended for local development environments only**. For monitoring in production, use [Laravel Pulse](/en/pulse) or [Laravel Nightwatch](/en/blog/nightwatch-introduction).

### The layers being monitored

```mermaid theme={null}
flowchart LR
    A["HTTP layer<br>Request / Response"] --> T["Save Telescope entry"]
    B["Application layer<br>Events / Logs / Exceptions"] --> T
    C["Data layer<br>DB Queries / Redis / Cache"] --> T
    D["Async layer<br>Queue Jobs / Schedule / Notifications"] --> T
    T --> E["Dashboard<br>/telescope"]
```

***

## Installation

<Steps>
  <Step title="Install Telescope">
    ```shell theme={null}
    composer require laravel/telescope
    ```
  </Step>

  <Step title="Publish the assets and migrations">
    ```shell theme={null}
    php artisan telescope:install
    ```
  </Step>

  <Step title="Run the migrations">
    ```shell theme={null}
    php artisan migrate
    ```
  </Step>
</Steps>

After installation, you can access the dashboard at `/telescope`.

## Local-only installation (recommended)

<Info>
  If your primary goal is debugging during local development, we recommend installing with `--dev` and manually registering the service provider only in the `local` environment.
</Info>

```shell theme={null}
composer require laravel/telescope --dev

php artisan telescope:install
php artisan migrate
```

After running `telescope:install`, remove the `TelescopeServiceProvider` registration from `bootstrap/providers.php`.
Then register it manually in the `register` method of `App\Providers\AppServiceProvider`.

```php theme={null}
public function register(): void
{
    if ($this->app->environment('local') && class_exists(\Laravel\Telescope\TelescopeServiceProvider::class)) {
        $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class);
        $this->app->register(TelescopeServiceProvider::class);
    }
}
```

Also disable auto-discovery in `composer.json`.

```json theme={null}
{
  "extra": {
    "laravel": {
      "dont-discover": [
        "laravel/telescope"
      ]
    }
  }
}
```

***

## Available watchers

Watchers collect telemetry when requests or commands run.
Manage their enablement and configuration in `config/telescope.php`.

<AccordionGroup>
  <Accordion title="Request Watcher">
    Records requests, headers, session, and responses.\
    You can limit the recorded response size with `size_limit`.
  </Accordion>

  <Accordion title="Query Watcher (particularly important)">
    Records SQL, bindings, and execution time.\
    By default, queries exceeding **100ms** are tagged with `slow`, making it very effective for detecting performance bottlenecks.

    ```php theme={null}
    Watchers\QueryWatcher::class => [
        'enabled' => env('TELESCOPE_QUERY_WATCHER', true),
        'slow' => 100,
    ],
    ```
  </Accordion>

  <Accordion title="Job Watcher">
    Records queue job dispatches and their execution results.
  </Accordion>

  <Accordion title="Exception Watcher">
    Records reportable exceptions and their stack traces.
  </Accordion>

  <Accordion title="Log Watcher">
    Records application logs.\
    The default level is `error` and above, and it can be lowered to `debug` in the configuration.
  </Accordion>

  <Accordion title="Command Watcher">
    Records Artisan command arguments, options, output, and exit codes.
  </Accordion>

  <Accordion title="Event Watcher">
    Records the payloads and listener information of dispatched events (internal Laravel events are excluded).
  </Accordion>

  <Accordion title="Cache Watcher">
    Records cache hits, misses, updates, and deletions.
  </Accordion>

  <Accordion title="Redis Watcher">
    Records Redis commands executed from the application.
  </Accordion>

  <Accordion title="Model Watcher">
    Records Eloquent model events, and can also collect hydration counts if needed.
  </Accordion>

  <Accordion title="Notification Watcher">
    Records sent notifications.
  </Accordion>

  <Accordion title="Mail Watcher">
    Preview sent emails in the browser and download them as `.eml`.
  </Accordion>

  <Accordion title="HTTP Client Watcher">
    Records outbound HTTP client requests.
  </Accordion>

  <Accordion title="Gate Watcher">
    Records the results of Gate / Policy authorization checks.
  </Accordion>

  <Accordion title="Schedule Watcher">
    Records scheduled commands and their output.
  </Accordion>

  <Accordion title="View Watcher">
    Records the name, path, data, and composers of rendered views.
  </Accordion>

  <Accordion title="Batch Watcher">
    Records queue batch information (jobs and connection information).
  </Accordion>

  <Accordion title="Dump Watcher">
    Records `dump` output while Telescope's Dump tab is open.
  </Accordion>
</AccordionGroup>

***

## Summary

| Task                          | Recommended setup                                      |
| ----------------------------- | ------------------------------------------------------ |
| Install                       | `composer require laravel/telescope --dev`             |
| Reliable local-only isolation | Manual provider registration + `dont-discover`         |
| DB performance investigation  | Use the Query Watcher's slow query tag (default 100ms) |

## Next steps

<Columns cols={2}>
  <Card title="Laravel Pulse" icon="chart-line" href="/en/pulse">
    Install a performance aggregation dashboard for production environments.
  </Card>

  <Card title="Laravel Nightwatch" icon="moon" href="/en/blog/nightwatch-introduction">
    Use Nightwatch for real-time monitoring of production environments.
  </Card>
</Columns>


## Related topics

- [Laravel Telescope hands-on techniques](/en/blog/telescope-introduction.md)
- [Laravel Pulse](/en/pulse.md)
- [Building an MCP Server with Laravel](/en/advanced/mcp-server.md)
- [Package Version Compatibility Management](/en/advanced/package-versioning.md)
- [Getting started with Laravel Nightwatch](/en/blog/nightwatch-introduction.md)
