{"slug": "7-free-ways-to-stop-chatgpt-from-eating-your-cpu-ram-and-disk", "title": "7 Free Ways to Stop ChatGPT From Eating Your CPU, RAM, and Disk", "summary": "ChatGPT's desktop app, Codex CLI, and IDE extension can cause local CPU, RAM, and disk spikes during coding tasks. A July 24, 2026 guide from ChatGPT documentation recommends seven free fixes, starting with diagnosing the hot component via Task Manager or Resource Monitor before applying targeted solutions such as starting each new task in a fresh thread to cut RAM usage.", "body_md": "# 7 Free Ways to Stop ChatGPT From Eating Your CPU, RAM, and Disk\n\nJuly 24, 2026\n\nChatGPT performance in coding work becomes a local problem when Codex pegs a core, keeps growing in memory, or writes to disk after the action ends. These seven free fixes target Codex inside the ChatGPT desktop app, Codex CLI, and the IDE extension, not ordinary ChatGPT web chats, so match the hot renderer, thread, Git process, MCP helper, or logging path to its zero-cost fix.\n\n[Start With a ChatGPT Performance Diagnosis#](#start-with-a-chatgpt-performance-diagnosis)\n\n[Fix 1: Diagnose the hot component before changing anything#](#fix-1-diagnose-the-hot-component-before-changing-anything)\n\nA slow answer is one problem. A hot local process is another.\n\nReproduce the slowdown while watching Task Manager or Resource Monitor on Windows, Activity Monitor on macOS, or a process monitor on Linux. Compare the same action before and after one change.\n\n- Record the process name and its parent process.\n- Watch the CPU trend while the action runs and after it stops.\n- Note whether memory climbs, settles, or falls.\n- Capture disk writes and their destination.\n- Write down the exact action that wakes the process.\n\nKeep the monitor open before you trigger the problem and until the system settles again. A brief launch spike differs from sustained load or memory that keeps climbing; for disk, capture both the writer and destination.\n\nWhen a current Codex CLI is installed, `codex doctor --summary`\n\nis an optional static health and configuration baseline from the official [developer commands](https://learn.chatgpt.com/docs/developer-commands?surface=cli#cli-codex-doctor). It is not a live CPU, RAM, or disk profiler.\n\n```\ncodex doctor --summary\n```\n\nRoute the symptom to the component\n\n| Symptom | Candidate component to verify | First action |\n|---|---|---|\n| Desktop window freezes or scrolls badly | Renderer, app-server, GPU, or another child | Verify the process tree while reopening the thread |\n| IDE stays busy while idle | IDE extension or one of its children | Confirm ownership, then restart or temporarily disable it |\n| Workspace fans spin during Git activity | Git child or workspace watcher | Verify the child, then inspect tracked and watched bulk |\n| Helper remains active after client work ends | Configured MCP server process | Confirm the owner and lifecycle, then identify the server |\n| One old task restores slowly | Renderer or app-server handling retained state | Compare the old task with a fresh text thread |\n| Disk writes continue while the UI lags | Owning writer process | Identify the process and destination before changing logging |\n\nUse the table to choose the next test. Its middle column lists hypotheses from affected reports, so process ancestry and a repeated action still have to confirm the candidate.\n\nLocal stalls and slow remote answers can look identical inside the chat window. A renderer spike tied to one old thread calls for a thread test, while Git activity tied to one workspace calls for a repository test.\n\nThe absence of sustained load leaves the cause unresolved. Compare another workspace or client, and inspect short spikes, I/O wait, GPU activity, and child processes. If every client only waits on answers, check networking and service status.\n\n[Cut Thread RAM and Restore Work#](#cut-thread-ram-and-restore-work)\n\n[Fix 2: Start each new task in a fresh thread#](#fix-2-start-each-new-task-in-a-fresh-thread)\n\nA long active thread carries old messages, tool results, compaction history, and visual context. Starting the next task with **New chat** leaves the prior session intact while dropping that history from the active job. OpenAI documents New chat as a first-class [desktop command](https://learn.chatgpt.com/docs/reference/commands.md).\n\nNew chat changes the active working context. It does not erase the prior conversation or repair a service incident. That makes it a low-risk test when one task grows heavy and other local Codex work remains responsive.\n\nWhen one old task is the only place memory keeps climbing, a fresh thread is the safest first test. The old session stays available.\n\n- Goal: the result you are trying to reach now\n- Decisions: choices already accepted and why\n- Constraints: requirements that still apply\n- Relevant files or assets: names and locations for the current task\n- Current state: the latest result and failing check\n- Next action: the first concrete step in the new thread\n\nThe fresh thread removes prior messages and tool output from its active context. Verify whether that lowers the resource trend you recorded. If the old thread will not open, rebuild the short handoff from current files and memory.\n\n[Fix 3: Bound retained tool output and compaction#](#fix-3-bound-retained-tool-output-and-compaction)\n\nLarge test logs, broad repository searches, and repeated tool dumps can dominate retained history. Narrow the command before changing retention.\n\nThese controls affect what the conversation retains. They do not make a slow test, search, or build execute faster. Fix the command when execution is slow, then use retention controls when the completed output keeps swelling the thread.\n\nCodex reads these controls from `$CODEX_HOME/config.toml`\n\n, as documented in the official [sample configuration](https://learn.chatgpt.com/docs/config-file/config-sample.md). `model_auto_compact_token_limit`\n\nsets the automatic compaction threshold, while `tool_output_token_limit`\n\nbounds tokens retained from each tool result.\n\nWarning:The values below are documentation examples, not recommendations. Record your current state before editing either key.\n\n```\n# Documentation examples only\nmodel_auto_compact_token_limit = 64000\ntool_output_token_limit = 12000\n```\n\nThe sample values demonstrate valid integer syntax. They say nothing about the right limit for your model or workload, so the before-and-after process measurement remains the deciding evidence.\n\n- Record whether each key is absent or note its current value.\n- Start a fresh task and capture the baseline process and memory trend.\n- Change one key only, then rerun the same output-heavy workload.\n- Check whether the measured process improves and required evidence remains visible.\n- Remove the new line or restore the prior value when evidence disappears or the process remains hot.\n\nNo universal value fits every model and task. These Codex performance settings affect the local desktop, CLI, and IDE configuration layers. Ordinary ChatGPT web ignores them.\n\nA lower retained-output limit can hide the failure line you needed. Earlier compaction can also drop useful history, which is why the rollback step belongs in the fix.\n\n[Fix 4: Split image-heavy work into short visual threads#](#fix-4-split-image-heavy-work-into-short-visual-threads)\n\nIn one staged Windows report from the ChatGPT desktop app's Codex view, [a window containing two images opened in 21.7 seconds while a different window containing 40+ opened in 313.7 seconds](https://github.com/openai/codex/issues/20544). The model, search use, session profile, record count, and stage order also changed.\n\nTreat the case as an early warning. Reset the visual thread when restore or input lag repeatedly blocks the task, and keep the previous session as the record.\n\nStore accepted images and historical drafts in the project or another external library. The next thread should receive the current visual evidence plus the text checkpoint. Reattach an older frame when comparing it can change the decision.\n\n- Finish one review pass or visual decision.\n- Write the accepted result, unresolved defect, and next action as text.\n- Open a fresh thread and attach the minimum current visual evidence.\n- Keep older screenshots externally and attach one only when the comparison changes the next decision.\n\nRollout JSONL edits and session-index repair sit outside supported cleanup. A fresh thread changes active context without hidden-state surgery.\n\n[Stop Workspace and Helper CPU Loops#](#stop-workspace-and-helper-cpu-loops)\n\n[Fix 5: Keep generated data outside watched and tracked workspaces#](#fix-5-keep-generated-data-outside-watched-and-tracked-workspaces)\n\nGenerated recordings and build products can make Git or workspace watchers busy. One [affected repository report](https://github.com/openai/codex/issues/20200) associated about 28,000 tracked generated files with a Git child-process storm. It documents one affected pattern and establishes no safe repository-size boundary.\n\nA high-CPU report becomes actionable when the spike follows one workspace. Repeat the idle test in a small repository or empty folder; if the Git child settles there, inspect the original repository.\n\nMove only regenerable bulk, and first confirm the build can find it elsewhere. Keep source inputs and regeneration instructions in the project. Coordinate repository-wide tracking changes with the team.\n\n- Identify the directory tied to the repeatable Git or watcher spike.\n- Classify its contents as source, dependency, cache, recording, generated output, or user data.\n- Preserve anything non-regenerable before moving a byte.\n- Move regenerable bulk outside the watched workspace when the build allows it.\n- Reproduce the same action and recheck the Git child or watcher.\n\nWarning:Adding a path to`.gitignore`\n\ndoes not untrack files already committed. Stopping tracking is an intentional repository change that should be reviewed with the team.\n\nThe distinction is mechanical. `.gitignore`\n\nprevents matching untracked files from being added later, while committed files stay in the index. Any removal from tracking changes the repository and can affect teammates, automation, and deployments.\n\n[Fix 6: Disable unused MCP servers and verify helper lifecycle#](#fix-6-disable-unused-mcp-servers-and-verify-helper-lifecycle)\n\nLocal STDIO MCP servers run as local processes for the life of their owning client. Call a helper stuck only when the exact child remains unexpectedly after that client ends or restarts. OpenAI's [MCP documentation](https://learn.chatgpt.com/docs/extend/mcp.md) supports listing and disabling configured servers.\n\nCapture the helper PID and parent before restart. After the owner exits, verify whether the same child survives and stays active. A newly launched child after restart is a different lifecycle observation.\n\n```\ncodex mcp list\n```\n\nFor a server ID you have confirmed is unused, keep the definition and change its enabled state.\n\n```\n[mcp_servers.example]\nenabled = false\n```\n\nReplace `example`\n\nwith the configured server ID. Restart the exact owner: ChatGPT desktop app, IDE extension, or the Codex CLI session. Recheck the same child process.\n\nDisabling preserves the server definition. Compare idle use after the restart, then run the workflow that launched the helper. Re-enable the server if the symptom persists and its capability is required.\n\n[Reduce Disk Churn Without Deleting Sessions#](#reduce-disk-churn-without-deleting-sessions)\n\n[Fix 7: Stop unnecessary logging growth and clean state safely#](#fix-7-stop-unnecessary-logging-growth-and-clean-state-safely)\n\nOld reports of huge plaintext logs still surface in disk-usage searches. For the CLI/TUI, current [OpenAI environment documentation](https://learn.chatgpt.com/docs/config-file/environment-variables.md) says interactive diagnostics are bounded by default, while plaintext `codex-tui.log`\n\nis opt-in through `log_dir`\n\n.\n\nThose three names are CLI/TUI checks. On macOS, desktop app logs are documented under `~/Library/Logs/com.openai.codex/YYYY/MM/DD`\n\n. For another surface, open its diagnostics and identify the actual writer process and destination.\n\nCheck whether `RUST_LOG`\n\nstill requests debug or trace output and whether `log_dir`\n\nremains after CLI troubleshooting. Remove temporary verbosity when the run ends. Preserve a needed log and inspect it for secrets before sharing.\n\n- Logs and bounded diagnostics explain behavior on their owning surface.\n- Active and archived session transcripts live in separate directories under CODEX_HOME.\n- SQLite-backed application state uses\n`CODEX_SQLITE_HOME`\n\nor`sqlite_home`\n\n. - Configuration and authentication remain separate state.\n\nThe supported command [ codex archive <session-id-or-name>](https://learn.chatgpt.com/docs/developer-commands?surface=cli#cli-codex-archive-and-codex-unarchive) organizes saved sessions without deleting their transcripts; resolve and verify the exact target first, and preserve anything irreplaceable. Archiving does not stop an active writer or guarantee disk reclamation.\n\nSkip hidden-directory cleanup, generic cache cleaners, rollout edits, and SQLite or WAL surgery. They can destroy history while missing the writer responsible for the churn. Fix the active logging override or component, then reproduce the original disk symptom.\n\n[Choose One Fix From the Hot Component#](#choose-one-fix-from-the-hot-component)\n\nBranch from the component you verified. Change one related thing, and restart only when that fix calls for it.\n\nAfter the change, reproduce the same symptom and watch the same process. If the spike remains, return to Fix 1 and verify the next candidate.\n\nAn absent sustained spike leaves several local possibilities open, including short bursts, I/O wait, GPU work, or a stalled child. Compare another workspace or client before moving to network, model, or service checks.\n\nWhen my machine heats up, I trust the process tree, trigger, and before-and-after resource trend more than another speculative tweak. Save that record for the next recurrence.", "url": "https://wpnews.pro/news/7-free-ways-to-stop-chatgpt-from-eating-your-cpu-ram-and-disk", "canonical_source": "https://rizz.dev/blog/guides/chatgpt-performance-free-cpu-ram-disk-fixes", "published_at": "2026-07-24 00:00:00+00:00", "updated_at": "2026-07-24 18:11:08.075425+00:00", "lang": "en", "topics": ["artificial-intelligence", "developer-tools", "ai-tools"], "entities": ["ChatGPT", "Codex CLI", "OpenAI"], "alternates": {"html": "https://wpnews.pro/news/7-free-ways-to-stop-chatgpt-from-eating-your-cpu-ram-and-disk", "markdown": "https://wpnews.pro/news/7-free-ways-to-stop-chatgpt-from-eating-your-cpu-ram-and-disk.md", "text": "https://wpnews.pro/news/7-free-ways-to-stop-chatgpt-from-eating-your-cpu-ram-and-disk.txt", "jsonld": "https://wpnews.pro/news/7-free-ways-to-stop-chatgpt-from-eating-your-cpu-ram-and-disk.jsonld"}}