MoonshotAI / MoonshotAI/kimi-cli
Broken Workflow
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 11.4k
- Forks
- 1.3k
- Avg merge
- 9h 47m
- Merged PRs (30d)
- 2
Description
What version of Kimi Code CLI is running?
0.11.0
Which open platform/subscription were you using?
Kimi Code
Which model were you using?
2.6
What platform is your computer?
MacOS
What issue are you seeing?
Regression: API key authentication silently removed from "Kimi For Coding" tier in recent CLI upgrade
CLI Version: (your version, e.g. 1.x — run kimi --version)
OS: macOS Sequoia
Previous working version: (the version before upgrade, e.g. 0.41 or earlier)
What I had before the upgrade
A working kimi-cli workflow using the Kimi For Coding tier with an API key generated from the Kimi Code console. Setup was:
kimi /setup- Select "Kimi For Coding"
- Paste API key
- Use CLI with subscription credits
This worked. It was my daily workflow.
What broke after the upgrade
After upgrading kimi-cli, the /setup flow for "Kimi For Coding" no longer accepts an API key. It forces OAuth/browser login instead. There is no upgrade path, no deprecation notice, and no documented migration.
- My existing API key (still valid, still showing in the Kimi Code console) is now ignored by the CLI
- The CLI setup flow offers no input field for the key when "Kimi For Coding" is selected
- I cannot authenticate my existing, paid workflow without switching to OAuth
The incoherent part
The Kimi Code console still lets me generate new API keys. I can create a fresh key right now. But the CLI setup flow for the same tier refuses to accept it. This is broken UX: either the keys should work, or the console should not let me create them.
Why this matters
- Broken workflow: I had a working, automated setup. A routine upgrade destroyed it.
- No migration path: There was no warning, no
--migrateflag, no "your API key will stop working" notice in the release notes. - OAuth is not a replacement: OAuth requires browser interaction. API keys work in headless environments, CI, containers, and shared dev machines. Forcing OAuth breaks all of these.
- Wasted credentials: Keys generated in the console that cannot be used anywhere are confusing and misleading.
Expected behavior
Option A (preferred): Restore API key input for the "Kimi For Coding" tier in /setup, as it existed before. OAuth can be an additional option, not a replacement.
Option B: If API keys are intentionally deprecated for this tier, then:
- The Kimi Code console should stop generating API keys for tiers where they are unsupported
- The CLI should print a clear deprecation/migration message when an old key is detected
- There should be a documented upgrade path from key-based auth to OAuth
Current workaround
None that preserves the original workflow. I am forced to either:
- Use OAuth and lose headless/automated capability, or
- Switch to the "Moonshot AI Open Platform" provider and use the OpenAI-compatible endpoint directly, bypassing the Kimi Code CLI integration entirely
Neither is acceptable as a "fix" for a regression introduced by your own upgrade.
References
- #757 — Feature request for OAuth (which was implemented, but apparently at the expense of existing API key support)
- #87, #53, #730 — Previous authentication issues with "Kimi For Coding" tier
What steps can reproduce the bug?
Run upgrade on a MacOS computer that was using API Key.
What is the expected behavior?
No response
Additional information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the /setup flow in the CLI and reproduce provider selection for the "Kimi For Coding" tier using the issue's API-key and OAuth scenarios. Compare the current flow with the previously working behavior and the authentication issues referenced in #757, #87, #53, and #730; done means API-key input is restored or a clear deprecation and migration path is provided.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication, cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100