A modular Nix Flakes configuration for managing macOS and NixOS systems.
- Multi-platform: macOS (nix-darwin) and NixOS with unified configuration
- Modular architecture: Role-based modules for different use cases
- AI agent skills: Automatic management of OpenCode and Claude Code skills
- 1Password integration: SSH authentication and commit signing
- CI/CD pipeline: Automated validation and caching
# Clone and enter development environment
git clone https://github.com/funkymonkeymonk/nix.git
cd nix
nix develop
# Run validation
devenv tasks run check:all
# Apply configuration (macOS)
darwin-rebuild switch --flake .#<hostname>New here? See the Getting Started tutorial.
| Type | Description |
|---|---|
| Tutorials | Learning-oriented walkthroughs |
| How-To Guides | Task-oriented instructions |
| Reference | Technical specifications |
| Explanation | Design and architecture |
├── modules/ # Reusable Nix configurations
│ ├── common/ # Shared options, users, shell
│ ├── home-manager/ # User environment, skills
│ ├── roles/ # Role modules (packages, skills per role)
│ └── nixos/ # NixOS-specific modules
├── targets/ # Machine-specific configurations
├── flake.nix # Main flake with helper functions
└── docs/ # Documentation (Diataxis)
Learn more: Architecture explanation
| Role | Description |
|---|---|
base |
Essential tools (always included) |
developer |
Development environment |
creative |
Media tools |
desktop |
Desktop applications |
workstation |
Work tools |
entertainment |
Entertainment apps (macOS) |
gaming |
Gaming tools |
opencode |
OpenCode AI assistant with rtk |
claude |
Claude Code AI assistant with rtk |
pi |
Pi coding agent with rtk |
llm-host |
Ollama |
Full list: Roles reference
After entering devenv shell:
| Alias | Command |
|---|---|
s |
devenv tasks run system:switch |
q |
devenv tasks run check:all |
b |
devenv tasks run build:all |
All tasks: Tasks reference
See AGENTS.md for AI-specific guidance on working with this repository.
MIT