Skip to content

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

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

Build

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

Run

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

Test

bash
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:

bash
npm run ship
npm run test:e2e

Code quality

bash
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

bash
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.

Released under the Apache-2.0 License.