apple-notes
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Set up and run HeartMuLa, the open-source music generation model family
$ npx -y skills add graniet/kheish --skill heartmula --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/heartmulaContext preview
The summary Claude sees to decide when to auto-load this skill.
Set up and run HeartMuLa, the open-source music generation model family
description: Set up and run HeartMuLa, the open-source music generation model family
(Suno-like). Generates full songs from lyrics + tags with multilingual support.
version: 1.0.0
metadata:
catalog:
tags:
- music
- audio
- generation
- ai
- heartmula
- heartcodec
- lyrics
- songs
related_skills:
- audiocraftThis skill is repo-local and stays inactive until explicitly activated.
When the original instructions refer to legacy tool names, use these Kheish mappings:
When the instructions mention local helper files, resolve them from `${KHEISH_SKILL_DIR}`.
HeartMuLa is a family of open-source music foundation models (Apache-2.0) that generates music conditioned on lyrics and tags. Comparable to Suno for open-source. Includes:
cd ~/ # or desired directory git clone https://github.com/HeartMuLa/heartlib.git cd heartlib
uv venv --python 3.10 .venv . .venv/bin/activate uv pip install -e .
**IMPORTANT**: As of Feb 2026, the pinned dependencies have conflicts with newer packages. Apply these fixes:
# Upgrade datasets (old version incompatible with current pyarrow) uv pip install --upgrade datasets # Upgrade transformers (needed for huggingface-hub 1.x compatibility) uv pip install --upgrade transformers
**Patch 1 - RoPE cache fix** in `src/heartlib/heartmula/modeling_heartmula.py`:
In the `setup_caches` method of the `HeartMuLa` class, add RoPE reinitialization after the `reset_caches` try/except block and before the `with device:` block:
# Re-initialize RoPE caches that were skipped during meta-device loading
from torchtune.models.llama3_1._position_embeddings import Llama3ScaledRoPE
for module in self.modules():
if isinstance(module, Llama3ScaledRoPE) and not module.is_cache_built:
module.rope_init()
module.to(device)**Why**: `from_pretrained` creates model on meta device first; `Llama3ScaledRoPE.rope_init()` skips cache building on meta tensors, then never rebuilds after weights are loaded to real device.
**Patch 2 - HeartCodec loading fix** in `src/heartlib/pipelines/music_generation.py`:
Add `ignore_mismatched_sizes=True` to ALL `HeartCodec.from_pretrained()` calls (there are 2: the eager load in `__init__` and the lazy load in the `codec` property).
**Why**: VQ codebook `initted` buffers have shape `[1]` in checkpoint vs `[]` in model. Same data, just scalar vs 0-d tensor. Safe to ignore.
cd heartlib # project root hf download --local-dir './ckpt' 'HeartMuLa/HeartMuLaGen' hf download --local-dir './ckpt/HeartMuLa-oss-3B' 'HeartMuLa/HeartMuLa-oss-3B-happy-new-year' hf download --local-dir './ckpt/HeartCodec-oss' 'HeartMuLa/HeartCodec-oss-20260123'
All 3 can be downloaded in parallel. Total size is several GB.
HeartMuLa uses CUDA by default (`--mula_device cuda --codec_device cuda`). No extra setup needed if the user has an NVIDIA GPU with PyTorch CUDA support installed.
cd heartlib . .venv/bin/activate python ./examples/run_music_generation.py \ --model_path=./ckpt \ --version="3B" \ --lyrics="./assets/lyrics.txt" \ --tags="./assets/tags.txt" \ --save_path="./assets/output.mp3" \ --lazy_load true
**Tags** (comma-separated, no spaces):
piano,happy,wedding,synthesizer,romantic
or
rock,energetic,guitar,drums,male-vocal
**Lyrics** (use bracketed structural tags):
[Intro] [Verse] Your lyrics here... [Chorus] Chorus lyrics... [Bridge] Bridge lyrics... [Outro]
| Parameter | Default | Description | |-----------|---------|-------------| | `--max_audio_length_ms` | 240000 | Max length in ms (240s = 4 min) | | `--topk` | 50 | Top-k sampling | | `--temperature` | 1.0 | Sampling temperature | | `--cfg_s
Manage Apple Notes via the memo CLI on macOS (create, view, search, edit).
Manage Apple Reminders via remindctl CLI (list, add, complete, delete).
Track Apple devices and AirTags via FindMy.app on macOS using AppleScript
Send and receive iMessages/SMS via the imsg CLI on macOS.
Delegate coding tasks to Claude Code (Anthropic's CLI agent). Use for
--- description: Delegate coding tasks to OpenAI Codex CLI agent. Use for building features, refactoring, PR reviews, and batch…