{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-17T01:56:13.055Z",
  "lang": "en",
  "slug": "oauthcli",
  "url": "https://tesign.com/en/item/oauthcli/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/oauthcli/",
      "json": "https://tesign.com/item/oauthcli/index.json",
      "markdown": "https://tesign.com/item/oauthcli/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/oauthcli/",
      "json": "https://tesign.com/en/item/oauthcli/index.json",
      "markdown": "https://tesign.com/en/item/oauthcli/index.md"
    }
  },
  "name": "oauthcli",
  "use_label": "OAuth server audit for developers",
  "one_liner": "Checks what an OAuth or OIDC server supports and audits it against RFCs.",
  "text": {
    "why": "Wiring up OAuth means finding where docs and real behaviour differ. oauthcli reads what a server publishes, gives a verdict per RFC, gets and decodes tokens with every grant, and runs browser and device flows and dynamic client registration as single commands. Every command has --format json and exit codes carry the verdict, so agents use the same tool as people. Installed with Go; the spec texts ship in the binary, and no license is stated in the README.",
    "take": "It turns 'does our server follow the standard?' into a verdict per RFC section.",
    "build": [
      "A CI step that audits the authorization server before release",
      "An RFC support report for evaluating a new identity provider",
      "An agent skill that obtains tokens and exercises an API"
    ],
    "who": [
      {
        "role": "Backend developer",
        "situation": "hunting the mismatch in an OAuth integration"
      },
      {
        "role": "Security engineer",
        "situation": "auditing the company IdP against the RFCs"
      },
      {
        "role": "Agent builder",
        "situation": "letting an agent obtain tokens"
      }
    ],
    "start": [
      {
        "command": true,
        "text": "go install github.com/Southclaws/oauthcli@latest"
      },
      {
        "command": true,
        "text": "oauthcli discover https://accounts.google.com     # what does this issuer publish and support?"
      },
      {
        "command": true,
        "text": "oauthcli check https://accounts.google.com        # is it conformant? one verdict per RFC"
      },
      {
        "command": false,
        "text": "Needs the Go toolchain · the binary is called oauthcli"
      }
    ],
    "caveat": [
      "No license stated in the README",
      "Installed through the Go toolchain; no binary downloads in the README",
      "Checks that create state, such as --register, are opt-in"
    ]
  },
  "cta": {
    "type": "install",
    "label": "INSTALL",
    "url": "https://github.com/Southclaws/oauthcli"
  },
  "ready": "install",
  "categories": [
    "security",
    "dev-tools"
  ],
  "categories_confirmed": true,
  "tags": [
    "oauth",
    "oidc",
    "cli",
    "security"
  ],
  "platform": [
    "windows",
    "macos",
    "linux",
    "cli"
  ],
  "license": {
    "spdx": null,
    "scope": "unknown",
    "scope_text": "Unconfirmed — check before use.",
    "url": "https://github.com/southclaws/oauthcli?tab=License-1-ov-file",
    "note": null,
    "open_source": null
  },
  "language": "Go",
  "source_urls": {
    "canonical": "https://github.com/Southclaws/oauthcli",
    "github": "https://github.com/southclaws/oauthcli",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "showhn",
        "url": "https://github.com/Southclaws/oauthcli",
        "posted_at": "2026-09-13T11:53:35.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49682969"
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-16T21:00:00.000Z",
    "stars": 1,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T19:34:32.202Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": null,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": 5,
    "hn_points_observed_at": "2026-09-16T05:47:41.109Z",
    "store": null,
    "method": "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-13T12:43:49.000Z",
    "owner_type": "User",
    "open_issues": 0,
    "contributors": 1,
    "releases_count": 1,
    "latest_release": {
      "tag": "v1.0.0",
      "published_at": "2026-09-12T21:02:05.000Z",
      "prerelease": false
    },
    "checked_at": "2026-09-15T19:34:32.202Z",
    "core_checked_at": "2026-09-15T19:34:32.202Z"
  },
  "signals": [
    {
      "kind": "new",
      "label": "NEW",
      "value": "1h OLD WHEN SEEN"
    }
  ],
  "images": {
    "og": "https://tesign.com/img/og/oauthcli.en.png",
    "cover": "https://tesign.com/img/oauthcli-b34b7298a3.png",
    "cover_width": 1200,
    "cover_height": 600,
    "gallery": [
      "https://tesign.com/img/oauthcli-b34b7298a3.png"
    ],
    "alt": "GitHub social card for Southclaws/oauthcli: name and 'A command line toolkit for…' description left, avatar right.",
    "tier": 4
  },
  "dates": {
    "first_seen_at": "2026-09-13T12:59:26.645Z",
    "source_created_at": "2026-09-13T11:53:35.000Z",
    "discovery_hours": 1.0976791666666668,
    "launch_signal_at": "2026-09-13T11:53:35.000Z",
    "kept_at": "2026-09-14T02:41:59.171Z",
    "first_published_at": null,
    "updated_at": "2026-09-15T04:36:56.918Z",
    "ingestion_mode": "live"
  },
  "notes": [
    "This file was produced by the same build, from the same data, as the tesign.com item page. The text is editorial; the numbers are stored observations.",
    "null in the JSON means not observed — never zero. The Markdown writes [unconfirmed] for it.",
    "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours.",
    "A summary, not legal advice."
  ]
}
