From 5da4d36d2520a4a293212755b510bbd0baf6efed Mon Sep 17 00:00:00 2001 From: 0xWheatyz Date: Mon, 20 Apr 2026 22:51:37 -0400 Subject: [PATCH] feat(claude): add caveman and oh-my-claudecode skills via flake inputs Declaratively manage Claude Code skills through home-manager by fetching plugin repos as non-flake inputs and symlinking their skills directories. --- flake.lock | 42 ++++++++++++++++++++++++++++++++++++++---- flake.nix | 12 ++++++++++-- home.nix | 16 +++++++++++++++- 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index d2af3f1..79f8a84 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "caveman": { + "flake": false, + "locked": { + "lastModified": 1776507098, + "narHash": "sha256-M+NoWXxrhtbkbe/lmq7P0/KpmqOZzJjhgeUVjY+7N2k=", + "owner": "JuliusBrussee", + "repo": "caveman", + "rev": "84cc3c14fa1e10182adaced856e003406ccd250d", + "type": "github" + }, + "original": { + "owner": "JuliusBrussee", + "repo": "caveman", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -76,11 +92,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1775126147, - "narHash": "sha256-J0dZU4atgcfo4QvM9D92uQ0Oe1eLTxBVXjJzdEMQpD0=", + "lastModified": 1776329215, + "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "8d8c1fa5b412c223ffa47410867813290cdedfef", + "rev": "b86751bc4085f48661017fa226dee99fab6c651b", "type": "github" }, "original": { @@ -106,12 +122,30 @@ "type": "github" } }, + "oh-my-claudecode": { + "flake": false, + "locked": { + "lastModified": 1776693787, + "narHash": "sha256-C/m8Vlt6MXy8nlgqtoey9A5JnVTHCPkGUjar9x5Y2uw=", + "owner": "Yeachan-Heo", + "repo": "oh-my-claudecode", + "rev": "084fc47266824b35f4c8cbe886c0990ae716c184", + "type": "github" + }, + "original": { + "owner": "Yeachan-Heo", + "repo": "oh-my-claudecode", + "type": "github" + } + }, "root": { "inputs": { + "caveman": "caveman", "home-manager": "home-manager", "kickstart-nvim": "kickstart-nvim", "nixpkgs": "nixpkgs_2", - "nixpkgs-unstable": "nixpkgs-unstable" + "nixpkgs-unstable": "nixpkgs-unstable", + "oh-my-claudecode": "oh-my-claudecode" } }, "systems": { diff --git a/flake.nix b/flake.nix index 6876c4d..7b4b6cd 100644 --- a/flake.nix +++ b/flake.nix @@ -9,9 +9,17 @@ inputs.nixpkgs.follows = "nixpkgs"; }; kickstart-nvim.url = "github:0xWheatyz/kickstart.nvim"; + caveman = { + url = "github:JuliusBrussee/caveman"; + flake = false; + }; + oh-my-claudecode = { + url = "github:Yeachan-Heo/oh-my-claudecode"; + flake = false; + }; }; - outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, kickstart-nvim, ... }: + outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, kickstart-nvim, caveman, oh-my-claudecode, ... }: let system = "x86_64-linux"; pkgs-unstable = import nixpkgs-unstable { @@ -31,7 +39,7 @@ home-manager.useUserPackages = true; home-manager.users.l-wyatt = import ./home.nix; home-manager.extraSpecialArgs = { - inherit kickstart-nvim; + inherit kickstart-nvim caveman oh-my-claudecode; }; home-manager.sharedModules = [ kickstart-nvim.homeManagerModules.default diff --git a/home.nix b/home.nix index 33bdac6..bb1b6d4 100644 --- a/home.nix +++ b/home.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, caveman, oh-my-claudecode, ... }: { home.username = "l-wyatt"; @@ -207,6 +207,20 @@ # Use kickstart.nvim configuration from flake programs.neovim-kickstart.enable = true; + # Claude Code skills (managed declaratively via flake inputs) + home.file.".claude/skills/caveman" = { + source = "${caveman}/skills/caveman"; + recursive = true; + }; + home.file.".claude/skills/caveman-help" = { + source = "${caveman}/skills/caveman-help"; + recursive = true; + }; + home.file.".claude/skills/oh-my-claudecode" = { + source = "${oh-my-claudecode}/skills"; + recursive = true; + }; + # Claude Code configuration home.file.".claude/CLAUDE.md" = { text = ''