Skip to content

neonctl — Issues

§45 / §64 / §10 — Browser auth blocks non-TTY execution

Date: 2026-06-06 Command: neonctl auth --config-dir <isolated> --no-analytics --color false Observed: The command emitted Awaiting authentication in web browser and an OAuth URL, then did not exit within the subprocess timeout. The output was prose on stderr, not a JSON AUTH_REQUIRED or headless_behavior response. Impact: Agents can hang during auth and cannot parse a structured fallback or token/API-key instruction.

§50 / §10 — init prompts under stdin=DEVNULL

Date: 2026-06-06 Command: neonctl init --api-key <fake> --config-dir <isolated> Observed: The command rendered an interactive editor-selection prompt and timed out under stdin=DEVNULL. Impact: Agents can block unless they know to pass --agent, and the CLI does not fail fast with a structured non-interactive error.

§24 — Invalid auth deletes configured credentials

Date: 2026-06-06 Command: neonctl projects list --output json --api-key <fake> --no-analytics --color false Observed: The CLI printed Authentication failed, deleting credentials... and referenced the default credentials file path. This happened even though the failing credential came from the explicit --api-key option. Impact: A bad per-invocation API key can affect stored user credentials, creating cross-session state contamination and recovery work for agents.

§2 / §1 — JSON mode does not apply to common errors

Date: 2026-06-06 Command: neonctl projects list --output json --api-key <fake> --config-dir <isolated> Observed: stdout was empty and stderr contained prose auth messages; exit code was 1. Impact: Agents requesting JSON still need stderr text parsing for common failure paths.

§60 — Progress output uses terminal control sequences

Date: 2026-06-06 Command: neonctl init --agent cursor --api-key <fake> --config-dir <isolated> Observed: Captured output included spinner frames and ANSI cursor-control sequences while the command remained running. Impact: Agents receive noisy, token-heavy terminal UI instead of structured heartbeats.