Installation
Prerequisites
- Node.js 22+ (required: >=22.0.0 <23.0.0)
- npm (comes with Node.js)
- Git (for worktree isolation)
- Claude Code CLI — Install and authenticate with your Anthropic subscription
protoLabs uses your authenticated Claude Code CLI credentials automatically. No separate API key configuration needed.
Install
git clone https://github.com/protoLabsAI/protoMaker.git
cd protoMaker
npm installRun
npm run devThis opens an interactive launcher. Choose Web Application to open in your browser at localhost:3007.
Or specify directly:
npm run dev:full # Web mode — starts UI (:3007) AND server (:3008) together (recommended)
npm run dev:web # UI only (localhost:3007) — requires server running separately
npm run dev:server # Backend server only (localhost:3008)Important:
npm run dev:webstarts only the UI frontend on port 3007. It requires the backend server to be running separately on port 3008. Usenpm run dev:fullto start both in one command, or runnpm run dev:serverin a second terminal alongsidenpm run dev:web.
TUI Launcher
For a richer interactive menu:
./start-automaker.shFeatures: gradient ASCII art, pre-flight dependency checks, remembers your last choice (stored in ~/.automaker_launcher_history), 30-second timeout for hands-free selection.
./start-automaker.sh web # Direct launch — web
./start-automaker.sh --check-deps # Verify dependencies
./start-automaker.sh --help # All optionsAuthentication
protoLabs integrates with your authenticated Claude Code CLI. Install and authenticate following the official quickstart, then protoLabs detects your credentials automatically.
API Key
The server uses protoLabs_studio_key as the default API key. To override, set the env var:
AUTOMAKER_API_KEY=your-custom-key npm run dev --workspace=apps/serverEnvironment Variables
Server
| Variable | Default | Description |
|---|---|---|
PORT | 3008 | Server port |
HOST | 0.0.0.0 | Host to bind to |
HOSTNAME | localhost | Hostname for user-facing URLs |
DATA_DIR | ./data | Data storage directory |
AUTOMAKER_API_KEY | protoLabs_studio_key | API key for server auth |
Security
| Variable | Default | Description |
|---|---|---|
ALLOWED_ROOT_DIRECTORY | (none) | Restrict file operations to a specific directory |
CORS_ORIGIN | localhost | CORS allowed origins (comma-separated) |
Integrations
| Variable | Default | Description |
|---|---|---|
GITHUB_TOKEN | (none) | GitHub PAT for repository operations |
LANGFUSE_PUBLIC_KEY | (none) | Langfuse public key (enables observability) |
LANGFUSE_SECRET_KEY | (none) | Langfuse secret key |
LANGFUSE_BASE_URL | https://cloud.langfuse.com | Langfuse API URL |
WORKSTACEAN_URL | http://workstacean:8082 | Workstacean bot pool service URL |
WORKSTACEAN_API_KEY | (none) | API key for authenticating with Workstacean service |
Development
| Variable | Default | Description |
|---|---|---|
AUTOMAKER_AUTO_LOGIN | (none) | Skip login prompt (ignored in production) |
AUTOMAKER_MOCK_AGENT | (none) | Enable mock agent mode for CI |
AUTOMAKER_SKIP_SANDBOX_WARNING | (none) | Skip sandbox warning dialog |
Building
Web Application
npm run buildDocker
See Docker Architecture and Docker Compose for containerized deployment.
Testing
npm run test # E2E tests (Playwright, headless)
npm run test:headed # E2E tests with browser visible
npm run test:server # Server unit tests (Vitest)
npm run test:packages # Shared package tests
npm run test:all # All tests (packages + server)Tests run on ports 3007 (UI) and 3008 (server). Playwright uses Chromium and auto-starts test servers.
Next Steps
Head to the Quick Tutorial to create your first feature.