Files
nixpkgs/docs
Chiron 54fa93574b refactor: remove dead code, extract shared agent options, optimize flake
- Remove dead overlays/default.nix (flake defines overlays inline)
- Remove orphaned overlays/mods/{beads,n8n}.nix (never imported)
- Remove docs/packages/notesmd-cli.md (package doesn't exist)
- Extract externalSkills submodule to shared-options.nix (eliminates
  ~100 lines of duplication across opencode/claude-code/pi modules)
- Fix lib output: use nixpkgs.lib directly instead of instantiating
  a full nixpkgs just to get lib
- Add lib unit tests to flake checks
- Update stale comment in coding-rules.nix
2026-04-18 10:15:50 +00:00
..
2026-04-13 16:52:47 +02:00
2026-03-16 10:27:54 +01:00

m3ta-nixpkgs Documentation

Complete documentation for m3ta's personal Nix flake repository.

Overview

m3ta-nixpkgs is a collection of custom packages, overlays, NixOS modules, and Home Manager modules organized as a modern Nix flake. This repository follows a flakes-only approach (no channels) and provides reusable components for personal infrastructure.

Getting Started

Documentation Sections

📚 Guides

Step-by-step guides for common tasks:

📦 Packages

Documentation for all custom packages:

  • code2prompt - Convert code to prompts
  • hyprpaper-random - Random wallpaper setter for Hyprpaper
  • kestractl - CLI for the Kestra workflow orchestration platform
  • launch-webapp - Launch web applications
  • mem0 - AI memory assistant with vector storage
  • msty-studio - Msty Studio application
  • n8n - Free and source-available fair-code licensed workflow automation tool
  • notesmd-cli - Obsidian CLI (Community) - Interact with Obsidian in the terminal
  • pomodoro-timer - Pomodoro timer utility
  • rofi-project-opener - Rofi-based project launcher with custom args
  • sidecar - Companion tool for CLI agents with diffs, file trees, and task management
  • stt-ptt - Push to Talk Speech to Text using Whisper
  • td - Minimalist CLI for tracking tasks across AI coding sessions
  • tuxedo-backlight - Backlight control for Tuxedo laptops
  • zellij-ps - Project switcher for Zellij

⚙️ Modules

Configuration modules for NixOS and Home Manager:

NixOS Modules

  • Overview - NixOS modules overview
  • mem0 - Mem0 REST API server module
  • ports - Port management module

Home Manager Modules

📖 Reference

Technical references and APIs:

  • Functions - Library functions documentation
  • Patterns - Code patterns and anti-patterns

Repository Structure

m3ta-nixpkgs/
├── docs/                    # This directory
│   ├── README.md
│   ├── QUICKSTART.md
│   ├── ARCHITECTURE.md
│   ├── CONTRIBUTING.md
│   ├── guides/
│   ├── packages/
│   ├── modules/
│   └── reference/
├── pkgs/                    # Custom packages
├── modules/
│   ├── nixos/              # NixOS modules
│   └── home-manager/       # Home Manager modules
├── lib/                    # Library functions
├── shells/                 # Development shells
├── overlays/              # Package overlays
├── templates/             # Templates
└── examples/              # Usage examples

Key Concepts

Flakes-Only Approach

This repository uses modern Nix flakes exclusively. No channels or nix-channel commands are needed. All dependencies are declaratively specified in flake.nix.

Namespace Convention

All modules use the m3ta.* namespace:

  • m3ta.ports.* - Port management
  • m3ta.mem0.* - Mem0 service configuration
  • m3ta.*.enable - Enable/disable modules

Port Management

Centralized port management across hosts using the m3ta.ports module:

m3ta.ports = {
  enable = true;
  definitions = { mem0 = 8000; };
  hostOverrides.laptop = { mem0 = 8080; };
  currentHost = "laptop";
};

Supported Systems

  • x86_64-linux - Primary
  • aarch64-linux - ARM Linux
  • x86_64-darwin - macOS (Intel)
  • aarch64-darwin - macOS (Apple Silicon)

Quick Commands

# Validate flake
nix flake check

# Format code
nix fmt

# Build package
nix build .#<package-name>

# List outputs
nix flake show

# Enter dev shell
nix develop

License

Individual packages may have their own licenses. Check each package's meta.license attribute.

Maintainer

@m3tam3re