Intermediate May 3, 2026 · 3 min read

Every Loom command, the flags it accepts, and the env vars it consults. Run loom <command> --help for the same information at the terminal.

loom new <project-name>

Scaffold a new Loom project.

Flag Purpose
--module Go module path (default: github.com/<org>/<name>)
--dir Directory to create the project in (default: ./<name>)
--org GitHub org / OrbWeaver github_org (default: $GITHUB_ORG or orbweaver-dev)
--private Create the GitHub repo as private
--description Project description (used in GitHub + OrbWeaver)
--no-github Skip GitHub repo creation
--no-orbweaver Skip OrbWeaver Project registration

Env: GITHUB_TOKEN, ORBWEAVER_API_KEY, GITHUB_ORG (all optional). When tokens are missing, the corresponding integration is skipped silently.

loom add model <ModelName>

Scaffold threads/<modelname>.yaml with a starter Thread definition. Refuses to overwrite an existing file.

loom check

Validate every Thread under threads/. Exits non-zero on any error.

loom weave

Compile every Thread into Go + SvelteKit + SQL + HTMX under .loom/. With ORBWEAVER_API_KEY set, also updates the OrbWeaver Project's thread_count and last_weave fields.

loom serve

Run the HTTP server.

Flag Default Purpose
--addr :8080 Listen address
--no-auth off Disable JWT auth (dev only — only Public-role permissions reachable)
--cors * CORS allow-list (comma-separated)

Env: DATABASE_URL (required), LOOM_SECRET (required unless --no-auth).

SIGINT / SIGTERM trigger a graceful shutdown bounded by 10 seconds.

loom stitch

Reconcile the live database schema with Thread definitions.

Flag Purpose
--preview Show the plan; don't touch the database
--yes / -y Apply without confirmation prompt
--env Environment label for audit (default dev)
--no-live Preview against an empty schema; no DB connection needed (implies --preview)

Env: DATABASE_URL (required unless --no-live).

loom eject <ModelName>

Move generated Go for one model from .loom/go/... to custom/..., stripping the "Generated by Loom" header.

Flag Purpose
--force / -f Overwrite existing files in custom/

loom deploy

Emit production deployment artefacts (Dockerfile, .dockerignore, deploy/start.sh).

Flag Purpose
--force / -f Overwrite existing artefacts

loom report [message]

Append a timestamped report to the OrbWeaver Project's notes field. Stages to .loom/pending-reports/<timestamp>.md if ORBWEAVER_API_KEY is unset.

Flag Purpose
--project OrbWeaver Project name (default loom)
--from-file Read message from file (- for stdin)

loom sync

Full OrbWeaver bootstrap + report flush. Idempotent — re-running is safe.

Flag Purpose
--bootstrap Create the Loom Build Report DocType + 8 Custom Fields on Project (System Manager key required, one-time)
--dry-run Print the plan; don't call OrbWeaver or GitHub
--yes / -y Apply without confirmation prompt
--project OrbWeaver project_name (defaults to loom.yaml project)
--org GitHub org / OrbWeaver github_org
--private Create the GitHub repo as private
--no-github Skip GitHub repo creation

loom doc push

Render docs/*.md and sync each to a Help Article on OrbWeaver.

Flag Purpose
--dir Directory to scan (default docs)
--dry-run Parse + render but don't call OrbWeaver
--unpublish-all Force every article to published: 0
--only Push only the article whose route equals this value

Env: ORBWEAVER_API_KEY (required, unless --dry-run).

Universal flags

Inherited from Cobra:

  • --help / -h — show command help
  • loom completion <shell> — generate shell completion scripts
Was this article helpful?