Skip to content

Changelog

Every released version of Agent Rewake, newest first, as written in the project'sCHANGELOG.md. Only versions you can install are listed here. To update, follow the two steps in the docs.

0.6.3

Changed

  • Installing for Gemini CLI asks nothing more after Rewake's own question, and trusts no folder. Gemini CLI asked to trust the folder you ran install from (answering yes trusted it for Gemini; from your home folder, all of it), then showed its own warning about hooks. Rewake now links its extension with Gemini's --consent once you've said yes to Rewake's question, which says it adds hooks Gemini runs by itself, and without trusting any folder; Gemini's output shows only if the link fails. install --only gemini-cli --yes now also works without a terminal.
  • **Shorter results after install:** each place says its next step in a line or two. Zed's is: quit Zed and open it again, then start a thread with one of your agents; agent-rewake doctor shows when Rewake is working.
  • **install no longer asks about error reports.** They stay off unless you turn them on with agent-rewake errors on (and off again with agent-rewake errors off); the docs' *Error reports* section says what a report holds. A choice you made before is kept.

0.6.2

Changed

  • A new intro film on the website (69 s). The screenshots of people asking for auto-resume can now be read: each comes in large before it joins the grid. The film shows every place Rewake works with (Claude Code, Codex, Gemini CLI, GitHub Copilot, Cursor, Grok Build, Antigravity, Qwen Code, OpenCode, Zed, JetBrains, Devin Desktop, goose, Kimi, Mistral Vibe, Cline, and more), the install as the one command it is, and the site's address, rewake.js.org. It is encoded sharper, so text in the footage is clearer.

0.6.1

Changed

  • The hero heading wrapped to three lines instead of two ("Hit a limit? Rewake picks the thread back up."). Shortened to "Hit a limit? Rewake picks it back up."
  • The website moves to rewake.js.org. Links to the old address, codizelabs.github.io/agent-rewake/, including the one in the "may sleep" notice of earlier versions, are forwarded to the same page on the new one.

0.6.0

Added

  • Codex warns you before a usage limit: the same warnings as in Claude Code (a message when a usage window passes 80% used and again at 95%, and when your pace over the last hour would reach the limit within about 45 minutes and before the window resets) now come in Codex, through the Codex plugin's existing prompt hook (no new hook, so Codex doesn't ask you to trust anything again). They come when you send your next prompt, from the figures Codex stored after its previous reply: one turn late by design, as of Codex's last reply, and not before your first prompt in a thread. Codex shows it to you as a warning; it is never sent to the model. Each warning shows once per window for your Codex account, across threads and restarts; usage-warnings off turns it off, and Rewake's own rewake command never triggers one. It is not yet seen in the Codex desktop app or the VS Code extension, and it is unknown whether codex exec shows it. The other agents are not covered.

Fixed

  • A landing-page illustration's "Input Requested" dialog was cut off mid-field, with its Submit/Decline/Cancel buttons never shown. Every item in a Zed-thread illustration (src/components/scenes/*.astro) could be shrunk by the flexbox layout to fit the window; the dialog's own overflow: hidden then silently clipped the bottom of whichever one got compressed, instead of the intended behaviour (older content fades out at the top). Now nothing in the thread shrinks below its own size.
  • Qwen Code: a plan quota that ran out and will reset on its own was never resumed. Qwen's own fail-fast rethrow for this exact case drops the original error's status, so its StopFailure hook reports it as billing_error instead of rate_limit — confirmed against a real Qwen Code build, not assumed. Rewake now reads the message text even when the hook calls it billing, and only treats it as money (never resumed) when the text doesn't also name a quota with a reset time.

0.5.0

Added

  • Claude Code warns you before a usage limit: the plugin shows a short message when a usage window (the 5-hour or the 7-day one) passes 80% used and again at 95% (one message if it jumps past both), and when, at your pace over the last hour, you would reach the limit within about 45 minutes and before the window resets. The pace is shown as a range in 5-minute steps ("At this pace you reach the 5-hour limit in about 20 to 40 minutes, before it resets at 3:00 AM today"), and nothing is shown while the pace is unknown. It uses only the usage figures Claude Code already gives the plugin, as of its last reply: no network, no sign-in. Each warning shows once per window for your Claude Code account, also across restarts and other sessions. It only tells you: the 80% message mentions /compact (which uses some quota itself), the 95% one says it is a good moment to wrap up; it never types or compacts anything. Spending caps are left out, and so are -p and SDK runs with nobody at the prompt. The new usage-warnings setting (on by default, or off) turns it off: agent-rewake settings usage-warnings off. Codex and the other agents are not covered.
  • Rewake tells you when the project changed while a continue waited (outside Zed): when the session's folder is a git folder, Rewake notes its latest commit and a hash of the git status --porcelain --untracked-files=no summary (names and status of tracked files, never contents; only the commit id and the hash are kept) a moment after it plans the continue, and checks again just before it sends. If either differs, the new workspace-changed setting decides: tell (default) tells you and sends the message as it was; note also adds one fixed line to the message asking the agent to re-read files before editing; hold sends nothing, marks the continue as needing you and says what changed and how to continue; off doesn't check. New untracked files (a .DS_Store, build output, logs) don't count. It uses local git commands only, within about a second when planning and two seconds when sending, and does nothing when git or a git folder is missing. agent-rewake schedules --explain <id> mentions the check. Zed threads are not checked.
  • **Don't wait for the reset: agent-rewake continue --now [<id>]:** for a resume Rewake planned outside Zed, when you upgraded your plan or the limit lifted early. With an id (the eight characters in square brackets in agent-rewake schedules) it continues that one; without, in a terminal it lists the planned resumes to pick one, or names the only one; without a terminal it needs the id and --yes. It says which agent and folder, and what it will send, and asks first (the default is No). It then does what the timer would do at the reset, with the same checks, and it sends once. If you typed in the session after the limit, if it is open or has changed, if the agent continued by itself, if the limit is still on, or if the message can't reach the agent (signed out, session deleted or archived, folder gone), nothing is sent and the resume stays planned for its time, and Rewake says which; any other error ends it as failed. The window stays busy until the agent finishes, and Ctrl+C stops it and cancels the resume. A Cursor chat can't be continued this way. agent-rewake schedules --explain <id> names the command.

Changed

  • Updating in Zed: Reload Agent instead of quitting Zed. After install, choose Reload Agent in the Agent Panel's menu (Zed 1.18 or newer) in each open thread; Zed then starts a fresh copy of Rewake and reopens the thread's session. Quitting Zed completely still always works, and the README, the docs and doctor say both. This comes from reading Zed's source (the entry drops the agent's connection and rebuilds the thread from its session); it has not been tried with Rewake by hand yet.
  • The hero's recorded terminal responds more to you: the chapter buttons (Hits the limit, Rewake asks, Continues after the reset) now show which one the recording is on; clicking anywhere on the terminal window itself, not only the small play button, pauses or resumes it; and on a phone, it now shows up right after the pitch instead of after the whole install block. Two CTAs that said "Get started" now say "See the install guide".
  • The hero says less, so the headline, the pitch and the install command fit on a phone screen without scrolling: the heading is shorter ("Hit a limit? Rewake picks the thread back up."), the opening paragraph is one sentence instead of three, and two paragraphs that repeated what the Install and Agents sections already say in full are gone from the hero.
  • The "Works with" tile grid named only 8 of the 11 places Rewake installs to: Cursor's own agent, JetBrains IDEs and Devin Desktop were missing (they were already correct in the detailed "What works where" table right below). Added their tiles, logos and sub-text, and corrected "six coding agents in a terminal" (stale; it's seven) in the install section's small print.

Fixed

  • The privacy page and the landing page no longer say Rewake's only network use is fetching an agent's program: error reports exist (off unless you turn them on), and both pages now say so and point to what an error report holds.

0.4.0

Added

  • Keeping the computer awake while a resume is due now also works on Linux and Windows: on Linux with systemd Rewake uses systemd-inhibit, on Windows a hidden PowerShell holding the system awake, both tied to Rewake's process so they end with it, and "while plugged in" is honoured on both. Only macOS has been tried by hand.
  • The Claude Code plugin keeps the computer awake on Linux and Windows too: while a continue is due, it holds with the same commands (systemd-inhibit on Linux when it is installed, a hidden PowerShell on Windows), tied to Claude Code so the hold ends with it, and follows the same setting (while plugged in, always, never). The status line then says "keeping this computer awake" instead of "this Mac". Linux and Windows are covered only by automated tests, not yet tried by hand.
  • **agent-rewake doctor checks that the hooks and timers can still run:** it says when Rewake's helper file or its Node.js finder is missing, when no Node.js 22 or newer can be found, and, as a note, when an agent is set up but Rewake has never seen it run, each with the command that fixes it.
  • Timers for resumes that no longer exist are removed: any Rewake command now clears leftover timers of resumes that were cancelled, finished or deleted.
  • A Claude Code session you closed at its usage limit can now be continued (macOS, Linux; preview): if you close Claude Code (or it quits, or the computer restarts) before Rewake's question was answered, agent-rewake continue lists the session, and at the reset a system timer continues that same session in the background with Claude Code's own claude --resume <session id> -p, with your message on standard input. It never skips permission prompts (a step that would need your approval is denied), never uses --continue, and runs in the session's folder with the settings it had (CLAUDE_CONFIG_DIR, a gateway address; never an API key). It doesn't continue if you typed in the session after the limit, if the session is open again, or if its transcript changed after the limit: in that last case a notification says so. This was tried only against a stand-in claude program, not yet against a real usage limit; the docs say so.
  • **agent-rewake schedules --explain <id> says what will happen:** for one planned resume or message, in plain words, what Rewake will do at its time and what could stop it (you typing in the session, the agent continuing by itself, the session being open, a later usage limit, the computer being off). It sends nothing and changes nothing. The id is the eight characters in square brackets in agent-rewake schedules.
  • **Rewake's settings outside Zed: agent-rewake settings:** lists every setting with its value and what it does. agent-rewake settings change lets you pick one and its new value by number, agent-rewake settings <name> <value> changes one (for example agent-rewake settings clock 24h) and agent-rewake settings --reset <name> puts it back. They are the same settings as Zed's Rewake → Settings…, checked the same way: new-threads, auto-when-prompts-skipped, clock, keep-awake (only where Rewake can keep the computer awake) and resume-prompt. Shell completion knows the names.
  • Cancel one planned resume outside Zed: with several planned, agent-rewake continue --cancel in a terminal lists them to pick one, or all, and agent-rewake continue --cancel <id> cancels one by the eight characters in square brackets in agent-rewake schedules, Codex resumes too. A resume that is already running isn't cancelled, and Rewake says so.
  • **agent-rewake schedules marks the resumes outside Zed:** each is marked [outside Zed], named after its agent, and called what that agent calls it (a session, a Codex thread, a Cursor chat), and the list ends with how to cancel one. The schedules page uses the same words, and schedules --explain names the command that cancels that one resume.
  • **agent-rewake continue tells you when a session is large:** where the agent gives Rewake the path of its history file (Gemini CLI and Cursor), a history of 5 MB or more adds "This session is large (about N MB of history); continuing it re-reads that and uses your plan." Only the file's size is looked at, never what's in it, and nothing is paused.
  • Qwen Code in a terminal (preview, not tried yet): agent-rewake install --only qwen-code adds Rewake's hooks to Qwen Code's user settings (~/.qwen/settings.json, or QWEN_HOME) without touching your own, and Rewake then continues a closed session when its token-plan quota resets, with qwen --resume in the default approval mode and the message on standard input. It was built from Qwen Code's documentation and source (0.25.0) and never run against a real Qwen Code or a real limit; Windows hasn't been tried.
  • OpenCode in a terminal (preview, not tried yet): agent-rewake install --only opencode adds one small plugin file, agent-rewake.js, to OpenCode's plugin folder (~/.config/opencode/plugins/, or under XDG_CONFIG_HOME) without touching your own plugins, and Rewake then continues a session you closed at OpenCode's Go-plan usage limit once it resets, with opencode run --session and the message on standard input. Rewake never passes OpenCode's auto-approve flags; note that OpenCode's own defaults allow most tools without asking. A free-usage limit is reported, never resumed, and limits from other providers aren't recognised. It was built from OpenCode's documentation and source (1.18.35) and never run against a real OpenCode or a real limit; Windows hasn't been tried.

Changed

  • Third-party facts on the website carry the date they were checked: the Claude, Codex and Gemini limit facts were re-read at their sources on 9 October 2026, and the Codex five-hour period is now stated as Plus and Standard Business only (Pro has none); the Gemini line says which accounts moved to Antigravity CLI and when.
  • The landing page shows a real Claude Code session. The hero's drawn illustration is replaced by a recording of Claude Code in a terminal hitting its usage limit at night, Rewake asking, and the same session continuing after the 3:00 AM reset, played back as text with play, pause and jumps to each moment.
  • The README and docs say what the code does: Cursor's own agent is named with the other places, the README says the data folder is shown by doctor --details (not plain doctor), the /rewake cancel command is described for the agents that have it, and the note about newer agent versions names which agents doctor compares.
  • The website says more about what Rewake does and doesn't do. The landing page has a table of what works where, with each place's status and what must stay open; a list of what Rewake will never do; safety questions in the comparison; the commands to install one place only, with their real --only names; the night-to-morning story in words; and answers to more questions (Claude Code's own continue, sleeping computers, how to tell it worked, missing a limit). There is a page for privacy and security, a changelog built from this file (released versions only), and a section on how to report a limit Rewake missed. Each page now has its own title and description when you share its link.
  • Help for every command: agent-rewake install --help, doctor --help and the other commands each show their own options (before, install --help failed and doctor --help ran the check). The main help lists the commands you run first, with cursor among the places and uninstall's --only, --all and --skip; the commands Rewake starts itself are left out of it and listed by --help --all. agent-rewake completion bash, zsh or fish prints a completion script; nothing is installed for you.
  • **agent-rewake history [--days 7]:** what happened to your scheduled messages and resumes, newest first, with the agent and folder and what happened and why (sent, cancelled because you typed, too late, still limited, failed and the reason), and the year in each date. schedules --all now names the agent, lists newest first and says how each one ended, with the year.
  • **agent-rewake doctor --report:** writes one text file for a bug report, with the warnings and errors of the last 14 days, the timers set against the resumes on file, each agent's session states and the last decisions when a timer fired. Your home folder shows as ~, session ids are replaced by hashes and message text, thread titles and folder names are left out. Rewake sends nothing, checks nothing online and doesn't open a browser: it prints where the file is and the link to open an issue yourself.
  • **agent-rewake doctor --json:** the same findings as JSON, for scripts.
  • **doctor says how old your installed version is:** "Rewake 0.3.1, installed 94 days ago. To update: npx @codizelabs/agent-rewake@latest install", from a note install keeps in Rewake's own folder. It never checks online. A Rewake installed before this version shows it after the next install.
  • **doctor says each level in words** (Problem:, To do:, Note:, OK:) as well as with a symbol, and the schedules page's help names agent-rewake schedules, the plain-text list for screen readers.
  • A failed download of an agent says why it may have failed and what to do: when Zed has no copy of an agent and Rewake downloads it, a proxy in your environment (HTTPS_PROXY, HTTP_PROXY, NO_PROXY) is now used on Node.js 24.14 or newer, and on 22.21 or newer when Zed is started with NODE_USE_ENV_PROXY=1 (before, Node's own download ignored it). Agents installed with npm already got your proxy variables and npm settings. If it still fails, Rewake says it couldn't download the agent, whether a proxy was involved, and to open the agent once in Zed without Rewake. Tried against a local proxy only.
  • **agent-rewake doctor --limit-sample "<message>" helps report a limit message Rewake missed.** Paste the message your agent showed. Rewake shows it with keys, email addresses and your home folder removed, says how each agent's rules read it (a usage limit and when it resets, a billing limit, a short wait, or not a limit), and prints a link to a pre-filled GitHub issue. It runs on your computer, reads none of Rewake's records, sends nothing and opens nothing: you open the link, read the form and submit it yourself.
  • The release checks keep what npm downloads with Rewake from growing: a release now fails if Rewake would depend on any package other than the Claude adapter, if the adapter isn't pinned to one exact version, or if optional, peer or bundled dependencies are added. Nothing changes in what you install today.
  • Opt-in error reports. agent-rewake install now also asks, once, whether Rewake may send a short, scrubbed report to its maintainer when it hits a bug; the default is No, and it's never asked (or turned on) by a non-interactive install. Change it any time with agent-rewake errors on|off|status, or the environment overrides AGENT_REWAKE_ERROR_REPORTS=0, DO_NOT_TRACK=1, or running in CI, which always turn it off. Only an allow-list is ever sent — the kind of error, a scrubbed message and stack trace, versions, OS and place — never messages, agent output, file contents, tokens, session ids, usernames, hostnames or full paths; doctor shows the current state. A local, owner-only ledger of the last 200 errors is kept whether or not reporting is on, and old files in logs/ are now cleaned up after 14 days. See Error reports in the docs. This also surfaces, as error events, an armTimer failure during a sweep or a re-arm (early or waiting), and a fire run that found the lock held and backed off relying on the next sweep; their underlying logic is unchanged.

Fixed

  • **A large session's history warning now shows up when Rewake continues it automatically, not only when you run agent-rewake continue by hand:** the note ("This session is large (about N MB of history); continuing it re-reads that and uses your plan.") now also appears in the notification when a closed session is auto-armed, and in Cursor's and Gemini CLI's own /rewake replies when they arm a continue themselves.
  • The install picker no longer draws its list twice, answers arrow keys over SSH and in tmux, and asks one question instead of two: on a narrow terminal each redraw left stale rows behind, and arrow keys split across reads (or sent in application-cursor mode) did nothing or quit the screen. install now asks "Install Rewake for all of them?" first (Enter for yes), a full checklist opens only if you say no, and a decision you already made is not asked again as "Apply these changes?". The confirm screen is short by default; install --dry-run still shows every line. Cursor's text now says to continue by typing /rewake in the chat.
  • Zed: OpenCode's Go plan limit now waits for the reset it states: "usage limit reached. It will reset in 2 hours 5 minutes" was not recognised in Zed, so the thread was not offered an automatic resume.
  • Windows: a long resume is no longer cut off after an hour. Windows' Task Scheduler stopped Rewake's timer task after one hour, though a resume may run for up to three hours before Rewake stops it itself. The task may now run for four hours.
  • Windows: stopping a resume stops everything the agent started. When a resume ran past three hours, or you stopped it with agent-rewake continue --cancel, only the agent's own process was ended on Windows, so programs it had started could keep working on the session. Rewake now ends the whole process tree there (taskkill /T). macOS and Linux are unchanged.
  • Cursor on Windows: a hooks.json saved with a byte-order mark (as Notepad or Windows PowerShell 5.1 may save it) is no longer refused as invalid, and Cursor's command is found on the Path of an environment Rewake copied.
  • **agent-rewake schedules --explain <id> works again:** it was refused as an unknown option, so the explanation of why a resume waits, or didn't send, could not be read.
  • Windows can tell whether an agent session is still open: Rewake now finds the agent that ran a hook by walking up the process tree (through cmd and PowerShell), as it does on macOS and Linux, so a crashed or killed agent no longer leaves a resume blocked or double-sent. Tried only in automated tests so far, not by hand on a Windows PC.
  • Smaller hardening: a binary agent is downloaded only over https, and its command path is checked before anything is moved; a session id can't start with a dash; Rewake closes its own state folders to other users if they were left open; the backups Rewake makes of your files never overwrite each other and only the newest five are kept; an address with a user name, password or query (often a key) isn't saved with a session, only that it was set.
  • A folder name with curly quotes can no longer break a Windows notification: every quote character PowerShell treats as a quote is now escaped in the notification text.
  • Planned resumes no longer keep your API keys: timers started through at, systemd or Rewake's own waiter now run with a cleaned environment, so keys from the session that planned them aren't saved on disk or used to skip the missing-key check.
  • Text from an agent can no longer send commands to your terminal through Rewake's lists: thread titles, folder names and message text are shown with escape and other control characters replaced, in agent-rewake schedules, its Markdown snapshot and the schedules page.
  • Codex: a later, empty usage bucket no longer hides when the limit resets: Codex reports usage per limit bucket, and an empty "premium" snapshot after a full "codex" one made Rewake say it didn't know when the limit resets. Rewake now picks the bucket that describes the limit, and falls back to the reset time in Codex's own message.
  • Codex: a crashed send can no longer be counted as sent because of an older resume: after a second usage limit in the same thread, the first resume's identical message was still in the thread's file, so a send that crashed could be marked as sent. Rewake now counts only messages written after that attempt started.
  • Claude Code: a continue refused just after the reset is tried again: when the first request after a reset was refused and no new reset time was given, nothing retried and the session stayed stopped. Rewake now tries again shortly, once. If that is refused too, it stops, as it does for a limit that keeps coming back.
  • **agent-rewake doctor warns when Claude Code is set to keep retrying at a usage limit:** CLAUDE_CODE_RETRY_WATCHDOG, or CLAUDE_CODE_MAX_RETRIES of 10 or more, set in the environment Claude Code starts with or in the env section of its settings.json, may keep the turn from ending, so Rewake may never see the limit. Doctor names the variable and where it's set.
  • Gemini CLI: more usage limits are noticed, with their reset. A quota error worded only "You exceeded your current quota…", "Resource has been exhausted…" or with Gemini's "request a quota increase through AI Studio" line wasn't recognised as a usage limit, so Rewake offered nothing. It is now. When Gemini says "Suggested retry after 3600s" or "Please retry in 1234s", Rewake waits for that time instead of asking you to pick one.
  • Gemini CLI: a limit hit during another extension's turn is noticed. Turns started by another Gemini CLI extension (a loop extension such as Ralph, for one) were skipped, so a limit in them was never recorded. They are checked now.
  • Gemini CLI: Rewake no longer reports "sent" when Gemini refused a step. A continued session runs without a terminal, so Gemini CLI refuses any edit or command that needs your approval and carries on. Rewake now notifies you that it refused a step that needs your approval, so the work may be unfinished, and says to open the session and approve it there. The Gemini CLI guide now says that a continued session can't ask for approval, and that you should choose Stop at Gemini CLI's usage-limit question, because Rewake can't see the limit while that question is open.
  • Copilot CLI: more of its limits are recognised. Errors that carry the limit's code inside an error object ({"error":{"code":"user_weekly_rate_limited"}}) were missed, and so was the wording "Sorry, you have exceeded your weekly rate limit." Now user_global_rate_limited (the session limit), user_model_rate_limited and integration_rate_limited are limits too, a bare rate_limited is left to Copilot, and a code with a suffix (…:pro) is read by its first part. When a continued run hits the limit again, Rewake uses the number of seconds Copilot gives as the reset, and a quota error about money (billing_not_configured) is reported as a failure with Copilot's message, not retried at a reset.
  • Grok Build: a continued run that hits the limit again is waited out. A free account's run prints "You've reached your free Grok Build usage limit…" with no "rate limit" or "429" in it, so Rewake called the run failed and didn't try again at the reset. And a 402 "Grok Build usage balance exhausted" (which Grok's own screen calls the weekly limit) was treated as billing unless Grok's log, within the last 30 minutes, said the usage was used up. It is now the weekly limit, and you choose the time when Rewake doesn't know it; a spending cap or credit limit is still billing.
  • Antigravity: more limit texts are read, and the CLI's errors aren't thrown away. "Model quota limit exceeded" counts as a limit, and "Refreshes in 2h30m" and "Refreshes in 6 days and 18 hours" are read as the reset (before, only "Resets in …" was). When a continued run fails, Rewake now reads what agy prints on stderr (its AGY_ERROR line) as well, so a run that hits the quota again is waited out instead of reported as "no response". The Antigravity wordings come from Google's forum and a community tool, not from Google's documentation, and the CLI may not print all of them.
  • Removing or upgrading Node.js no longer stops your agents in Zed (macOS, Linux), and starting them no longer needs npm or the network: Zed's agent entries named one Node.js folder and ran Rewake through npm each time, so nvm uninstall, an upgrade or an empty npm cache stopped every wrapped agent with an error that didn't mention Rewake. The entries for Codex and the other agents Rewake is in front of now start the same two files in Rewake's own folder that hooks and timers use (bin/rewake-node and bin/agent-rewake.mjs), which find a working Node.js themselves. **Run npx @codizelabs/agent-rewake@latest install once to move your Zed entries over**, then quit Zed completely and open it again; doctor now says when an entry still uses the old start. From then on, install or any newer Rewake that runs updates the copy Zed starts, and an older Rewake never replaces a newer one. uninstall puts your original entries back and leaves those two files, which hooks still use. Windows is unchanged: run install again after you upgrade Node.js there.
  • **doctor and install now judge the same copy of an agent.** When an agent is installed twice (an npm copy and a native one, say), doctor went by the copy that runs first in your terminal and install by the newest, so doctor could call Claude Code 2.1.282 too old while 2.1.292 was installed. Both now use the copy your terminal starts, the first one on your PATH. doctor --details lists every copy with its version and says which one Rewake goes by. (If that first copy is too old, install says so and tells you to update it.)
  • A bug in Rewake can no longer end your agent's session in Zed. Before, an error inside Rewake while it handled a message ended the whole process, and with it the agent and the reply you were waiting for. Now Rewake switches itself off in that agent, passes everything between Zed and the agent through untouched, tells you once in each thread, and logs the kind of error (never its text). Restart Zed to turn it back on; your scheduled messages are kept but aren't sent until then.
  • A project folder that was moved, renamed or deleted now gets a clear reason. Resuming a closed Copilot CLI, Gemini CLI, Grok Build or Antigravity session from a folder that is gone said "Rewake couldn't continue the session" (or, for Gemini, that the session no longer exists). Rewake now checks the folder first, doesn't start the agent, and says the project folder is gone and to open the session from its new folder.
  • **agent-rewake uninstall leaves nothing running behind:** once Rewake is out of every place, it also removes the timers, the login item and the helper files it made. Your scheduled messages, settings, logs and any agents Rewake downloaded stay, and it lists them with where they are.
  • Many sessions resuming at the same moment are spaced out: resumes outside Zed that fall due together start a few seconds apart, and at most two run at once; the others wait their turn.
  • Rewake's folder no longer grows without end: finished resumes and old session records older than 30 days, and leftover temporary files, are cleared. Anything pending or recent is never touched.
  • A clear message for Node.js older than 22: instead of an error, Rewake says which Node.js it needs and what to do.
  • First-run advice starts from the places that are set up, not from Zed.
  • A timer that ran too early no longer leaves a resume waiting for someone to open an agent: after a time-zone change, or in the repeated hour when daylight saving ends, a timer could run before its time, do nothing, and be gone. It now sets a new one for the right moment (up to three times for one resume), and leaves it alone if the one that's there is still right.
  • Two Rewake processes no longer lose track of who owns a session when the computer's name changes, or when a process number is reused: ownership was decided by the process number and the computer's name. macOS renames the computer with the network, so a running owner could look gone and a second process could take over (a message sent twice); a process number reused after a crash could keep a dead owner's lock alive. Ownership now follows the process's start time (where the system reports it) and ignores the computer's name.
  • Codex Business and Team: a workspace limit with a spent plan window is no longer treated as billing for ever. When Codex says the workspace is out of credits or over its spend cap, and the five-hour or weekly window is used up too (99% or more) with a reset time still ahead, Rewake now offers to continue at that reset. It always asks first, even with automatic resume on, because only a community report (unsnooze 1.19.1 and 1.19.2) backs this and no Codex capture of it exists yet. A workspace limit with no spent window, or with a spend cap flag set, is still billing.
  • Claude's older "Your limit will reset at 3pm (UTC)" limit message is no longer dropped as a short wait (Zed). Rewake now reads it as a usage limit, with the time.
  • Claude's "You've hit your monthly limit · resets Sep 1 at 12:00am" is no longer called billing (Zed). It resets, so Rewake asks about it like any limit more than a day away. A monthly limit that gives no reset is still treated as billing.
  • Kimi's "Membership expired, please renew your plan" is now explained as a billing problem, and OpenCode's "Free usage exceeded, subscribe to Go" is now a usage limit (Zed): before, Rewake did nothing for either. The OpenCode text gives no reset time, so Rewake asks you for one. Both texts are known only from the community project unsnooze, not from a capture by the agent.

0.3.1

Fixed

  • A scheduled message that meets a usage limit waits for the reset instead of failing. Claude reports a spend cap as a billing error even when the message ends with the plan's own reset ("…your weekly limit resets Oct 13 at 6am"); Rewake read that as "waiting won't help", showed the error and stopped. It now holds the message until that reset, even days away, and says so in the thread. A scheduled message whose limit gives no reset time is tried again after the wait set in Settings (an hour unless changed), for up to a day, instead of asking.
  • A closed session Rewake continues is no longer invisible or cut short: a notification now says when the background run starts (with how to stop it) and when it's done; agent-rewake continue --cancel offers to stop a running one; and a run may take up to three hours instead of being stopped after 30 minutes, mid-work.
  • Removing or upgrading Node.js no longer breaks Rewake's hooks and timers (macOS, Linux): with nvm, fnm or asdf, every hook, timer and the login item named one versioned Node.js folder, so nvm uninstall made them all fail silently. They now run a small script in Rewake's folder (bin/rewake-node) that uses the Node.js Rewake was set up with while it exists, else finds another (Homebrew, Volta, fnm, asdf, nvm, the system, your PATH) and says so if there is none. The first time you run install again, the hook commands change once, so Codex asks you to trust its hooks again. Zed's own agent entries still name one Node.js; those are not covered yet.
  • Fewer secrets and personal details reach your screen and logs: the agent error line continue shows now also hides api_key=…/password=… style values, AWS access keys, Basic and Bearer credentials, and strips every terminal escape sequence (such as clickable links), not only colours. Rewake's log records the agent's program name, not its full path (which holds your user name).
  • **agent-rewake continue --always says where it applies:** it's one setting for every agent, so it also turns on automatic resume in new Zed threads and in Claude Code, not only for closed sessions. The message now names them, and says --ask turns it off everywhere.
  • A limit line an agent wrote itself no longer starts an unattended resume in a thread that skips permission prompts (Zed): for agents that report a usage limit only as the last line of their reply (Cursor, Copilot, Amp, Droid, Antigravity), text a model was steered into writing could have made Rewake continue the thread later with nobody watching. In threads that bypass permission prompts, Rewake now asks first; elsewhere automatic resume works as before.
  • Cursor's own agent no longer offers a wait that can't work for a plan or monthly limit: Cursor's Pro-plan limit ("Switch to Auto for more usage or set a Spend Limit") and its monthly-allowance line ("…reset when your monthly cycle ends on …") were treated like a limit that lifts within hours, so agent-rewake continue offered times that would only hit the limit again. They now get a notification instead.
  • Cancelling now always wins over a continue that hasn't started sending: before, a cancel (or typing in the session) just as Rewake was about to send could be missed, and the message was sent anyway. A continue that is already sending can't be taken back, so agent-rewake continue --cancel now says "Not cancelled: Rewake is already continuing …" and how to see what it did, instead of "Cancelled".
  • **agent-rewake uninstall takes Rewake out of every place it's set up in:** before, it removed only Zed's entries but said Rewake was gone everywhere. Now it shows every change first, asks once, and says what's left (Rewake's own folder). To keep some places, use --only or --skip.
  • Commands Rewake tells you to run now work when you installed with npx: notifications, continue, doctor, install messages and the schedules page said "Run agent-rewake continue", which isn't a command unless Rewake is installed globally. When agent-rewake isn't on your PATH, they now say npx @codizelabs/agent-rewake continue, and the same for every other command.
  • Claims on the website that weren't true. The comparison said community scripts poll a usage endpoint "until it rate-limits them in turn" (the tool that did this fixed it and closed both issues), that several of the most-starred are "stale or archived" (none of the six most-starred is archived; they are stale), and that one "presses Enter on whatever prompt is on screen" (that is an option you turn on, not what it does by default). Each is now what can be checked today.
  • "Does it spend usage credits?" said "No." The resume is a message, and it uses your plan like any message you type. It still doesn't change your plan, limits or credits.
  • "Rewake has no background service" is now "no always-on service", and says that on Linux without systemd or at (WSL, containers) Rewake runs its own process while a resume is waiting.
  • The website said "Early release (0.2)" while npm served 0.3.0. The landing page now takes the version from package.json, and a test fails when the README or the docs fall behind.
  • A scheduled message is no longer readable by every other process on your computer. When Rewake continued a closed session, it passed your message to the agent as a command-line argument, and a command line is public: any other program (or another user) on the machine could read it from the process list for as long as the run lasted. Rewake now hands the message to Copilot CLI and Gemini CLI on their standard input, and to Grok Build (whose CLI reads no prompt from standard input) in a file only you can read, deleted the moment the run ends. The Antigravity CLI preview still passes it as an argument: its CLI documents no other way to take a prompt, and Rewake won't guess a flag; it's noted in the docs and will be fixed once agy can be checked. Nothing left your computer either way.
  • Rewake's own writes into your files can't be redirected. install wrote its temporary file at a predictable name without demanding to create it, and the login item was written in place. Something that could plant a symlink at that name first (anything running as you, or another user where the folder allows it) could have turned an install into a write of Rewake's choosing somewhere else — including the macOS login item, which runs at sign-in. Both now create their temporary file exclusively, under a random name, and replace the file itself rather than following a link standing there. Backups and file permissions are unchanged.

0.3.0

Added

  • Cursor's own agent (preview): agent-rewake install --only cursor adds two hooks to ~/.cursor/hooks.json (yours stay). When a chat stops at its usage limit, Rewake tells you to run agent-rewake continue and choose when (Cursor doesn't say when its limit resets); at that time (within 4 hours of the limit) it sends "Resume the work from where you were interrupted." (marked as from Agent Rewake) into the same chat, while that Cursor window stays open; typing in the chat meanwhile cancels it. If the window was closed or reloaded, a notification says to continue it yourself. A limit that waiting won't lift (a free plan's allowance, or one that needs payment) gets a notification instead. Continuing the same chat was tried in Cursor 3.23; a real Cursor usage limit wasn't yet.
  • **Linux without systemd or at (WSL, containers) can continue sessions too:** before, planned resumes there waited until you next opened an agent. Rewake now uses its own background process, one for all planned resumes, which ends when none is left. It stops when you log out or restart, and starts again the next time you use an agent. agent-rewake install and doctor say when it's used, with the fix: systemd in WSL, or the at service elsewhere.

Changed

  • The landing page's comparison leads with what Rewake covers and says where each other way stops (one agent only, no scheduling, keystrokes into a pane, a dropped time zone, a prompt approved for you). It no longer links to them.
  • **Claude Code's continues show up in agent-rewake doctor:** its planned continues count with the other agents' ("keep Claude Code open"), and a session waiting for your answer is named, with its folder. Rewake's plugin now records each session's folder with its limit (never message text).
  • Claude Code follows Rewake's setting for every agent: after agent-rewake continue --always (or turning it on in Zed's Settings), Claude Code continues without asking too, and /rewake auto says why. /rewake auto off in Claude Code keeps asking there, whatever the shared setting.
  • The README, docs and website start from where you work: a terminal, Claude Code's panel in VS Code or Cursor, Zed, JetBrains IDEs and Devin Desktop, each with what Rewake does there and its status. Zed's menu, forms and settings have their own section, and the website's "How it works" and agent tiles put the terminal agents first. The status badge says v0.2.
  • The README, docs and website say what's been tried for each preview, and what hasn't: Claude Code in a terminal, VS Code and Cursor, Copilot CLI, Gemini CLI and Grok Build were tried by hand on a Mac with a test usage limit (none has met a real one yet); Codex only in automated tests; Antigravity CLI not yet. The docs also explain that a closed session is continued without your shell profile's settings, that Copilot's and Grok's limits don't say when they reset (so continue asks you when), and how Gemini CLI shows Rewake's answer to /rewake.

Fixed

  • **Claude Code's /rewake questions in VS Code and Cursor:** "What should Rewake send…" offers "Continue from where you left off." and "Check where things stand and report back.", or type your own; before, the panels showed Yes/No, and "Yes" would have been sent as the message. The custom-time question offers examples with their times, and a time typed in the first question is used.
  • Times without brackets inside brackets: "12:07 AM tomorrow, Thursday" instead of "12:07 AM tomorrow (Thursday)", so labels read "In 1 hour (12:07 AM tomorrow, Thursday)". A change an agent proposes in Zed lists its parts with semicolons.
  • Gemini CLI shows "[Agent Rewake]" after Rewake's message, not an internal hook name.
  • The website's schedules-page demo shows Rewake's real version again.
  • Claude Code: a session is never left waiting with nobody to continue it. Rewake now uses Claude Code's own "Continue automatically at usage limit" setting as the session started with it (the running Claude Code keeps that value), so turning it on or off mid-session no longer leaves the limit to neither. And if Claude Code was expected to continue by itself but hasn't by two minutes after the reset, Rewake asks, or continues if you chose "from now on".
  • Planned resumes survive a restart (macOS and Linux; Codex, Copilot CLI, Gemini CLI, Grok Build, Antigravity CLI). A restart could lose a resume's system timer, so it waited until you next opened an agent. Installing one of these previews now adds a login item that sets planned resumes again when you log in (on Linux a systemd user service, or an autostart entry without systemd), and uninstalling the last of these removes it. Windows didn't need this: its scheduled tasks survive a restart.
  • **agent-rewake continue no longer lists a session Rewake already continued.** It lists it again only after a new usage limit, or when the continue failed.
  • A failed continue says why. When the agent's run fails (for example "No session … matched"), Rewake keeps its last error line, with your home folder shown as ~ and anything like a key, token or email address removed, and agent-rewake continue and agent-rewake doctor show it, with when Rewake tried.
  • Copilot CLI, Gemini CLI and Grok Build: a closed session continues with the settings it had. Rewake now remembers the agent's own settings the session had, such as COPILOT_HOME, GEMINI_CLI_HOME, GROK_HOME or a provider address, and gives them back when it continues the session. Before, the timer started the agent without your shell profile, so a non-default setup failed (Copilot: "No session … matched"). Rewake never stores an API key: if the session used one from your shell profile, Rewake doesn't continue, and its notification says to sign in to the agent and remove the key from your shell profile.

0.2.0

Added

  • Rewake's version where you look for it: in the Rewake menu's tooltip (next to its About, which had it already), at the top of Settings…, on the schedules page's title line and help, in the /schedule page snapshot, and in what about_rewake tells the agent, so it can say which version you run. The menu's label in the toolbar stays short.
  • A guide for each agent: the website's "Works with" section shows every supported agent with its logo, each linking to a step-by-step guide in the docs (install, what happens at the limit, scheduling, checking and removing, the version it needs and what it can't do): Zed, Claude Code, Codex, GitHub Copilot CLI, Gemini CLI, Grok Build and Antigravity CLI. The site's title and summary name the terminal agents too, not only Zed.
  • **Agent versions in doctor:** an agent older than Rewake supports is named, whether or not its preview is set up, with the command that updates it. A set-up agent newer than the version Rewake was tested with is noted too (it should still work), and install says the same. The docs list each preview's minimum and tested version.
  • Your computer's own sleep settings are checked on macOS, Windows and Linux (GNOME, KDE, systemd-logind), without admin rights and without changing anything. If one would let the computer sleep while a resume waits (sleeping after some minutes when plugged in, on battery, or, in doctor, closing the lid), the thread says so once, agent-rewake continue says so after arming, and agent-rewake doctor shows it under Sleep settings, each with a link to the new Keep your computer awake section of the docs, which gives the best settings for each system. A setting your organisation manages is named as such.
  • Keep this computer awake for resumes and scheduled messages (macOS): while a resume or scheduled message is due within six hours, or while the agent works on a scheduled message, Rewake stops the computer from idling to sleep with the system's own caffeinate, tied to Rewake's process so it ends with it. A new setting chooses *While it's plugged in* (default), *Always, also on battery* or *Never*; the thread says once when the computer is kept awake. In the Claude Code preview the same happens while a continue is due (Rewake's or Claude Code's own), and every preview keeps the computer awake while the agent works on the resumed session. Closing the lid still puts the computer to sleep, and Rewake can't wake a sleeping one. Linux and Windows aren't supported yet.

Fixed

  • Claude Code in VS Code, Cursor and the Claude desktop app: a usage limit in Claude Code's panel is now handled like one in the terminal: Rewake asks, then continues the same session when the limit resets. Before, Rewake ignored limits there, because the panels run Claude Code the way Zed does (through the Agent SDK); only Zed's own sessions are left to the Zed add-on now. Scheduled messages already worked in the panels.
  • A usage limit that names a spend limit or credits but also says when the plan's limit resets ("You've hit your individual spend limit · … · your session limit resets 7:50pm") is resumed at that time. Rewake ignored it before. The same applies to Codex, Copilot, Factory Droid, Amp, Z.AI and others ("purchase more credits or try again at 2:51 PM").
  • When a limit can't be fixed by waiting (credits, billing or a spending limit), Rewake says so in the thread instead of saying nothing.
  • Reset times are read in every format agents use: dates with a year, day-first dates, UTC and offsets, "in 4 days, 23 hours", "4hr 10min", "2h3m4s", "202ms", "next hour" and epoch times. "Try again after 1 seconds" no longer reads as 1 o'clock, "202ms" as 202 minutes, or "Jan 2, 2027, 3pm" as 8pm.
  • A resume left over from an earlier limit no longer gets in the way. When Claude answers again before the old reset (another account, another model, bought usage), the old resume is cancelled, also after a restart. A missed resume, or one waiting for your answer, is replaced by the new limit's resume, and a sooner reset moves a scheduled resume earlier.
  • The same holds for Codex, Gemini CLI and every other agent in Zed: when it answers one of your messages again before the old reset, the resume scheduled for that reset is cancelled instead of being sent into a thread that has moved on. A slash command, which the agent may answer without its model, doesn't count.
  • A resume that was paused again because the agent was still limited is held to its new time like any other message: if Zed or the computer wasn't running and it's more than 15 minutes late, it's marked Missed and Rewake asks before sending it. Before, it was sent however late it was.
  • "Automatic resume: on for new threads" also applies to a thread Rewake first sees when Zed reopens it, not only to threads created while Rewake runs.
  • A limit that arrives while another Rewake question is open is still offered, as a line in the thread.
  • Rewake exits when Zed closes it, even if the agent ignores the request to stop; the log moves to a new file each day.
  • Rewake reads the error text wherever the agent puts it (data.details, a plain data, data.error), as Zed does, and recognises a lost session from more agents.
  • Codex preview: an ordinary plan limit is resumed again. Rewake read Codex's "spending cap reached" flag as set whenever Codex sent it, and Codex sends it on every limit (as false), so every Codex limit was treated as billing. Codex's credit, spend-cap and plan messages are recognised from the message too, and the reset is the window that stopped the turn, not the weekly one.
  • Codex preview: a continue that was cut off after Codex accepted it (the computer restarted, say) is recognised as sent when the thread shows the message. Rewake looked for an older record of the person's messages that Codex 0.160.1 no longer writes, so it said it couldn't tell whether the message was sent.
  • Copilot CLI preview: reads Copilot's own wording ("reset in 2 hours", reset dates in UTC), leaves short-term rate limits and errors Copilot recovered from to Copilot, and counts the monthly premium-request allowance as a usage limit. A reset date east of UTC is no longer dropped as already past.
  • Grok Build preview: short team or plan rate limits and overloads are no longer treated as an 80-hour weekly wait; the weekly reset is used only when the weekly pool is what ran out.
  • Grok Build preview: the free usage limit is recognised. Grok's hook gets the API's own error for it, not the sentence Grok prints, so Rewake missed it and neither continued the session nor told you how to.
  • Gemini CLI and Antigravity CLI previews: a daily quota is resumed. Gemini words every quota error with "please check your plan and billing details", which Rewake read as billing; a reset time now wins over the offer of overages, and a wait of seconds is left to the agent.
  • Claude Code preview: a gateway's daily spending cap, which resets within a day, is waited for; a monthly cap still isn't.
  • A Copilot CLI or Grok session that no longer exists is reported as deleted, not as a failure.
  • Gemini CLI preview: when a resume finds Gemini still at its usage limit, Rewake waits for the reset Gemini gives and tries again, instead of reporting that it couldn't continue the session. Gemini CLI writes that error to stderr, which Rewake didn't read.
  • Gemini CLI, Copilot CLI, Grok and Antigravity CLI previews: Rewake's own resume run no longer marks the session as open. When Gemini stopped that run at its limit again, the session stayed marked open, and the next try only said "The session is open, so Rewake didn't send anything".
  • Previews outside Zed: a resume that is still limited at its time is tried again later. Before, on macOS the new timer couldn't be set from inside the one that was running, so the resume was dropped. Each re-arm now gets its own timer.
  • Previews outside Zed: a resume can't be sent twice when two timers run at the same moment, and a resume cut off by a crash or restart is never sent again: Rewake tells you to check the session instead of leaving it stuck.
  • Previews outside Zed: a continued session whose agent is still working half an hour later (for example, waiting for your approval) is stopped, and you're told to check it.
  • Previews outside Zed: lost timers are restored whenever Rewake runs (doctor, ui, install, continue and each hook), not only from hooks. On Linux, at is used only when its service is running.
  • Previews outside Zed: hooks and timers run the Rewake you last updated to; before, they kept the version you installed them with. install --only claude-code works when Rewake was started with npx or a global install.
  • Copilot CLI, Grok and Gemini CLI previews: a session whose terminal was closed or crashed without ending the session is no longer taken as open for ever. Rewake remembers the agent's process at the start; once it's gone, a limit in that session is continued or offered as at a normal end, and agent-rewake continue lists it.
  • Previews outside Zed: a missed resume, or one that needed your attention, no longer blocks a later limit in the same session from being continued.
  • Copilot CLI, Grok, Gemini CLI and Antigravity CLI previews: a resume that finds the agent still at its limit waits for the new reset time the agent gives, instead of giving up after about 37 minutes. A new reset more than a day away (a weekly limit) is offered, not waited for silently.
  • Antigravity CLI preview: when a conversation with a planned resume hits a new limit that resets later, the resume moves to the new reset instead of firing too early. If the new reset is more than a day away, you're asked again.
  • Copilot CLI and Gemini CLI previews: a session open in two terminals stays open until the last one closes. Before, closing one let Rewake continue the session while the other terminal still had it open.
  • Previews outside Zed: install --only <agent> checks the agent's version even when it was installed with Homebrew, apt, WinGet or a standalone installer, by asking the agent (--version). Before, a version Rewake couldn't read skipped the check, so an agent too old for Rewake was set up anyway. When the version still can't be read, install says which version Rewake needs and how to update.
  • Gemini CLI preview: install no longer refuses a default Gemini CLI setup: Gemini runs extension hooks unless they're turned off, and Rewake read a missing setting as off. A session is followed through a switch to a fallback model (Gemini gives the hook a new id then; Rewake now uses the session file's own), a limit followed by Gemini's own bookkeeping lines is still seen, and with an API key a quota with no reset time is continued after midnight Pacific time, when Gemini API daily quotas reset.
  • Previews outside Zed: automatic resume follows "Automatic resume for new threads: on" even when Zed's "except when permissions are bypassed" is chosen; a resume outside Zed never bypasses permissions, so that exception never applied there and only turned automatic resume off. agent-rewake continue --always now has the effect it promises.
  • Previews outside Zed: the schedules page (agent-rewake ui) shows the agent's name for their resumes, and changing a resume's time, sending it now, pausing, resuming or deleting it moves or removes its timer too. Before, the old timer kept its time. Pressing a on such a row explains how automatic resume is set for that agent instead of turning a Zed thread setting on, which made the agent's own hooks stand down.
  • Previews outside Zed: uninstall --only <agent> cancels that agent's planned resumes and their timers.
  • Claude Code preview: /rewake-schedule and /rewake-ask appear in the / menu (they worked, but weren't listed). The message Rewake sends to continue says it was sent automatically by Agent Rewake. In the Desktop app Rewake always asks before continuing, so it and Desktop's own "Auto-continue when limits reset" never both continue. A later limit more than a day away is offered, not waited for silently. A limit that never got a reset time, an unanswered offer, or Claude Code's own wait that ended with the session no longer holds up scheduled messages and later limits; reopening a session whose own wait was pending asks instead.
  • Grok Build preview: a weekly limit is no longer dropped without a word when Grok's log has no recent billing line saying when the week ends: Rewake offers to continue and asks for a time. Only a billing line from the last half hour is used, this session's first. A resume counts as sent only when Grok's result names the same session, "still limited" is read from Grok's errors too, and an npm install of Grok on Windows can be resumed.
  • Antigravity CLI preview: a resume is held back only while agy runs in that conversation's project (or where the system won't say), not while any agy runs anywhere, and Remote Control's background service doesn't count. agy installed as a Node script is recognised.
  • Codex preview: threads whose session file has a rollout id after the thread id (rollout-…-<thread>_<rollout>.jsonl) are followed; Rewake ignored them. When Codex can't say whether usage is back, a continue set before the reset waits for the reset the session file recorded instead of going out early and failing. The confirmation says that a closed Codex continues the thread when you next open it, a session that ends at a limit with automatic resume on shows the same confirmation, and when no timer can be set Rewake says so instead of promising a continue. After a crash during a continue, the session file is checked for the message before Rewake says it can't tell.
  • Previews outside Zed: doctor has an "Outside Zed" section: an agent whose own settings turn its hooks off, a computer with no scheduler Rewake can use, the next planned resume, and resumes that need you, were missed or failed. Zed's "Scheduled messages" section no longer counts them. install --only codex checks that Codex lists Rewake's hooks and says so when an organisation's settings allow only managed hooks; install --only copilot-cli and --only grok say when the agent's own settings turn hooks off.
  • The README and docs say where the previews outside Zed are, instead of saying Claude Code in a terminal can't be reached; the docs no longer claim the Claude desktop app's Code tab before it's checked; the reference and --help list install --only, uninstall --only, continue, hook and fire; the disclaimer names GitHub and xAI; the site lists Windows; the agent's help (about_rewake) explains the previews.
  • doctor says when AGENT_REWAKE_TEST_TIMING (shorter waits for Rewake's own tests) is set, and that it's ignored without AGENT_REWAKE_STATE_DIR.
  • In Zed, Copilot's language-server entry (github-copilot) gets Copilot's limit rules, an Antigravity, Copilot or Grok agent added under its own id is recognised by its name, and an Antigravity quota that ends the turn as a refusal is recognised.
  • Codex preview: typing "rewake" after the reset Codex recorded has passed continues the thread in a minute, instead of asking for a time; an earlier turn's usage figures no longer set the reset of a later limit.
  • Rewake's log no longer records an error's message for a failed hook or an agent that didn't start, only its kind: those messages can contain folders.
  • Claude Code preview: updating Rewake updates its plugin in Claude Code too (from the next session); before, it kept the version it was installed with until install --only claude-code ran again. Running that again only refreshes the plugin's files, so a failure can no longer remove a working install.
  • Previews outside Zed, Windows: Rewake's notifications show as Windows notifications (they weren't shown at all), and a resume's timer runs without opening a console window.
  • Previews outside Zed: a resume's timer is set again when the computer's time zone changes or Node.js moves, so it still runs at the right moment with a Node.js that exists (macOS and Linux's at keep local times).
  • Antigravity preview: at a usage limit in the Antigravity app or IDE, which Rewake can't continue, a notification says when the limit resets (once per conversation and reset). install --only antigravity also works where only the app or IDE is installed.
  • Codex preview: when Codex can't say whether usage is back at the reset (the computer is offline, or Codex doesn't answer), Rewake checks again a few minutes later instead of sending. Before, the message was queued anyway, the turn then failed, and the resume counted as sent. If Codex still hasn't answered after the last check, Rewake tells you to resume the thread yourself.
  • Claude Code preview: with the same session open in two Claude Code windows, the continue after a usage limit is sent once, not once from each.
  • Claude Code preview: install --only claude-code also uses the Claude desktop app's own Claude Code, so an older Claude Code in the terminal no longer stops the install; it says when the terminal one is too old to load the plugin. The plugin passes claude plugin validate on Claude Code 2.1.289 too (a name used twice in it was rejected there), and /rewake-ask has its reviewed description.
  • install in a terminal shows what's on your computer (Zed and each coding agent, with versions), what Rewake does in each, and a checklist: tick the places, see every change together, answer once, and get one result line per place with its next step. Agents too old for Rewake are shown with how to update them. --all picks every place found and --skip leaves some out; with --yes and no place named, install still sets up Zed only, and now says so.
  • Gemini CLI preview: type /rewake in a conversation after a usage limit (or /rewake 3:30pm, /rewake cancel). Rewake answers it itself, without a model request, and continues the conversation at that time once Gemini CLI is closed. After a limit, Gemini CLI shows the offer in the conversation.
  • Copilot CLI preview: a weekly limit is recognised from the code Copilot's service sends with the error, even though Copilot marks every retry "recoverable"; Rewake missed it before. When Copilot starts several hooks at once, none of them loses what another recorded, so a session always keeps the program Rewake resumes it with.
  • Previews outside Zed: with AGENT_REWAKE_STATE_DIR set, a resume's timer now uses that folder too. Timers run without Rewake's environment, so they used the default folder, found nothing to send and removed themselves.
  • The site's Gemini CLI quota card shows Google's current figures (1,500 requests a day on AI Pro, 2,000 on AI Ultra) and says free accounts moved to Antigravity CLI in June 2026; it showed the old free-tier figure.
  • JetBrains IDEs preview: install --only jetbrains (or the install screen) adds "Claude Agent (with Rewake)" and "Codex (with Rewake)" to AI Assistant (~/.jetbrains/acp.json). They run those agents behind Rewake, as in Zed. Nothing else in the file changes; uninstall removes only Rewake's two entries.
  • Devin Desktop preview (formerly Windsurf): install --only devin-desktop (or the install screen) adds "Claude Agent (with Rewake)" and "Codex (with Rewake)" to Devin Desktop's agent selector, through its ACP registry file. Not yet tried in Devin Desktop itself.

Changed

  • **One command, /rewake, everywhere Rewake runs.** Zed (and other ACP clients), Claude Code and Gemini CLI all take /rewake, with the same words: /rewake at a usage limit continues after the reset, /rewake 3:30pm continues then, /rewake in 1h Run the tests sends a message later, /rewake list, /rewake cancel (the continue), /rewake cancel N or all, /rewake auto on|off, and /rewake help, which lists what works in that place. Anything a place can't do gets one line saying so. Rewake answers the command itself, without using the model. In Codex it's rewake without the slash (now also rewake list, rewake cancel and rewake help): the Codex terminal refuses slash commands it doesn't know before any hook sees them.
  • Zed: /schedule and /stop are replaced by /rewake and /rewake stop, with the same subcommands (/schedule rm N is /rewake cancel N, /schedule resume after a limit is /rewake). A bare /rewake at a limit opens the resume question. Zed shows one command, /rewake, in its / menu.
  • Claude Code preview: /rewake-schedule, /rewake-cancel, /rewake-continue, /rewake-clear and /rewake-ask are folded into /rewake (/rewake alone asks when, then what; /rewake cancel; /rewake; /rewake cancel all; /rewake auto off). /rewake list numbers messages so /rewake cancel N can delete one, and /rewake auto on turns on continuing without asking.
  • The website, README and docs are written for every place Rewake works, not only Zed: install is "run one command, pick where, restart that tool", "Is it for you?" is a table by place, "How it works" shows three diagrams (Zed's agent connection, a plugin inside Claude Code, and hooks with the system's own timer), and "When it sends", the comparison and the questions cover the previews too.
  • The README opens with what Rewake does for each agent ("Auto-resume Claude Code after a usage limit", "Auto-resume Codex when the usage limit resets", and the other previews). The npm description and keywords name the agents too.
  • Usage limits are recognised for every agent in Zed's registry, each from what it actually sends: Claude's rate-limit event (the same test Claude Code uses to continue on its own), Codex's error kinds, Gemini CLI, Qwen, Qoder, Kimi, Z.AI, MiniMax, Auggie, CodeBuddy, Devin, Junie, Mistral Vibe, goose, OpenCode, Kilo, Cline, Grok Build, Kimchi and Harn. Short-term rate limits, which the agent retries itself, are no longer treated as a usage limit.
  • Cursor, GitHub Copilot, Amp, Factory Droid, Antigravity, goose, fast-agent, Cortex Code and Autohand report a limit only as the last line of a turn. Rewake now reads that line, and only when it starts with the agent's own fixed wording.
  • doctor checks the whole setup and says in plain words what's left to do, grouped by Zed, Rewake, sign-in, scheduled messages and recent problems, with a fix for each and a "start here". It covers:
    • Zed: whether it's installed, and an old version.
    • Zed's settings: AI features or the agent turned off (also in a release-channel or OS section, counted only for an edition of Zed that's installed); a section that sets an agent again without Rewake; Zed's list of agents not downloaded yet.
    • Rewake: agents without it, and why some can't have it; Zed starting an older version, or a Node.js that has moved or is too old; Zed not having started Rewake yet (with where Rewake works and what it can't reach); its folder not writable.
    • Settings that switch features off: automatic resume or the agent's tools, on an agent or in the shell, and Claude Code's own continue setting.
    • Sign-in: an API key given to Claude Agent in Zed's settings, which Zed clears when Rewake runs it; the sign-in kind each agent reported (an API key means no usage windows).
    • Scheduled messages: past due, needs you, failed and missed ones, and the next one.
    • Recently: agents that couldn't start or kept stopping, lost conversations, and messages that failed for sign-in or billing.

    It works offline and prints no folders, accounts, keys or message text; doctor --details adds versions and folders (home shortened to ~) for bug reports.

  • Rewake records the sign-in kind an agent reports to Zed (account, API key, cloud provider, gateway or none), as one word, so doctor can explain it. It never records the account's email, organisation or plan.
  • install explains when it adds Claude Agent because Zed has no external agents yet, warns when Zed's AI features are off, and its next steps name the Agent Panel and its shortcut.
  • install says which version it updates each agent from and to, and doctor's update advice uses npx @codizelabs/agent-rewake@latest install (a bare npx may run a copy it saved earlier).
  • Docs: an Update section with the two steps that work for every version, why each is needed, npm install -g and downgrades, and a table of version-specific steps (none so far). Releases that need more add Upgrade notes here.
  • install and doctor notice other coding agents on the computer (Claude Code, Codex, GitHub Copilot CLI, Grok Build, Gemini CLI, Antigravity) and say plainly that, outside Zed, Rewake doesn't work in them. They only look for the programs and read version files; they never run them. doctor --details lists their versions.
  • Docs: a section on the previews outside Zed (how to install, use and remove each). install and doctor now name the previews you set up, and what each covers.
  • Preview, being tested: Rewake for Gemini CLI and Antigravity's CLI (agy). agent-rewake install --only gemini-cli links a small Gemini CLI extension with Gemini's own command (Gemini asks you to confirm it, and its hooks must be turned on); --only antigravity adds one plugin folder. Both work like Copilot CLI and Grok: when a session stops at a usage limit and is closed, agent-rewake continue continues it after the reset. Antigravity's app and IDE conversations aren't continued. Neither is installed by default.
  • Preview, being tested: Rewake for Grok Build in a terminal. agent-rewake install --only grok adds one hooks file Rewake owns; it works the same way as for Copilot CLI (agent-rewake continue). Grok's weekly limit is told apart from a spending cap, which is never resumed. It isn't installed by default.
  • Preview, being tested: Rewake for GitHub Copilot CLI in a terminal. agent-rewake install --only copilot-cli adds one hooks file Rewake owns. When a session stops at a usage limit and is closed, Rewake tells you, and agent-rewake continue continues the same session after the reset (or agent-rewake continue --always lets it do that by itself when the reset is within a day). It never writes into a session that's open. It isn't installed by default.
  • Preview, being tested: Rewake for Claude Code used on its own, in a terminal or the Claude desktop app's Code tab. agent-rewake install --only claude-code adds a small plugin with Claude Code's own commands. When a usage limit stops a session and Claude Code won't continue it by itself, Rewake asks there and continues the same session after the reset; /rewake schedules messages into the session. It isn't installed by default.
  • Preview, being tested: Rewake for Codex used on its own, in a terminal. agent-rewake install --only codex adds a Codex plugin with Codex's own commands; you trust its hooks in Codex once. When a thread hits its usage limit, type rewake in it, and Rewake continues the same thread when the limit resets (through codex queue). It isn't installed by default.
  • New agent-rewake fire <id>, run by Rewake's own one-shot timers (launchd on macOS, systemd or at on Linux, Task Scheduler on Windows) at a resume's time. It's the base for resuming agents outside Zed and isn't used yet. Agents Rewake runs in Zed are marked, so a later integration for the same agent's own app never resumes them a second time.
  • Scheduled messages saved by a later version of Rewake for an agent this version doesn't support are left alone (never sent, changed or deleted), so going back to an earlier version stays safe.
  • The README, docs and website say who Rewake is for ("Is it for you?"), with a troubleshooting entry for "installed, but nothing happens".

Upgrade notes

  • Zed, if you typed commands: /schedule … is now /rewake …, and /stop is /rewake stop. Zed refuses the old names as unknown commands, so nothing is sent by mistake; type the new name instead. Scheduled messages and settings are unchanged. The Rewake menu works as before.

0.1.1

Fixed

  • A scheduled message that is sent again after a usage limit is no longer shown twice in the thread; Rewake says it's sending it again instead.

0.1.0

First release.

Added

  • Resume after a usage limit, with any agent: the thread offers to resume with an editable message, and sends it when the limit resets (following a later reset if the agent is still limited). Optional automatic resume per thread or for every new thread; it asks first for limits more than a day away and never resumes credit or billing limits.
  • Follow-up messages queued after a resume, sent one after another.
  • Scheduled messages: once, at a time you pick, or repeating (presets or any cron expression, read back in plain words before saving). The agent can propose schedules, which you approve in the thread.
  • The Rewake menu in the thread toolbar, short forms with buttons, and /schedule commands for people who prefer typing.
  • The schedules page for every thread and agent, in Zed's terminal or any terminal (agent-rewake ui).
  • agent-rewake install / uninstall: puts Rewake in front of the agents you already use, under their own names, with backups and comments kept; doctor checks the setup.
  • Works with Claude Agent, Codex, Gemini CLI, GitHub Copilot, OpenCode, goose and every other external agent Zed runs, npm-based or binary, plus custom agents.
  • macOS, Linux (including Flatpak Zed) and Windows.

A project byCodize LabsCodize Labs

Support Agent Rewake on Ko-fi