Skip to Content
ContributingDevelopment Workflow

Development Workflow

Prerequisites

  • Node.js ~20.19.0 — required for development due to an upstream dependency. Use nvm  to manage versions.
  • Git
  • Rust toolchain (optional — only needed for beads_rust task tracker)

Setup

git clone https://github.com/protoLabsAI/protoCLI.git cd protoCLI npm install

Build

npm run build # build all packages npm run ship # build + link globally as `proto` npm run dev # run from source (no build needed)

Run

proto # interactive CLI (after npm run ship) npm start # run from source proto -p "..." # one-shot mode

Test

npm run test # unit tests (Vitest) npm run test:e2e # integration tests

Integration tests

Integration tests live in integration-tests/. They require proto to be built and available in PATH:

npm run ship npm run test:e2e

Code quality

npm run preflight # lint + format + build + test (run before every PR) npm run lint # ESLint npm run format # Prettier npm run typecheck # TypeScript type check

Package structure

PackageDescription
packages/cliTerminal UI, command parsing, user interaction
packages/coreBackend: API client, tools, agents, memory
packages/sdk-typescriptTypeScript SDK (@protolabsai/sdk)
packages/test-utilsShared test utilities
packages/vscode-ide-companionVS Code extension
packages/webuiWeb UI components
packages/zed-extensionZed editor extension

Release process

Releases are managed via GitHub Actions (.github/workflows/release.yml).

TypeSchedule
NightlyEvery day at midnight UTC
PreviewEvery Tuesday at 23:59 UTC
StableManual — triggered by maintainers

To trigger a manual release:

  1. Go to Actions → Release.
  2. Click Run workflow.
  3. Enter the version (v0.x.y), ref (main), and dry-run flag.

Install release types

npm install -g proto # latest stable npm install -g proto@preview # preview npm install -g proto@nightly # nightly npm install -g proto@0.5.0 # specific version

Deployment notes

See docs/developers/development/deployment.md (in the old tree, migrated content) for Docker image and CI/CD setup details.

Issue automation

PRs and issues use GitHub Actions for labelling and triage. Configuration is in .github/. See docs/developers/development/issue-and-pr-automation.md in the old tree for details.

Last updated on