# linux-philosophy > Unix/Linux design principles for CLI tools and system architecture. - Author: Xantibody - Repository: Xantibody/dotfiles - Version: 20260119150933 - Stars: 1 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/Xantibody/dotfiles - Web: https://mule.run/skillshub/@@Xantibody/dotfiles~linux-philosophy:20260119150933 --- --- name: linux-philosophy description: Unix/Linux design principles for CLI tools and system architecture. --- # Unix/Linux Philosophy ## Core Principles 1. **Do one thing well** - Each program/function should have a single purpose 2. **Compose with others** - Design for pipelines and composition 3. **Text streams** - Use text as universal interface 4. **Small, sharp tools** - Prefer focused tools over monolithic solutions 5. **Fail fast, fail loudly** - Exit on error with clear messages ## Design Guidelines - Prefer explicit over implicit behavior - Make default behavior safe; require flags for dangerous operations - Support stdin/stdout for composition - Use exit codes meaningfully (0=success, non-zero=error) - Write to stderr for diagnostics, stdout for output ## Checklist - [ ] Single responsibility per module/function - [ ] Composable via standard I/O - [ ] Clear error messages to stderr - [ ] Meaningful exit codes - [ ] No hidden side effects