# OpenCode's 1.4% Is Console Keys. The CLI Is Not the Breach.

> OpenCode said on 17 October that a breach the night before affected 1.4 percent of Console users who had linked external providers. The post, edited at 18:08 UTC, calls it an ongoing distillation attack and names Anthropic, OpenAI, and Google as remediation partners. A notice on Hacker News says a legacy system being decommissioned may have exposed workspace keys.

Source: https://hackerlogs.com/blog/opencode-console-key-clock
Published: 2026-10-17

## Key takeaways

- The primary is OpenCode's post, first at 17:56 UTC on 17 October and edited at 18:08 UTC. It says 1.4% of Console users, a subset who had external providers linked.
- The customer notice, on Hacker News at 18:02 UTC, says a legacy system being decommissioned may have exposed workspace keys. OpenAI and Anthropic are the examples.
- The post calls it a large scale distillation attack and says the incident is ongoing. It names three labs as remediation partners. It gives no key count and no dollar total.
- There is no CVE and no release that expires a provider key. The status page's 17 October titles are slow responses and request-log gaps.
- Revoke the key in the provider dashboard. Replacing the copy inside Console leaves the old key billable until the provider kills it.

[OpenCode's edited post](https://x.com/opencode/status/2111519637049319818), timestamped 18:08 UTC on 17 October 2026, says a security breach the night before affected 1.4% of OpenCode Console users. The affected group was a subset of users who had external providers linked. Anyone who did not get the email was not impacted, the post says. The incident is ongoing, so the post does not share more, and OpenCode says it is working with Anthropic, OpenAI, and Google to remediate.

The first version went up at 17:56:19 UTC as [status 2111516673953935833](https://x.com/opencode/status/2111516673953935833). It already had the 1.4%, the morning email, the distillation phrase, the ongoing incident, and the three labs. The edit, a separate status id, landed at 18:08:06 UTC, eleven minutes and forty-seven seconds later. The edit adds that no email means you were not impacted, and that the affected set was users who had external providers linked.

Hacker News item [50133401](https://news.ycombinator.com/item?id=50133401) was posted at 18:01:41 UTC and was on the front page, still pointing at the first status id. US X trends at 22:00 UTC were college football, Macron, and No Kings. The status page did not carry this as a credential incident.

 High because provider keys may still be live and the company says the incident is ongoing. High is not a dollar total. OpenCode has not published a key count, a Console user total, or a sum of charges.

<img src="/opencode-console-key-clock.svg" alt="Three panels for the OpenCode Console key exposure: 1.4 percent of Console users with external providers linked, a notice and a post that do not match the status page, and a revoke that has to happen at the provider." width="1200" height="675" />

## The 1.4 percent is Console.

The denominator in the post is OpenCode Console users, not everyone who runs the coding agent. The affected slice had external providers linked. [Console's provider docs](https://opencode.ai/v2/docs/console/providers/) say owners and admins connect a provider account they already pay for, Console stores that credential, and members use the models without seeing the provider key. The catalog on that page includes Anthropic, OpenAI, and Google. The provider bills the tokens. Console does not charge credits for them.

That storage model is why a workspace key is an identity token with a bill attached. It is also why a green inference bar does not retire the token. The docs tell an admin to rotate by clicking the credential and entering a new one. That replaces what Console will send next. It does not, by itself, expire the previous secret at the provider.

> The post names Console users. The notice names keys saved in a workspace. Neither sentence is a finding about the local agent, a desktop build, or a package install. Treating this as the [September upgrade advisory](/blog/opencode-upgrade-no-cve) sends the patch program at the wrong artifact.

## The notice and the post differ.

At 18:02:54 UTC the Hacker News submitter posted a customer notice under the heading "From OpenCode Team." It says OpenCode identified unauthorized access to a legacy system it was in the process of decommissioning. Third party provider keys, examples OpenAI and Anthropic, saved in the workspace may have been exposed. It asks people to revoke and replace those keys in the provider dashboard, update applications that use them, and review recent usage. It promises a follow-up.

Hold the two texts apart. The notice says "may have been exposed" and gives two providers as examples. The edited post says the breach "impacted" 1.4% of Console users, limits that set to people with external providers linked, and adds Google only as a remediation partner. The post calls the event "a large scale distillation attack" and does not define the phrase, name a model, or say how the keys were used.

> Do not turn replies under the post into a loss figure. OpenCode has not published dollars, a key count, or a Console population, so 1.4% does not convert. Spend that a user reports is a report. It is not the company's total.

## The package clock is empty.

There is no CVE, no GitHub advisory, and no build number for this event. "Last night," in a post timestamped 17:56 UTC on 17 October, is the night of 16 to 17 October. The post does not give a start minute. The public record from first post to the edit that added the scope sentence is under twelve minutes. That is the disclosure clock. It is not a fix clock.

The impact clock is the provider key. It keeps working until the provider revokes it or it expires on its own. OpenCode says remediation with the three labs is in progress and that the incident is ongoing. That sentence is not a confirmation that the keys are already dead.

[status.opencode.ai](https://status.opencode.ai/), read on 17 October, listed these titles for the day: slow responses on Go and on the Console API, and intermittent availability of request logs. The Console API windows include 15:58 to 16:02 UTC and 18:02 to 18:07 UTC. Request logs include 17:36 to 18:11 UTC, which covers the first post. The banner on the page was an upstream free-inference failure. None of those titles is unauthorized access or a key exposure. Do not read the bar chart as the incident record.

## What to do while the incident is open.

1. If you received the email, revoke every provider key it names in that provider's dashboard. Then review usage since the night of 16 October. Update any job that still holds the old key.
2. If you connected a provider in Console and you are not sure the email would have reached you, revoke that key at the provider anyway. OpenCode's "no email" line is their scope claim. The incident is still open, and Console cannot expire a provider secret by shipping a version.
3. Enter a new key in Console only after the old one is dead at the provider. Put a spend cap on the replacement. The docs are explicit that the provider sends the bill.
4. Leave the local CLI alone as a fix for this event. The [August build and the September advisory](/blog/opencode-upgrade-no-cve) are a different bug, on `opencode serve`. Upgrading that path does not revoke a workspace provider key.
5. Wait for the follow-up the notice promised before you brief a board on dollars, on Google keys, or on a distillation method. Those three are not in the primary texts.

## Sources

- [OpenCode on the Console breach, edited post](https://x.com/opencode/status/2111519637049319818) (2026-10-17)
- [OpenCode on the Console breach, first post](https://x.com/opencode/status/2111516673953935833) (2026-10-17)
- [OpenCode Hacked: User credentials leaked](https://news.ycombinator.com/item?id=50133401) (2026-10-17)
- [Console providers](https://opencode.ai/v2/docs/console/providers/)
- [OpenCode status](https://status.opencode.ai/) (2026-10-17)
