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- Ghostty submodule already initialized in cmux repository
- Zig build tools installed for GhosttyKit compilation
- Git remotes configured (origin for upstream, manaflow for fork)
How to use cmux-ghostty
- 1.Create a branch in the ghostty submodule: cd ghostty && git checkout -b <branch>
- 2.Make changes and commit: git add <files> && git commit -m "..."
- 3.Push to fork: git push manaflow <branch>
- 4.Verify submodule safety: git merge-base --is-ancestor HEAD origin/main
- 5.Update parent repo pointer: cd .. && git add ghostty && git commit -m "Update ghostty submodule"
- 6.For GhosttyKit builds, run: cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=universal -Doptimize=ReleaseFast
Use cases
- 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
- cmux maintainers
- Developers modifying the Ghostty submodule
- Contributors working on GhosttyKit framework builds
- Team members managing fork synchronization
cmux-ghostty FAQ
Rebuild when you modify the Ghostty submodule and need to update the compiled framework. Always use Release optimizations with the specified Zig build command.
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.
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.
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.
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.
Related skills
More from manaflow-ai/cmux and the wider catalog.
cmux-keyboard-shortcuts
Customize cmux keyboard shortcuts with templates and one-off rebinds.
cmux-localization
Localization rules and audit workflow for cmux UI strings across all user-facing surfaces.
cmux-markdown
Display markdown files in a formatted panel with live reload alongside your terminal.
cmux-release
Manage cmux release workflow: version bumping, changelog updates, and release asset validation.
cmux-settings
View and edit cmux settings in ~/.config/cmux/cmux.json with validation and live reload.
cmux-shared-behavior
Consolidate multi-entrypoint behavior into shared action paths to prevent bugs and duplication.