Back to Mlflow

MLflow Claude Code Integration

mlflow/claude_code/README.md

3.12.02.7 KB
Original Source

MLflow Claude Code Integration

This module provides automatic tracing integration between Claude Code and MLflow.

Module Structure

  • config.py - Configuration management (settings files, environment variables)
  • hooks.py - Claude Code hook setup and management
  • cli.py - MLflow CLI commands (mlflow autolog claude)
  • tracing.py - Core tracing logic and processors
  • hooks/ - Hook implementation handlers

Installation

bash
pip install mlflow

Usage

Set up Claude Code tracing in any project directory:

bash
# Set up tracing in current directory
mlflow autolog claude

# Set up tracing in specific directory
mlflow autolog claude -d ~/my-project

# Set up with custom tracking URI
mlflow autolog claude -u file://./custom-mlruns
mlflow autolog claude -u sqlite:///mlflow.db

# Set up with Databricks
mlflow autolog claude -u databricks -e 123456789

# Check status
mlflow autolog claude --status

# Disable tracing
mlflow autolog claude --disable

How it Works

  1. Setup: The mlflow autolog claude command configures Claude Code hooks in a .claude/settings.json file
  2. Automatic Tracing: When you use the claude command in the configured directory, your conversations are automatically traced to MLflow
  3. View Traces: Use mlflow server to view your conversation traces

Configuration

The setup creates two types of configuration:

Claude Code Hooks

  • PostToolUse: Captures tool usage during conversations
  • Stop: Processes complete conversations into MLflow traces

Environment Variables

  • MLFLOW_CLAUDE_TRACING_ENABLED=true: Enables tracing
  • MLFLOW_TRACKING_URI: Where to store traces (defaults to local .claude/mlflow/runs)
  • MLFLOW_EXPERIMENT_ID or MLFLOW_EXPERIMENT_NAME: Which experiment to use

Examples

Basic Local Setup

bash
mlflow autolog claude
cd .
claude "help me write a function"
mlflow server --backend-store-uri sqlite:///mlflow.db

Databricks Integration

bash
mlflow autolog claude -u databricks -e 123456789
claude "analyze this data"
# View traces in Databricks

Custom Project Setup

bash
mlflow autolog claude -d ~/my-ai-project -u sqlite:///mlflow.db -n "My AI Project"
cd ~/my-ai-project
claude "refactor this code"
mlflow server --backend-store-uri sqlite:///mlflow.db

Troubleshooting

Check Status

bash
mlflow autolog claude --status

Disable Tracing

bash
mlflow autolog claude --disable

View Raw Configuration

The configuration is stored in .claude/settings.json:

bash
cat .claude/settings.json

Requirements

  • Python 3.10+ (required by MLflow)
  • MLflow installed (pip install mlflow)
  • Claude Code CLI installed