A usage limit restricts how much Claude can be used over a given time window, whereas context window limits constrain a single conversation's capacity. If your context window is simply full, use /compact or /clear inside Claude Code. If you have hit an account usage limit and need to switch agents, Watch transfers your saved local session history into Codex. Watch does not bypass limits or alter local repository files.
During prolonged engineering tasks, Claude Code may report that you have reached your plan limit along with a reset timestamp. The reasoning, failed iterations, and command outputs accumulated so far remain on your disk. Watch bridges this saved session into OpenAI Codex, allowing the new tool to inspect preceding context without requiring you to manually summarize the investigation.
Step 1: Verify source session ID and working directory
Locate the active Claude Code session ID. History is stored under ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl. Ensure the directory path (cwd) matches the actual project workspace to prevent worktree and repository misalignments.
Step 2: Ensure target project exists in Codex Desktop
Under official external agent import requirements, the destination workspace must already be registered in Codex Desktop. Open the folder in Codex Desktop beforehand to establish local trust and project recognition.
Step 3: Prepare the import plan (Prepare)
In Watch Desktop, select the source session and click OpenAI Codex, or run the prepare CLI command. This stage performs read-only checks, verifies lock status, and establishes an execution journal without modifying target files.
Step 4: Confirm import and review degradation items (Confirm)
Review the previewed message count, working directory, and tool call traces. Explicitly confirm to initiate the transfer via the local Codex app-server import protocol. Note that tool call events may degrade into text representations.
Step 5: Launch the target client independently (Open)
Once confirmed, open Codex Desktop using the app interface or resume command. Import and opening are strictly separated: if launching fails, retry opening only without repeating the import phase.
# 1. Prepare import plan (read-only probe and plan generation)
npm run watch -- import-codex prepare <claude-id> --cwd /abs/project/path --desktop-project --experimental --json
# 2. Confirm and execute import (using planId from prepare output)
npm run watch -- import-codex confirm <plan-id> --json
# 3. Check execution status (read-only probe if interrupted)
npm run watch -- import-codex status <plan-id> --jsonWhen your terminal displays these messages, you have hit an account-level usage limit rather than a conversation context limit: • "You have reached your 5-hour limit for Claude 3.7 Sonnet / Opus. Limit will reset at 14:30." • "Weekly usage limit reached. Your quota resets on Monday at 00:00 UTC." • "Rate limit exceeded for organization. Please wait before retrying." In these scenarios, running /compact inside Claude Code cannot restore or free up model quota.
Claude Code records sessions under ~/.claude/projects/<encoded-cwd>/<session>.jsonl. During Watch import, proprietary tool_use and tool_result events are converted into structured plain-text markdown records inside Codex rollout sessions. This supplies the target agent with complete investigation history while avoiding forged native blocks that break Codex resume integrity.
1. No lossless guarantee: Tool call structures degrade to plain text in Codex, and model continuation is outside the limited validation scope. 2. Stop on uncertain state: If the process is interrupted or times out, the lock is retained. Inspect with the status command rather than forcibly deleting locks or re-submitting. 3. Local conversion is not fully offline: While Watch operates without external servers, Codex invokes its own app-server daemon and authenticates with its upstream model provider.