slow-command-running
Command Output Logging
When to use this skill
Use it whenever running commands that:
- are slow or long-running or expensive in any way
- are likely to need multiple analyses of their output
- involve API calls or other network operations
- are GitHub CLI commands (
gh) or similar
How it works
Always pipe these commands through tee(1) to capture output to a file while
still displaying it in real-time.
Key Principles
-
Never blindly pipe through
head(1)unless you're sure premature termination via SIGPIPE won't cause problems. -
When tee-ing into a temporary logfile, prefer the
tmp/subdirectory of the repository rather than/tmp, so that you don't have to ask permission for access to/tmp. -
Don't assume
tmp/exists - you might need to create it first.
Usage
-
Create
tmp/directory if it doesn't exist:mkdir -p tmp/ -
Run the command with tee:
command | tee tmp/output.log -
The user can now choose to monitor that log file as it runs.
-
If you subsequently need to examine the output multiple times, reading from the log file prevents needing to re-run the slow command each time.
Examples
# Run tests with logging
mkdir -p tmp/
npm test | tee tmp/test-output.log
# Check GitHub action run
mkdir -p tmp/
gh run view 12345 | tee tmp/action-run-12345.log
# Access some API
mkdir -p tmp/
some-API-call-command | tee tmp/logs.log