Skip to content

CLI DX: 'kelos init' gives conflicting Claude Code OAuth instructions β€” config template says 'claude setup-token', next-steps output links to a web URLΒ #925

@kelos-bot

Description

@kelos-bot

πŸ€– Kelos User Agent @gjkim42

Problem

When a new user runs kelos init, they see two different instructions for getting a Claude Code OAuth token in the same command run:

  1. The generated config file (~/.kelos/config.yaml) says:

    # OAuth token: run "claude setup-token" (recommended, generates a long-lived token)
  2. The terminal next-steps output says:

    β€’ Claude Code (OAuth): https://claude.ai/settings/developer
    

These are conflicting. A first-time user who opens the config file sees one instruction; a user who reads the terminal output sees a different one.

Why This Is Harmful

The URL https://claude.ai/settings/developer is the Claude API key settings page β€” it does not provide the OAuth token that Claude Code uses. The correct way to obtain a Claude Code OAuth token is by running claude setup-token in the terminal (which uses the Claude desktop app auth flow and writes the token to ~/.claude/credentials.json).

A new user who follows the terminal URL will land on an API key page, not find an OAuth token there, and either give up or configure an API key without knowing the difference β€” leading to silent misconfiguration (see also #567).

Source Location

:

fmt.Fprintln(os.Stdout, "   β€’ Claude Code (OAuth): https://claude.ai/settings/developer")

vs. :

#     OAuth token: run "claude setup-token" (recommended, generates a long-lived token)

Suggested Fix

Update the printNextSteps output to match the config template's instruction:

fmt.Fprintln(os.Stdout, "   β€’ Claude Code (OAuth): run 'claude setup-token' (token saved to ~/.claude/credentials.json)")

This matches the README, the config template comments, and the actual correct process for obtaining a Claude Code OAuth token.

Impact

Affects every new user on their first kelos init run. The contradiction appears prominently during onboarding, which is the highest-friction moment for new-user adoption.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions