```go title="cli_with_config.go" package main import ( "encoding/json" "fmt" "os/exec" ) type ExtractionResult struct { Content string `json:"content"` Format string `json:"format"` Languages []string `json:"languages"` } func extractWithConfig(filePath string, configPath string) (*ExtractionResult, error) { cmd := exec.Command( "kreuzberg", "extract", filePath, "--config", configPath, "--format", "json", ) output, err := cmd.CombinedOutput() if err != nil { return nil, fmt.Errorf("CLI error: %w, output: %s", err, string(output)) } var result ExtractionResult if err := json.Unmarshal(output, &result); err != nil { return nil, fmt.Errorf("JSON parse error: %w", err) } return &result, nil } func main() { configFile := "kreuzberg.toml" document := "document.pdf" fmt.Printf("Extracting %s with config %s\n", document, configFile) result, err := extractWithConfig(document, configFile) if err != nil { panic(err) } fmt.Printf("Content length: %d\n", len(result.Content)) fmt.Printf("Format: %s\n", result.Format) fmt.Printf("Languages: %v\n", result.Languages) } ```