Welcome to the OSA (Open Source Automation) documentation! This directory contains detailed guides and references for using and developing OSA.
- Setup Guide - First-time setup, CLI commands, troubleshooting
- Configurations - Security model, recommended apps, workspace benefits
- Constructors - Machine-specific overrides, secrets management, initialization
- MPC CLI - OSA helper commands (mpc setup, mpc update, etc.)
- WSL & Docksal - Windows Subsystem for Linux and Docksal setup
- PhpStorm Plugins - IDE plugin recommendations
- Release Management - Versioning, changelogs, automated releases
- Remote Config Testing - Testing and validating remote configurations
- Security Testing - Security validation and vulnerability prevention
-
Setup Guide (
setup-guide.md)- First-time setup instructions
- Interactive vs automated setup
- Mise runtime manager
- Troubleshooting and recovery
-
Configurations (
configurations.md)- Security model explanation
- Why OSA is safer than traditional dotfiles
- Recommended applications and workflows
- Real-world usage scenarios
-
Constructors (
constructors.md)- How to add machine-specific configuration
- Where to store secrets safely
- Init vs final constructors
- .gitignore patterns for secrets
-
MPC CLI (
mpc-cli.md)- Helper command overview
- Available commands
- Usage examples
-
WSL & Docksal (
wsl-docksal.md)- WSL 2 setup instructions
- Docksal containerization
- Platform-specific considerations
-
PhpStorm Plugins (
phpstorm-plugins.md)- Recommended IDE plugins
- Configuration tips
- Development environment setup
-
Release Management (
release-management.md)- Semantic versioning workflow
- Automated releases via GitHub Actions
- Changelog generation
-
Remote Config Testing (
remote-config-testing.md)- Testing remote configurations
- Security considerations
- Team workflow examples
OSA Scripts Repository - Community-contributed shell helpers and productivity functions.
- Automatically installed during OSA setup as a core component
- Located at
src/zsh/snippets/(in the repo, tracked in.gitignore) - Contains productivity helpers, utility functions, and shell shortcuts
- Optional - can be disabled with
--disable-osa-snippetsflag - Customize source with
SNIPPETS_REPOenvironment variable during setup
Want to contribute? See the osa-scripts repository for guidelines.
- Code contributions: See CONTRIBUTING.md
- Helper functions: Submit to osa-scripts
- Bug reports: Open an issue on GitHub
- Documentation: Submit PR with improvements
- Start with the Setup Guide
- Run:
./osa-cli.zsh --interactive - Read Configurations to understand the security model
- Check Constructors if you need machine-specific settings
- Read CONTRIBUTING.md in the root directory for code standards
- Check Constructors for adding configuration
- See MPC CLI for helper commands
- Review test documentation:
tests/README.md
Each guide includes:
- Purpose: What the guide covers
- Quick Start: Getting started quickly
- Examples: Real-world usage examples
- Troubleshooting: Common issues and solutions
- References: Related documentation
All documentation should:
- Use clear, concise language
- Include examples where relevant
- Link to related documents
- Provide troubleshooting steps
- Stay up-to-date with code changes
If documentation is unclear or outdated:
- Open an issue on GitHub
- Submit a pull request with improvements
- Ask in discussions
First-time setup:
./osa-cli.zsh --interactiveUse saved configuration:
./osa-cli.zsh --autoClean and reinstall:
./osa-cli.zsh --clean --minimalCheck installation health:
./osa-cli.zsh --doctorSee all available commands:
./osa-cli.zsh --helpManage runtime versions:
mise install # Install all runtimes from .mise.toml
mise use node@20 # Switch Node.js version
mise list # Show installed versions- 📁 Root: README.md, CONTRIBUTING.md
- 📁 Tests: tests/README.md
- 📁 Source: src/
- 📁 Configs: configs/
- 📁 Scripts: cleanup-symlinks.zsh, osa-cli.zsh
Last Updated: November 2, 2025