Thanks for your interest in contributing!
- Node.js
>= 20.0.0(LTS recommended; CI uses 22) - pnpm
9.x— the repo pins via thepackageManagerfield. Runcorepack enableonce and pnpm will use the right version automatically. - A C/C++ toolchain for
better-sqlite3's native build. On Debian/Ubuntu:sudo apt install build-essential python3; on macOS:xcode-select --install.
git clone https://github.com/ggui-ai/ggui.git
cd ggui
corepack enable # selects the pinned pnpm version
pnpm install
pnpm buildpnpm build # Build all packages
pnpm typecheck # Type check all packages
pnpm test # Run all tests- Create a branch:
git checkout -b my-feature - Make your changes
- Add a changeset:
pnpm changeset - Commit and push
- Open a Pull Request
We use changesets for versioning. When you make a change that should be released, run:
pnpm changesetThis creates a file describing your change. Commit it with your PR.
Each subdirectory is a workspace package. The consumer-facing surface:
| Package | Published name | Description |
|---|---|---|
protocol |
@ggui-ai/protocol |
Wire protocol types |
ggui-cli |
@ggui-ai/cli |
The ggui binary |
mcp-server |
@ggui-ai/mcp-server |
Reference OSS server |
ggui-react |
@ggui-ai/react |
React embedding components |
ggui-react-native |
@ggui-ai/react-native |
React Native embedding components |
gadgets |
@ggui-ai/gadgets |
Author wrappers for 3rd-party libs |
ui-gen |
@ggui-ai/ui-gen |
UI-generation harness |
The remaining directories are supporting runtime, registry, and tooling
packages. See each subdirectory's package.json for the full picture.
- TypeScript strict mode
- ESLint + Prettier (run automatically on commit)
- Prefer small, focused PRs
Open a Discussion or Issue.