Skip to content
Projects

int128/oauth2cli has 65 GitHub stars and 20 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 06:48 UTC. Last push 2026-11-13.

How these counts are measured

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

Go package of OAuth 2.0 authorization for command line tools, which allows simple authorization flow for better UX

Developer Tools

README.md

Original

oauth2cli go GoDoc

This is a Go package for OAuth 2.0 authorization in a command line interface (CLI) tool. You can create a CLI tool with the simple authorization flow for better UX.

Take a look at the screencast of the example application.

Purpose

When we create a CLI tool which accesses an API with OAuth, it needs the complicated flow such as copy/paste of a URL and code, as follows:

  1. User runs the command.
  2. Command shows the URL for authorization.
  3. User opens the browser, logs in to the server and approves the authorization.
  4. Server shows an authorization code.
  5. User copies the code and pastes into the command.
  6. Command accesses the API with the token.

You can make it simple by using oauth2cli as follows:

  1. User runs the command.
  2. Command opens the browser.
  3. User logs in to the server and approves the authorization.
  4. Command gets a token and access the API with the token.

How it works

oauth2cli starts the local server and initiates the flow of OAuth 2.0 Authorization Code Grant.

Testing OAuth 2.0 Auth Code Flow using oauth2cli

sequenceDiagram
    autonumber
    participant RO as Resource Owner (User)
    participant CLI as oauth2cli
    participant UA as User Agent (Browser)
    participant Client as Local Server <br/> (client)
    participant AS as Auth Server

    Note over Client,RO: (Prereq) Client registered with Authorization Server and has client_id

    RO->>CLI: Command
    CLI->>UA: Open
    UA->>AS: Authorization Request
    AS-->>UA: Login / Consent
    RO->>UA: AuthN/AuthZ
    UA->>AS: AuthN/AuthZ
    AS-->>UA: AuthZ Response (redirect)
    UA->>Client: Follow redirect
    Client-->>UA: Success Response
    UA-->>CLI: Close
    CLI->>AS: Token Request
    AS->>CLI: Token Response
    CLI-->>RO: Exit

Contributions

This is an open source software licensed under Apache 2.0. Feel free to open issues and pull requests.