Getting Started
Project Structure
packages/core/— Shared types, constants, registries, and utilities (@clawup/core)packages/cli/— CLI package (commands, config, adapters)packages/pulumi/— Pulumi infrastructure components (@clawup/pulumi)packages/web/— Next.js dashboardidentities/— Built-in identity stubs (point to external Git repos)examples/— Example identities for referencedocs/— Mintlify documentation
Development Workflow
- Create a feature branch from
main - Make your changes
- Run
pnpm buildto verify - Submit a PR with a clear description
Conventions
- Commits: Use conventional commits (
feat:,fix:,docs:, etc.) - PRs: One PR per feature/fix, link to relevant issues
- TypeScript: Strict mode, no
anywithout comment
Adding a New Built-in Identity
- Create an identity directory with
identity.yamland workspace files (see examples/identity/ for the format) - Host the identity in a Git repo (or add to an existing identities repo)
- Register it in
packages/core/src/constants.tsunderBUILT_IN_IDENTITIES - Update documentation in
docs/architecture/identities.mdx
Adding a New Cloud Provider
- Create a new component in
packages/pulumi/src/components/ - Add provider constants to
packages/core/src/constants.ts - Update the CLI adapter and web wizard
- Document in
docs/architecture/cloud-providers.mdx
Adding a Registry Entry
- Coding agent: Add to
packages/core/src/coding-agent-registry.tswith install script and model config - Dep: Add to
packages/core/src/dep-registry.tswith install script - Plugin: Add to
packages/core/src/plugin-registry.tswith metadata