Startup time 20 seconds and resume 20 seconds.
Open 💬 4 comments Opened Apr 21, 2026 by miniq15
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
What version of Codex CLI is running?
codex-cli 0.122.0
What subscription do you have?
pro
Which model were you using?
gpt-5-4
What platform is your computer?
Linux 6.17.0-22-generic x86_64 unknown
What terminal emulator and version are you using (if applicable)?
A terminal inside VScode and default linux terminal.
What issue are you seeing?
Codex starts 10 or more seconds. /resume takes 20 more seconds. then when i choose exact session another 10 sec of loading. It is not OKAY.
What steps can reproduce the bug?
Idk. i guess a lot of sessions and ubuntu.
What is the expected behavior?
_No response_
Additional information
codex`s answer
- codex --help starts in 0.07s, so the binary/Homebrew/Node wrapper is fine.
- This folder is tiny, so it is not scanning your university project.
- You currently have about 8 active codex --yolo sessions still running, plus 1 stopped Codex process, plus 2 VS Code Codex app servers.
- ~/.codex is 7.5 GB.
- ~/.codex/sessions is 6.3 GB with 3067 session files. Some are huge: one is 415 MB, 117 are over 10 MB.
- Codex TUI log is huge: about 714-748 MB.
› it works the same with any terminal. I dont use any plugins. Memories dont help, because i had the same delay before memories inside newest version.
codex`s answer
• Then terminal/plugins/memories are not the main cause.
Most likely common cause is Codex local state/session storage, because it affects every terminal and also affects resume.
Specifically: Codex startup touches:
- ~/.codex/state_5.sqlite
- ~/.codex/logs_2.sqlite
- ~/.codex/sessions/**
- big ~/.codex/log/codex-tui.log
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
› let's delete all old sesions. all older then 5 days
• I’ll delete only session files under ~/.codex/sessions older than 5 days, not any running Codex processes. I’ll first count and list what matches, then remove those files and clean empty date directories.
• Explored
└ List sessions
List sessions
• Ran find /home/william3/.codex/sessions -type f -mtime +5 -printf '%s %TY-%Tm-%Td %TH:%TM %p\n' | sort -nr | tee /tmp/codex-old-sessions.txt | sed -n '1,40p'; printf 'count='; wc -l < /tmp/codex-old-sessions.txt; printf 'bytes='; awk '{s+=$1} END{print s+0}' /tmp/
│ codex-old-sessions.txt
└ 414952459 2026-02-26 12:26 /home/william3/.codex/sessions/2026/02/25/rollout-2026-02-25T20-32-09-019c9612-a22c-77d3-a924-4d85d3c1daf8.jsonl
88606559 2026-03-08 18:29 /home/william3/.codex/sessions/2026/03/07/rollout-2026-03-07T19-46-21-019cc968-4ca6-78b3-90df-72d33bf2bd0a.jsonl
… +38 lines (ctrl + t to view transcript)
count=2926
bytes=6227027877
• Ran find /home/william3/.codex/sessions -type f -mtime +5 -print0 | xargs -0r lsof 2>/dev/null | sed -n '1,80p'
› uits achive them , eot deluet. sam do with huge logs.
• I’ll archive, not delete. For old session JSONL files I’ll move them into a timestamped archive directory; for the live text log I’ll copy it to the archive and truncate the original so running Codex can keep writing to the same path. I won’t touch or stop Codex
processes.
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• The archive operation is running. It is moving about 2,900 old session files and copying the large log files, so it may take a bit longer than the listing step.
• Waited for background terminal · set -euo pipefail
archive_root="/home/william3/.codex/archive/2026-04-21-old-sessions-and-logs"
sessions_archive="$archive_root/sessions"
logs_archive="$archive_root/logs"
mkdir -p "$sessions_archive" "$logs_archive"
Archive session files older than 5 days, preserving relative paths under ~/.codex/sessions.
find /home/william3/.codex/sessions -type f -mtime +5 -print0 |
while IFS= read -r -d '' file; do
rel="${file#/home/william3/.codex/sessions/}"
dest="$sessions_archive/$rel"
mkdir -p "$(dirname "$dest")"
mv "$file" "$dest"
done
Remove empty session date directories left behind.
find /home/william3/.codex/sessions -depth -type d -empty -delete
Archive huge text log without breaking open file descriptors.
if [ -f /home/william3/.codex/log/codex-tui.log ]; then
printf 'archive=%s\n' "$archive_root"
printf 'archived_session_files='; find "$sessions_archive" -type f | wc -l
printf 'archived_session_size='; du -sh "$sessions_archive" | cut -f1
printf 'archived_logs_size='; du -sh "$logs_archive" | cut -f1
printf 'current_text_log_size='; du -h /home/william3/.codex/log/codex-tui.log | cut -f1
• Ran set -euo pipefail
│ archive_root="/home/william3/.codex/archive/2026-04-21-old-sessions-and-logs"
│ sessions_archive="$archive_root/sessions"
current_text_log_size=4.0K
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• The file archive is done. One important follow-up: Codex also has a threads table used by resume, so I’m going to mark threads older than 5 days as archived in SQLite instead of deleting rows. I’ll copy the state DB first.
• Ran set -euo pipefail
│ archive_root="/home/william3/.codex/archive/2026-04-21-old-sessions-and-logs"
│ mkdir -p "$archive_root/state-db"
│ … +20 lines
└ state_backup=/home/william3/.codex/archive/2026-04-21-old-sessions-and-logs/state-db
threads_total=3056
… +2 lines (ctrl + t to view transcript)
visible_after=103
old_visible_after=0
• Explored
└ List 2026-04-21-old-sessions-and-logs
List logs
• Ran du -sh /home/william3/.codex/sessions /home/william3/.codex/log /home/william3/.codex/logs_2.sqlite /home/william3/.codex/archive/2026-04-21-old-sessions-and-logs 2>/dev/null; find /home/william3/.codex/sessions -type f | wc -l; sqlite3 /home/william3/.codex/
│ state_5.sqlite "select count(*) as visible from threads where archived=0;"
└ 469M /home/william3/.codex/sessions
52K /home/william3/.codex/log
… +2 lines (ctrl + t to view transcript)
141
103
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
• Archived, not deleted.
What changed:
/home/william3/.codex/archive/2026-04-21-old-sessions-and-logs/sessions
/home/william3/.codex/log/codex-tui.log
I did not remove any Codex processes.
One thing left: live logs_2.sqlite is still 479M. I copied it into the archive, but did not shrink/move the live DB because Codex processes have it open. Compacting that should be a separate maintenance step when you choose.
I fixed issue locally asking Codex to remove logs and sesions older then 5 days.
etraut-openai
removed
CLI
Issues related to the Codex CLI
.
Why it is . it is codex cli
Additional datapoint on macOS /
codex-cli 0.133.0.Environment
25B78), arm64Symptoms
doctor/ resume became extremely slow on one machine with large local Codex state~/.codexState sizes before cleanup
~/.codex/log/codex-tui.log:71,357,455,830bytes (~66.5 GiB)~/.codex/logs_2.sqlite:844,046,336bytes (~805 MiB)~/.codex/sessions:2,937active rollout files,3.43 GB~/.codex/archived_sessions:0files~/.codex/cape_reports_malicious_md~1.01 GB,~/.codex/generated_images~476 MB,~/.codex/.tmp~172 MBWhat improved things immediately
~/.codex/log/codex-tui.log2,789old session files (~2.39 GB) out of~/.codex/sessionsinto~/.codex/archived_sessionsState after cleanup
~/.codex/log/codex-tui.log: ~43 KB~/.codex/sessions:148active rollout files,1.20 GB~/.codex/archived_sessions:2,789files,2.39 GBThis strongly suggests local state growth, especially the unbounded TUI log and large active session set, can materially degrade CLI startup / resume paths.
Likely follow-ups on the product side
logs_2.sqliteandsessions