section · guides
Quick Start
Get started with Construct in 5 minutes.
Quick Start
Standard onboarding: Install CLI → Machine Setup → Project Init → Development
Step 1: Install CLI (One-Time)
# Install globally (one-time, per machine)
npm install -g @geraldmaron/construct
# Verify installation
construct --version
construct doctor
This adds construct to your PATH. The CLI is your single interface for everything.
Step 2: Machine Setup (One-Time)
First time on a new machine, bootstrap local services:
construct install --yes
What this does:
- ✅ Checks Docker → offers to install if missing
- ✅ Checks
cm(Memory MCP server) → installs if missing - ✅ Checks Node.js ≥ 20 → shows download link if needed
- ✅ Creates
~/.config/construct/config.env - ✅ Enables local JSONL traces in
.construct/traces - ✅ Runs
construct doctorhealth check
Output:
🔍 Checking prerequisites...
✓ Docker v24.0.0
✓ cm (Memory Server) installed
✓ Node.js v20.11.0
✅ All prerequisites met!
Local services:
✓ Traces → .construct/traces/*.jsonl (local by default)
✓ Postgres → postgresql://127.0.0.1:54329/construct
Step 3: Initialize Project (Per Project)
cd ~/your-project
# Initialize and start services (services start by default)
construct init --yes
# Scaffold only — don't start services
construct init --yes --no-start
# Interactive flow with project detection
construct init --interactive
What this does:
- ✅ Creates
.construct/directory structure - ✅ Creates
construct.config.json - ✅ Creates
embed.yaml(if not exists) - ✅ Starts local services (Dashboard, Postgres when configured, Memory, Embed)
- ✅ Opens Dashboard in browser
Step 4: Development (Per Session)
# Start services for development
construct dev
# Work via Dashboard or your AI tools
# Dashboard: http://127.0.0.1:4242
# Stop services when done (optional)
construct stop
What You Get
╔══════════════════════════════════════════════════════════════════════════╗
║ Construct Runtime Started ║
╠══════════════════════════════════════════════════════════════════════════╣
║ ✓ Dashboard → http://127.0.0.1:4242 ║
║ ✓ Traces → .construct/traces/*.jsonl ║
║ ✓ Memory (cm) → http://127.0.0.1:8765 ║
║ ✓ Embed daemon started (monitoring git, inbox, CI) ║
╚══════════════════════════════════════════════════════════════════════════╝
Checking Status
# Full status report with credentials
construct status
# JSON output
construct status --json
Output:
Construct Services
══════════════════
✓ Dashboard http://127.0.0.1:4242 (Dashboard API)
✓ Telemetry local://.construct/traces (Local JSONL traces)
✓ Memory (cm) http://127.0.0.1:8765 (MCP-managed)
✓ Embed daemon Running (watching git, inbox)
Telemetry
═════════
Local traces: .construct/traces/*.jsonl
Remote export: optional (`CONSTRUCT_TRACE_BACKEND=langfuse|http|otel`)
Troubleshooting
"Docker not available"
# Check Docker is running
docker ps
# If not running, start Docker Desktop or:
# macOS: open -a Docker
# Linux: sudo systemctl start docker
# Then retry
construct install --yes
"Remote telemetry is unavailable"
# Local traces still work without remote export
ls .construct/traces
# Check configured remote export
construct status --json
"Embed daemon not starting"
Check embed.yaml exists and autoEmbed is enabled:
# Verify embed.yaml
ls embed.yaml
# Check config
cat construct.config.json | grep autoEmbed
# Start manually
construct embed start
"Dashboard won't load"
# Check if dashboard is running
construct status
# Restart services
construct stop
construct dev
# Check for port conflicts
lsof -i :4242
Command Reference
| Command | Description |
|---|---|
construct install | Machine setup: Docker, cm, config (one-time) |
construct init | Project initialization (per project) |
construct dev | Start services (per session) |
construct stop | Stop services |
construct status | System health and credentials |
construct doctor | Health check |
Related Documents
- Embed Mode: How embed daemon works
- Deployment Model: Solo/team/enterprise modes
- Org Chart: Specialist roles and departments
- Installation: Detailed install guide