Claude-skill-registry langfuse-install-auth
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/langfuse-install-auth" ~/.claude/skills/majiayu000-claude-skill-registry-langfuse-install-auth && rm -rf "$T"
manifest:
skills/data/langfuse-install-auth/SKILL.mdsource content
Langfuse Install & Auth
Overview
Set up Langfuse SDK and configure authentication for LLM observability and tracing.
Prerequisites
- Node.js 18+ or Python 3.9+
- Package manager (npm, pnpm, or pip)
- Langfuse account (cloud or self-hosted)
- Public and Secret keys from Langfuse dashboard
Instructions
Step 1: Install SDK
# Node.js / TypeScript npm install langfuse # or pnpm add langfuse # Python pip install langfuse
Step 2: Get API Keys
- Go to Langfuse dashboard (https://cloud.langfuse.com or your self-hosted instance)
- Navigate to Settings -> API Keys
- Create new API key pair (Public Key + Secret Key)
- Note your host URL (cloud:
)https://cloud.langfuse.com
Step 3: Configure Authentication
# Set environment variables export LANGFUSE_PUBLIC_KEY="pk-lf-..." export LANGFUSE_SECRET_KEY="sk-lf-..." export LANGFUSE_HOST="https://cloud.langfuse.com" # or self-hosted URL # Or create .env file cat >> .env << 'EOF' LANGFUSE_PUBLIC_KEY=pk-lf-your-public-key LANGFUSE_SECRET_KEY=sk-lf-your-secret-key LANGFUSE_HOST=https://cloud.langfuse.com EOF
Step 4: Verify Connection
// TypeScript verification import { Langfuse } from "langfuse"; const langfuse = new Langfuse({ publicKey: process.env.LANGFUSE_PUBLIC_KEY, secretKey: process.env.LANGFUSE_SECRET_KEY, baseUrl: process.env.LANGFUSE_HOST, }); // Create a test trace const trace = langfuse.trace({ name: "connection-test", metadata: { test: true }, }); // Flush to ensure data is sent await langfuse.flushAsync(); console.log("Langfuse connection successful! Check dashboard for trace.");
# Python verification from langfuse import Langfuse import os langfuse = Langfuse( public_key=os.environ.get("LANGFUSE_PUBLIC_KEY"), secret_key=os.environ.get("LANGFUSE_SECRET_KEY"), host=os.environ.get("LANGFUSE_HOST"), ) # Create a test trace trace = langfuse.trace(name="connection-test", metadata={"test": True}) # Flush to ensure data is sent langfuse.flush() print("Langfuse connection successful! Check dashboard for trace.")
Output
- Installed SDK package in node_modules or site-packages
- Environment variables or .env file with API credentials
- Successful connection verification trace visible in dashboard
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Invalid API Key | Incorrect or revoked key | Verify keys in Langfuse dashboard |
| Connection Refused | Wrong host URL | Check LANGFUSE_HOST is correct |
| Network Error | Firewall blocking | Ensure outbound HTTPS to Langfuse host |
| Module Not Found | Installation failed | Run or again |
| 401 Unauthorized | Keys don't match project | Ensure keys are from same project |
Examples
TypeScript Initialization with Options
import { Langfuse } from "langfuse"; const langfuse = new Langfuse({ publicKey: process.env.LANGFUSE_PUBLIC_KEY!, secretKey: process.env.LANGFUSE_SECRET_KEY!, baseUrl: process.env.LANGFUSE_HOST, // Optional configuration flushAt: 15, // Flush after 15 events (default: 15) flushInterval: 10000, // Flush every 10 seconds (default: 10000ms) requestTimeout: 10000, // Request timeout (default: 10000ms) enabled: process.env.NODE_ENV === "production", // Disable in dev }); // Ensure clean shutdown process.on("beforeExit", async () => { await langfuse.shutdownAsync(); });
Python Initialization with Options
from langfuse import Langfuse import os langfuse = Langfuse( public_key=os.environ.get("LANGFUSE_PUBLIC_KEY"), secret_key=os.environ.get("LANGFUSE_SECRET_KEY"), host=os.environ.get("LANGFUSE_HOST"), # Optional configuration flush_at=15, # Flush after 15 events flush_interval=10.0, # Flush every 10 seconds enabled=os.environ.get("NODE_ENV") == "production", ) # Register shutdown handler import atexit atexit.register(langfuse.flush)
OpenAI Integration (Automatic Tracing)
import { observeOpenAI } from "langfuse"; import OpenAI from "openai"; const openai = observeOpenAI(new OpenAI(), { clientInitParams: { publicKey: process.env.LANGFUSE_PUBLIC_KEY, secretKey: process.env.LANGFUSE_SECRET_KEY, baseUrl: process.env.LANGFUSE_HOST, }, }); // All OpenAI calls are now automatically traced const response = await openai.chat.completions.create({ model: "gpt-4", messages: [{ role: "user", content: "Hello!" }], });
Resources
Next Steps
After successful auth, proceed to
langfuse-hello-world for your first trace.