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