PluginBench
Skill
Pass
Audit score 90

cmux-ghostty

manaflow-ai/cmux

Ghostty submodule and GhosttyKit workflow rules for cmux development.

What is cmux-ghostty?

Provides workflow guidance for managing the Ghostty submodule in cmux, including GhosttyKit.xcframework builds, fork synchronization, and submodule safety practices. Use when modifying Ghostty, rebuilding the framework, or updating submodule pointers.

  • Build GhosttyKit.xcframework with Release optimizations using Zig
  • Manage Ghostty fork commits and push to manaflow-ai/ghostty remote
  • Keep fork synchronized with upstream Ghostty repository
  • Update parent repository with new Ghostty submodule SHA pointers
  • Verify submodule safety before committing pointer updates
  • Document fork changes and conflict notes in docs/ghostty-fork.md

How to install cmux-ghostty

npx skills add null --skill cmux-ghostty
Prerequisites
  • Ghostty submodule already initialized in cmux repository
  • Zig build tools installed for GhosttyKit compilation
  • Git remotes configured (origin for upstream, manaflow for fork)
Claude Code
Cursor
Windsurf
Cline

How to use cmux-ghostty

  1. 1.Create a branch in the ghostty submodule: cd ghostty && git checkout -b <branch>
  2. 2.Make changes and commit: git add <files> && git commit -m "..."
  3. 3.Push to fork: git push manaflow <branch>
  4. 4.Verify submodule safety: git merge-base --is-ancestor HEAD origin/main
  5. 5.Update parent repo pointer: cd .. && git add ghostty && git commit -m "Update ghostty submodule"
  6. 6.For GhosttyKit builds, run: cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=universal -Doptimize=ReleaseFast

Use cases

Good for
  • Rebuilding GhosttyKit.xcframework after Ghostty updates
  • Contributing changes to the Ghostty fork while maintaining upstream sync
  • Resolving fork conflicts and documenting resolution steps
  • Updating cmux parent repository with new Ghostty submodule commits
  • Ensuring submodule commits are safely pushed before parent updates
Who it's for
  • cmux maintainers
  • Developers modifying the Ghostty submodule
  • Contributors working on GhosttyKit framework builds
  • Team members managing fork synchronization

cmux-ghostty FAQ

When should I rebuild GhosttyKit.xcframework?

Rebuild when you modify the Ghostty submodule and need to update the compiled framework. Always use Release optimizations with the specified Zig build command.

What are the git remotes in the Ghostty submodule?

origin points to the upstream Ghostty repository, and manaflow points to the manaflow-ai/ghostty fork. Push your changes to manaflow and keep main synchronized with origin/main.

Why is submodule safety important?

Commits made on a detached HEAD or temporary branch can become orphaned and lost. Always push submodule commits to the remote main branch before updating the parent repository pointer.

How do I keep the Ghostty fork synchronized with upstream?

Run: cd ghostty && git fetch origin && git checkout main && git merge origin/main && git push manaflow main. Then update the parent repo with the new submodule SHA.

Where should I document fork changes?

Keep docs/ghostty-fork.md up to date with any fork changes, conflict notes, and resolution steps. Refer to references/submodule-safety.md for detailed guidance.

Full instructions (SKILL.md)

Source of truth, from manaflow-ai/cmux.


name: cmux-ghostty description: "Ghostty submodule and GhosttyKit workflow rules for cmux. Use when modifying the ghostty submodule, rebuilding GhosttyKit.xcframework, updating the parent submodule pointer, or documenting fork conflict notes."

cmux Ghostty

GhosttyKit builds

When rebuilding GhosttyKit.xcframework, always use Release optimizations:

cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=universal -Doptimize=ReleaseFast

Submodule workflow

Ghostty changes must be committed in the ghostty submodule and pushed to the manaflow-ai/ghostty fork. Keep docs/ghostty-fork.md up to date with any fork changes and conflict notes.

cd ghostty
git remote -v  # origin = upstream, manaflow = fork
git checkout -b <branch>
git add <files>
git commit -m "..."
git push manaflow <branch>

To keep the fork up to date with upstream:

cd ghostty
git fetch origin
git checkout main
git merge origin/main
git push manaflow main

Then update the parent repo with the new submodule SHA:

cd ..
git add ghostty
git commit -m "Update ghostty submodule"

Submodule safety

When modifying a submodule, always push the submodule commit to its remote main branch before committing the updated pointer in the parent repo. Never commit on a detached HEAD or temporary branch; the commit can be orphaned and lost.

Verify with:

cd <submodule> && git merge-base --is-ancestor HEAD origin/main

Detailed reference

  • Read references/submodule-safety.md before committing submodule pointer updates or resolving Ghostty fork conflicts.