axyr/laravel-langfuse

Langfuse PHP SDK for Laravel
25,381 28
Install
composer require axyr/laravel-langfuse
Latest Version:v0.4.0
PHP:^8.2
License:MIT
Last Updated:Oct 1, 2026
Links: GitHub  ·  Packagist
Maintainer: axyr

Laravel Langfuse

CI PHPStan PHP Version Laravel License: MIT

Langfuse is an open-source observability platform for LLM applications. It gives you a dashboard to trace every LLM call, track token usage and costs, manage prompt versions, and evaluate output quality - all in one place. It's self-hostable or available as a managed cloud service.

This package connects your Laravel app to Langfuse. Send traces, generations, scores, and prompts with a clean, idiomatic API - or let the auto-instrumentation do it for you.

use Axyr\Langfuse\LangfuseFacade as Langfuse;

$trace = Langfuse::trace(new TraceBody(name: 'chat-request'));

$generation = $trace->generation(new GenerationBody(
    name: 'chat',
    model: 'gpt-4',
    input: [['role' => 'user', 'content' => 'Hello!']],
));

// After the LLM responds:
$generation->end(
    output: 'Hi there!',
    usage: new Usage(input: 12, output: 85, total: 97),
);

$trace->end(output: 'Hi there!');

Observations are batched and flushed automatically. Zero-code auto-instrumentation is available for Laravel AI, Prism, and Neuron AI.

Features

  • Full observability - traces, spans, generations, events, and scores with automatic parent-child nesting
  • Read & evaluate - query scores, observations, and metrics, and manage datasets, dataset items and experiments to build evaluation workflows (read API)
  • Prompt management - fetch, cache, compile, create, and list prompts with stale-while-revalidate caching
  • Auto-instrumentation - zero-code tracing for Prism, Laravel AI, and Neuron AI
  • Automatic batching - completed observations queued and sent in batches over OTLP, with optional async dispatch via Laravel queues
  • Production-ready - Octane compatible, graceful degradation, auto-end and auto-flush on shutdown, testing fakes

Installation

Requires PHP 8.2+ and Laravel 12 or 13. No PHP extensions beyond the core hash, random_bytes and json; zlib is only needed when you turn on LANGFUSE_COMPRESSION.

Langfuse compatibility. Since 0.4.0 the package writes traces over OpenTelemetry (OTLP) and reads back from the v2/v3 APIs:

Surface Requirement
Tracing Langfuse Cloud (v3 and v4) and self-hosted 3.22.0+
Scores (write and read) Langfuse Cloud (v3 and v4) and self-hosted v3+
Observations, metrics and experiments read APIs Langfuse v4

Langfuse Cloud removes the deprecated ingestion and read endpoints on 2026-11-16. Upgrading to 0.4.0 before that date is required; see the upgrade guide.

composer require axyr/laravel-langfuse

Add your Langfuse credentials to .env:

LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...

Optionally publish the configuration file:

php artisan vendor:publish --tag=langfuse-config

Examples

Working example projects for each integration:

Documentation

Full documentation in the docs/ directory:

See the Changelog for release history.

Contributing

Contributions welcome. Open an issue first to discuss what you'd like to change.

composer test        # Run tests
composer pint        # Fix code style

License

MIT

Author

Built by Martijn van Nieuwenhoven - Laravel developer specializing in AI integrations and observability tooling.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660

Version History

Version Released PHP Laravel License
v0.4.0 ^8.2 ^12.0|^13.0 MIT
v0.3.0 ^8.2 ^12.0|^13.0 MIT
v0.2.0 ^8.2 ^12.0|^13.0 MIT
v0.1.0 ^8.2 ^12.0|^13.0 MIT