Skip to content

Daily Productivity Boosters for Codex

The difference between a 10-minute Codex task and a 3-minute one is rarely the model — it is the workflow around the model. Shell completions, file references, voice dictation, session resumption, and a few non-obvious keyboard shortcuts can cut your daily Codex time in half without changing how you think about prompts.

  • 15+ specific techniques that individually save seconds but compound across a day
  • CLI shortcuts and keyboard bindings you may not know exist
  • Session management patterns that eliminate context re-entry
  • Configuration tweaks that reduce friction on every Codex interaction

Install completions for instant tab-completion of all Codex commands and flags:

Terminal window
# Zsh (add to ~/.zshrc)
eval "$(codex completion zsh)"
# Bash (add to ~/.bashrc)
eval "$(codex completion bash)"
# Fish
codex completion fish | source

Now codex ex<TAB> expands to codex exec and flag names autocomplete.

Type @ in the CLI or App composer to open a fuzzy file search over your workspace. Press Tab or Enter to drop the path into your message. This is faster than typing long file paths manually.

Prefix a line with ! to run a local shell command without leaving Codex:

!git log --oneline -5
!npm test -- --filter=auth
!cat src/routes/users.ts | head -20

Codex treats the output as context for your next prompt.

Never re-explain context. Resume where you left off:

Terminal window
# Resume the most recent session
codex resume --last
# Resume from any directory
codex resume --last --all
# Resume a specific session
codex resume abc12345-...

Want to explore an alternative approach without losing your current thread?

Terminal window
codex fork --last

This creates a new thread with the full transcript of your previous session, letting you branch the conversation.

ShortcutAction
Cmd + JToggle integrated terminal
Cmd + KCommand palette
Ctrl + M (hold)Voice dictation
Ctrl + LClear terminal
Esc (2x)Edit previous user message
Enter (while running)Inject instructions into current turn
Tab (while running)Queue a follow-up prompt for next turn

Hold Ctrl + M while the composer is visible and start talking. Codex transcribes your speech. Edit the transcription or hit send directly. This is faster than typing for complex, conversational prompts.

Drag and drop screenshots into the composer. Hold Shift while dropping to add as context rather than replacing the current prompt.

Make file paths in Codex output clickable:

~/.codex/config.toml
file_opener = "cursor" # or vscode, vscode-insiders, windsurf

Now /home/user/project/main.py:42 becomes a clickable link that opens the file at that line.

In the App settings, enable “Prevent sleep while running” so your machine stays awake during long Codex tasks and automations.

~/.codex/config.toml
[profiles.review]
model = "gpt-5.3-codex"
model_reasoning_effort = "high"
approval_policy = "never"
[profiles.quick]
model = "gpt-5.1-codex-mini"
approval_policy = "on-request"

Switch profiles on the fly: codex --profile review or codex --profile quick.

[tui]
animations = false
show_tooltips = false

Get notified when a task completes:

notify = ["terminal-notifier", "-title", "Codex", "-message"]

Or restrict TUI notifications to specific events:

[tui]
notifications = ["agent-turn-complete", "approval-requested"]
  1. Morning: Check the Triage inbox for overnight automation results
  2. Planning: Use codex "Propose a plan for today's tickets" with your issue tracker MCP
  3. Development: Run 2-3 parallel worktree threads for independent tasks
  4. Review: Use /review before committing, then $pr-ready to prepare the PR
  5. End of day: Archive completed threads, check /status for remaining limits
  • Shell completions not working: Ensure the eval line is after any compinit calls in your shell config. Restart your shell after adding it.
  • Voice dictation inaccurate: Speak clearly and at a moderate pace. Edit the transcription before sending. It works best for conversational prompts rather than code-specific terminology.
  • Profiles not loading: Check that the profile name matches exactly (case-sensitive). Use codex --profile <name> with the exact name from your config.
  • Notifications not firing: On macOS, check System Settings > Notifications for both the Codex App and your terminal emulator.