-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Description
What feature would you like to see?
I would like the ability to see the real-time stdout
and stderr
from long-running shell commands that Codex executes, especially those run via MCP tools.
Currently, when Codex runs a command like npm run test:e2e
or a large npm install
, the TUI only displays a generic spinner (e.g., ⠏ Running npm run test:e2e
). This provides no visibility into the progress, output, or potential errors of the underlying process.
The ideal behavior would be for the output of that command to be streamed directly into the TUI, below the "Running..." indicator. This would allow users to:
- Monitor the progress of the task (e.g., see test suites running, files being compiled).
- Debug issues in real-time if the command produces errors.
- Know that the process has not hung or stalled.
This would significantly improve the user experience and build confidence that Codex is actively working on the task.
Additional information
I encountered this issue while using the Playwright MCP to run end-to-end tests on a project. Codex correctly identified the task, created a plan, installed dependencies, and then initiated the test command: npm run test:e2e
.
At this point, the UI showed a spinner and the message ⠏ Running npm run test:e2e
for over 20 minutes with no further updates or information. I had no way of knowing if the tests were running, stalled, or had failed. The Playwright test runner typically has a rich, detailed output showing which tests are running, passing, or failing, all of which was completely hidden.
While my specific case was with Playwright, this feature is essential for any potentially long-running process, such as:
- Running database migrations (
prisma migrate dev
). - Complex build scripts (
npm run build
). - Large dependency installations (
npm install
).
Providing this visibility is critical for a tool designed for developers.
TUI log showing the stall point:
Click to expand agent log
› use the playwright mcp to extensively test this project. make a plan first.
• Updated Plan
└ □ Review available Playwright tooling and existing test structure to understand required setup.
□ Install dependencies and ensure test environment prerequisites are satisfied.
□ Execute Playwright end-to-end suites via MCP integration with appropriate configurations.
□ Summarize results and note any observed failures or follow-ups.
• Explored
└ List e2e
List ls
Read playwright.config.ts, playwright-global-setup.ts
Search MCP
• Updated Plan
└ ✔ Review available Playwright tooling and existing test structure to understand required setup.
□ Install dependencies and ensure test environment prerequisites are satisfied.
□ Execute Playwright end-to-end suites via MCP integration with appropriate configurations.
□ Summarize results and note any observed failures or follow-ups.
• Explored
└ Read env.setup.js
List ls -a
Read .env.test
List supabase
Read package.json
• Ran node -v
└ v24.8.0
• Ran npm install
└
added 14 packages, and audited 1113 packages in 2s
… +3 lines
found 0 vulnerabilities
• Explored
└ Read .env
• I’m considering the implications of running tests that connect to a remote Supabase instance using provided
credentials, which might modify real data. I want to ensure safe setup by verifying connectivity without
destructive actions and confirming necessary dependencies like Playwright are installed before proceeding.
• Ran npx playwright install
└ (no output)
• Updated Plan
└ ✔ Review available Playwright tooling and existing test structure to understand required setup.
✔ Install dependencies and ensure test environment prerequisites are satisfied.
□ Execute Playwright end-to-end suites via MCP integration with appropriate configurations.
□ Summarize results and note any observed failures or follow-ups.
• Explored
└ Read video-features-mcp-headless.spec.ts
• I’m making sure the app server and Supabase environment are properly set up for running npm run test:e2e. The
tests rely on remote Supabase for login and API routes, so environment variables from .env must be loaded. I'll
run all tests across browsers, noting they might be time-consuming but should pass since some tests auto-pass
while others expect manual steps.
⠏ Running npm run test:e2e
• Preparing to run Playwright tests (23m 49s • esc to interrupt)