{
  "slug": "otpauth-uri",
  "name": "gizza-ai/otpauth-uri",
  "version": "0.1.0",
  "title": "otpauth:// URI Generator — authenticator setup QR — gizza.ai",
  "description": "Build an otpauth:// provisioning URI (TOTP/HOTP) from an issuer, account, and base32 secret to set up any authenticator app. The secret stays in your browser.",
  "tags": [
    "otpauth",
    "totp",
    "hotp",
    "2fa",
    "authenticator",
    "qr code",
    "otp",
    "two-factor",
    "provisioning uri"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/otpauth-uri/",
    "markdown": "https://gizza.ai/tools/otpauth-uri/index.md",
    "descriptor": "https://gizza.ai/tools/otpauth-uri/tool.json",
    "deep_link_example": "https://gizza.ai/tools/otpauth-uri/?type=totp&issuer=GitHub&account=alice%40example.com&secret=JBSWY3DPEHPK3PXP&digits=6&period=30&algorithm=sha1&counter=0"
  },
  "cli": "gizza tool otpauth-uri 'type=totp'",
  "tool": {
    "description": "Build a standard otpauth:// provisioning URI (the Key Uri Format used by authenticator apps) from an issuer, account name, and base32 secret. Supports totp (default) and hotp, with configurable digits, period, algorithm, and HOTP counter. Returns the otpauth:// URI string. Runs locally — the secret never leaves the device.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "account": {
          "type": "string"
        },
        "algorithm": {
          "default": "sha1",
          "enum": [
            "sha1",
            "sha256",
            "sha512"
          ],
          "type": "string"
        },
        "counter": {
          "minimum": 0,
          "type": "integer"
        },
        "digits": {
          "maximum": 8,
          "minimum": 6,
          "type": "integer"
        },
        "issuer": {
          "type": "string"
        },
        "period": {
          "maximum": 600,
          "minimum": 1,
          "type": "integer"
        },
        "secret": {
          "type": "string"
        },
        "type": {
          "default": "totp",
          "enum": [
            "totp",
            "hotp"
          ],
          "type": "string"
        }
      },
      "required": [
        "account",
        "secret"
      ],
      "type": "object"
    }
  }
}