Skip to main content
Clawup is open source. Contributions are welcome!

Getting Started

# Clone the repo
git clone https://github.com/stepandel/clawup.git
cd clawup

# Install dependencies
pnpm install

# Build the CLI
pnpm --filter clawup build

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 dashboard
  • identities/ — Built-in identity stubs (point to external Git repos)
  • examples/ — Example identities for reference
  • docs/ — Mintlify documentation

Development Workflow

  1. Create a feature branch from main
  2. Make your changes
  3. Run pnpm build to verify
  4. 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 any without comment

Adding a New Built-in Identity

  1. Create an identity directory with identity.yaml and workspace files (see examples/identity/ for the format)
  2. Host the identity in a Git repo (or add to an existing identities repo)
  3. Register it in packages/core/src/constants.ts under BUILT_IN_IDENTITIES
  4. Update documentation in docs/architecture/identities.mdx

Adding a New Cloud Provider

  1. Create a new component in packages/pulumi/src/components/
  2. Add provider constants to packages/core/src/constants.ts
  3. Update the CLI adapter and web wizard
  4. Document in docs/architecture/cloud-providers.mdx

Adding a Registry Entry

  • Coding agent: Add to packages/core/src/coding-agent-registry.ts with install script and model config
  • Dep: Add to packages/core/src/dep-registry.ts with install script
  • Plugin: Add to packages/core/src/plugin-registry.ts with metadata