{
  "id": "blackfire",
  "name": "Blackfire",
  "homepage": "https://www.blackfire.io",
  "description": "The only tool to offer natively integrated monitoring, advanced determinist and continuous profiling and testing features.",
  "icon": "https://www.blackfire.io/icons/icon-512x512.png",
  "executables": [
    "blackfire"
  ],
  "dotfiles": {
    "paths": [
      "~/.blackfire.ini"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false,
    "secret_paths": [
      {
        "file": "~/.blackfire.ini",
        "match": {
          "prefix": [
            "client-id",
            "client-token"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Blackfire",
    "description": "Profile a command or an HTTP request with the Blackfire CLI. Authentication comes from ~/.blackfire.ini or BLACKFIRE_CLIENT_ID/BLACKFIRE_CLIENT_TOKEN; other subcommands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "run"
        ],
        "label": "Profile a CLI command",
        "description": "Everything after the command is passed to the profiled program unchanged.",
        "source": [
          {
            "id": "cookbook",
            "kind": "manual",
            "url": "https://docs.blackfire.io/profiling-cookbooks/profiling-cli.md",
            "revision": "2026-10-27",
            "evidence": "$ blackfire run php my-script.php\n$ blackfire run php my-script.php --your-script-options and arguments\nuse the `--env=<ENV_UUID>` parameter.\nuse `--env=\"My Environment\"`\n$ blackfire --json run php my-script.php\n$ blackfire --env <env-uuid> run php my-script.php\n"
          }
        ],
        "field": [
          {
            "id": "env",
            "label": "Environment",
            "description": "Environment UUID or name that receives the profile.",
            "type": "string",
            "option": [
              "--env"
            ],
            "value_style": "equals",
            "sources": [
              "cookbook"
            ]
          },
          {
            "id": "json",
            "label": "JSON output",
            "type": "boolean",
            "option": [
              "--json"
            ],
            "sources": [
              "cookbook"
            ]
          },
          {
            "id": "program",
            "label": "Program and arguments",
            "description": "For example php my-script.php.",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "cookbook"
            ]
          }
        ],
        "task": [
          {
            "id": "profile",
            "label": "Profile a script",
            "fields": [
              "env",
              "json",
              "program"
            ],
            "required": [
              "program"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "program",
              "env",
              "json"
            ]
          }
        ]
      },
      {
        "path": [
          "curl"
        ],
        "label": "Profile an HTTP request",
        "description": "Runs curl with Blackfire headers; other curl options are accepted by the tool but not modelled here.",
        "source": [
          {
            "id": "cookbook",
            "kind": "manual",
            "url": "https://docs.blackfire.io/profiling-cookbooks/profiling-http-via-cli.md",
            "revision": "2026-10-27",
            "evidence": "blackfire curl http://example.com/\nuse the `--env=<ENV_UUID>` parameter.\nuse `--env=\"My Environment\"`\nblackfire --json curl http://example.com/\n"
          }
        ],
        "field": [
          {
            "id": "env",
            "label": "Environment",
            "type": "string",
            "option": [
              "--env"
            ],
            "value_style": "equals",
            "sources": [
              "cookbook"
            ]
          },
          {
            "id": "json",
            "label": "JSON output",
            "type": "boolean",
            "option": [
              "--json"
            ],
            "sources": [
              "cookbook"
            ]
          },
          {
            "id": "url",
            "label": "URL",
            "type": "url",
            "position": 0,
            "sources": [
              "cookbook"
            ]
          }
        ],
        "task": [
          {
            "id": "profile",
            "label": "Profile a URL",
            "fields": [
              "env",
              "json",
              "url"
            ],
            "required": [
              "url"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "url",
              "env",
              "json"
            ]
          }
        ]
      }
    ]
  }
}
