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