Skip to content

retran/.meow

Repository files navigation

🐱 .meow

Status: Deprecated New Project: meowctl GitHub stars GitHub forks License

The purr-fect configuration management framework for crafting reproducible developer environments across macOS and Linux.

.meow Logo

Full DocumentationArchitectureInstallationComponent GuideContributing

🚨 Deprecation Notice

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

🎯 Overview

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.

Who Should Use This?

.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.

✨ Key Features

  • 🧩 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; .meow ensures 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 git and curl to bootstrap, ensuring maximum portability and minimal overhead. It is also compatible with Bash 3.2, which is the default on macOS.

📦 Installation

For detailed instructions, please see the Full Installation Guide.

Quick Install

git clone [https://github.com/retran/meow.git](https://github.com/retran/meow.git) ~/.meow
cd ~/.meow

🚀 Quick Start

1. Configure Environment (Important!)

Before 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/.gitconfig

2. Select a Preset

List available presets to find one that matches your needs:

./bin/meowctl list

3. Install Preset

Apply the chosen configuration.

For a personal workstation (The Den):

./bin/meowctl install den-personal

For ephemeral environments (The Litterbox):

# Go Development
./bin/meowctl install litterbox-go

# Python & Data Science
./bin/meowctl install litterbox-python

Made with ❤️ by Andrew Vasilyev and feline assistants Sonya Blade, Mila, and Marcus Fenix

Happy coding with project meow! 🐱

⭐ Star us on GitHub🐛 Report Bug💡 Request Feature🔀 Contribute

About

The purr-fect dotfiles management system that sets up your development environment with a single meow.

Topics

Resources

License

Stars

Watchers

Forks

Contributors