{ "name": "langfuse-observability", "description": "The Langfuse x Claude Code Observability Plugin", "version": "1.2.0", "author": { "name": "Langfuse" }, "repository": "https://github.com/langfuse/Claude-Observability-Plugin", "license": "MIT", "homepage": "https://langfuse.com/integrations/other/claude-code", "userConfig": { "LANGFUSE_SECRET_KEY": { "type": "string", "title": "Langfuse Secret Key", "description": "Your Langfuse project secret key (sk-lf-...)", "sensitive": true }, "LANGFUSE_PUBLIC_KEY": { "type": "string", "title": "Langfuse Public Key", "description": "Your Langfuse project public key (pk-lf-...)" }, "LANGFUSE_BASE_URL": { "type": "string", "title": "Langfuse Base URL", "description": "Langfuse host. Use https://us.cloud.langfuse.com for US, https://cloud.langfuse.com for EU, or your self-hosted URL.", "default": "https://cloud.langfuse.com" }, "LANGFUSE_USER_ID": { "type": "string", "title": "User ID", "description": "Optional user identifier attached to every trace (shown as the user in Langfuse). Leave empty to omit." }, "CC_LANGFUSE_DEBUG": { "type": "boolean", "title": "Debug logging", "description": "Write verbose logs to ~/.claude/state/langfuse_hook.log", "default": false }, "CC_LANGFUSE_MAX_CHARS": { "type": "number", "title": "Max characters per field", "description": "Truncate captured inputs/outputs to this many characters", "default": 20000 }, "CC_LANGFUSE_SKILL_TAGS": { "type": "boolean", "title": "Tag traces with skills", "description": "Add a skill: tag to traces for every skill invoked in the turn", "default": true }, "CC_LANGFUSE_CAPTURE_SKILL_CONTENT": { "type": "boolean", "title": "Capture skill instructions", "description": "Include the injected skill instruction text in the Skill tool span output", "default": false }, "CC_LANGFUSE_CAPTURE_IMAGES": { "type": "boolean", "title": "Capture images", "description": "Upload images to Langfuse and show them in the trace. This includes pasted images and screenshots from tool results. Your Langfuse deployment must support media upload. Set to false to show short text markers instead.", "default": true }, "CC_LANGFUSE_STATE_DIR": { "type": "string", "title": "State directory", "description": "Optional. Absolute directory for the hook's state, lock and log files (default ~/.claude/state). Set a distinct value per CLAUDE_CONFIG_DIR installation to keep their state separate. Leave empty for the default." }, "CC_LANGFUSE_TRACE_SEED": { "type": "string", "title": "Trace ID seed", "description": "Optional. Derive deterministic trace ids as Langfuse.create_trace_id(seed=f\"{seed}:{turn_number}\") so external systems can precompute them. Use a unique seed per session (e.g. the --session-id UUID). Leave empty for auto-generated ids." } } }