The purr-fect configuration management framework for crafting reproducible developer environments across macOS and Linux.
Full Documentation • Architecture • Installation • Component Guide • Contributing
The .meow dotfile and environment management tool, based on BASH 3.2, is officially deprecated and is no longer actively maintained.
Effective Immediately: No further features will be developed.
This decision stems from fundamental architectural limitations within BASH 3.2 (lack of reliable data structures, associative arrays, and testability), which prohibit achieving our goals of a clean, reliable, and testable system.
Development has been fully rebooted on a new architecture. We are migrating to meowctl, a new, statically compiled Go configuration management tool, which resolves these core architectural issues.
➡️ Migration Path: Users are strongly advised to follow the development of meowctl, as its architecture will be designed for backward-compatible migration of the existing component structure.
➡️ New Repository: github.com/retran/meowctl
Setting up a consistent and reproducible development environment is often a tedious, manual process prone to errors. .meow solves this by providing a modular, declarative configuration management framework that automates the setup of developer environments across diverse operating systems. It's more than just dotfiles; it's a powerful system for defining, installing, and managing your entire development stack with idempotent operations, ensuring your environment is always in the desired state.
.meow is built for professionals who value automation, reproducibility, and control over their development environments:
- Polyglot Developers who work across multiple languages and frameworks and need consistent setups.
- DevOps Engineers who provision and manage developer workstations or CI/CD environments.
- System Tweakers who demand precise control and automation over their macOS and Linux systems.
- 🧩 Component-Based Architecture: Build your environment from isolated, reusable components, each defined by a clear manifest and containing its own packages, configurations, and scripts.
- 📦 Universal Package Management: Seamlessly handle package installations across macOS (Homebrew, mas) and Linux (apt, dnf, pacman, apk) through a unified abstraction layer.
- 📑 Presets (Den & Litterbox): Apply configurations called Presets to quickly deploy tailored setups.
- 🔄 Idempotent Operations: Run setup scripts multiple times safely;
.meowensures that actions are only taken if necessary, bringing your system to the desired state without unintended side effects, a core principle of the framework. - ⚡ Zero Dependencies: The core framework is written in pure Shell (Bash/Zsh) and requires only
gitandcurlto bootstrap, ensuring maximum portability and minimal overhead. It is also compatible with Bash 3.2, which is the default on macOS.
For detailed instructions, please see the Full Installation Guide.
git clone [https://github.com/retran/meow.git](https://github.com/retran/meow.git) ~/.meow
cd ~/.meowBefore installing a preset, set up your personal configuration. This ensures your Git identity and secrets are correctly linked.
# Global settings
cp private/meow/config.yaml.example private/meow/config.yaml
# Git identity (Name, Email)
cp private/git/.gitconfig.example private/git/.gitconfig
nano private/git/.gitconfigList available presets to find one that matches your needs:
./bin/meowctl listApply the chosen configuration.
For a personal workstation (The Den):
./bin/meowctl install den-personalFor ephemeral environments (The Litterbox):
# Go Development
./bin/meowctl install litterbox-go
# Python & Data Science
./bin/meowctl install litterbox-pythonHappy coding with project meow! 🐱
⭐ Star us on GitHub • 🐛 Report Bug • 💡 Request Feature • 🔀 Contribute