Claude Code plugin · Chrome extension
When you send a prompt, Forecast shows how long turns like it usually take you, as a range from your own past turns. A small clock runs while Claude works, and you get a storm warning when Claude has a major outage.
Illustration. The shaded range is where half of your similar past turns finished. The line is the turn in progress. If it goes past the range, the status line says "running long".
☊☋ are old astronomers' symbols for the Dragon's Head and Tail. Every Forecast line starts with them.
What you see
Shown when you send a prompt. On newer Claude Code versions, the status line also runs a live clock and clears when the turn ends.
A small bar just above the message box: how long the reply usually takes, how long it usually is, and a running clock.
How it works
Nobody can say exactly how long a turn will take: the same request can take 20 seconds one time and 2 minutes the next. So Forecast never guesses one number. It looks at your past turns that were like this one and shows the range the middle half of them fell in. "Forecast 40s–3m · half of your similar turns (57)" means half of your 57 similar turns took between 40 seconds and 3 minutes. If you prefer, switch to a wider range that holds about 8 in 10.
"Similar" means the same prompt size, conversation size and effort level, widening to broader groups until there are at least 8 turns to go on. Only your most recent 300 good turns are used.
| Your good turns | What it shows |
|---|---|
| 0–9 | "RainDragon Forecast is learning your pace. Ranges start after 10 turns." (once per session) |
| 10–29 | a wider range (8 in 10 of your similar turns), marked "still learning" |
| 30+ | the normal range (half of your similar turns), and one "Forecast has your pace" message |
/forecast:stats (or the extension's options page) shows how often your turns really finished inside the range, your typical turn and your longest.The browser extension has less to go on than the plugin: it reads the page, not exact turn boundaries, and doesn't see the effort level.
Install
Pick the one that matches how you use Claude. You can have both.
Takes about two minutes. Forecast isn't in the Chrome Web Store yet, so you add it by hand. Here's how.
chrome://extensions and press Enter.raindragon-forecast-extension from step 1. If you see a folder with the same name inside it, choose the inner one: it is the one with manifest.json in it.For the first 10 replies it says it is learning your pace. That's expected: it learns from you. To remove Forecast, open chrome://extensions and click Remove under RainDragon Forecast.
Needs Python 3, which most Mac and Linux computers already have.
Copy these two lines into your terminal:
That's it. Your next prompt starts the learning. Later, type /forecast:stats in Claude Code to see how well it's doing.
Had RainDragon ETA? Run claude plugin uninstall raindragon-eta@raindragon first. Your history comes with you automatically.
To remove Forecast: claude plugin uninstall forecast@raindragon.
Plugin settings: /plugin configure forecast@raindragon (on/off, range width, show actual time, status checks, mark). export RAINDRAGON_FORECAST_OFF=1 also turns it off. For a bug report, /forecast:doctor prints the version, settings and counts (no prompts, file names or session ids).
Each release has a SHA256SUMS file. In the folder with the zips:
Every line must say OK. The zips are reproducible: python3 release.py on the tagged commit builds the same bytes.
After uninstalling the plugin, delete ~/.claude/plugins/data/forecast* and ~/.raindragon-forecast. Removing the extension in Chrome deletes its history with it.
The same hook runs in the Codex CLI and Gemini CLI, each with its own separate history. These are newer and not yet checked live; see INSTALL_CLI.md and PROVIDERS.md.
Privacy