@harness-lab/cli
v0.2.9
Published
Participant-facing Harness Lab CLI for facilitator auth and workshop operations
Downloads
1,474
Maintainers
Readme
Harness CLI
Small Harness Lab CLI for facilitator auth, workshop operations, and portable workshop skill installation.
Current shipped scope:
harness versionharness skill installharness auth loginharness auth logoutharness auth statusharness workshop current-instanceharness workshop select-instanceharness workshop statusharness workshop list-instancesharness workshop show-instanceharness workshop create-instanceharness workshop update-instanceharness workshop reset-instanceharness workshop prepareharness workshop remove-instanceharness workshop archiveharness workshop phase set <phase-id>
Current implementation posture:
- targets the existing shared dashboard facilitator APIs
- defaults to a browser/device approval flow backed by dashboard-side facilitator broker sessions
- keeps
--auth basicand--auth neonas explicit local-dev/bootstrap fallback modes - stores session material in a local file under
HARNESS_CLI_HOMEor~/.harnessby default - supports macOS Keychain, Windows Credential Manager, and Linux Secret Service as explicit
HARNESS_SESSION_STORAGEoverrides - supports brokered facilitator commands over the same workshop APIs used by the dashboard
Usage
Install
Participant-facing default install:
npm install -g @harness-lab/cliSupported runtime:
- Node
22or newer - npm
10or newer recommended
Verify the binary:
harness --version
harness --helpDevelopment or fallback install from this repository:
npm install -g ./harness-clior:
cd harness-cli
npm linkVerify the local install:
harness version
harness --helpInstall the portable workshop skill bundle into your current repo for Codex/pi discovery:
harness skill installOptional explicit target:
harness skill install --target /path/to/team-repoThis creates .agents/skills/harness-lab-workshop in the target repo. The install does not require a local clone of the Harness Lab source repo.
Rerunning harness skill install refreshes the installed bundle when the packaged workshop content changed and reports clearly when the target is already current. Use --force only when you want a full reinstall.
After install, the CLI prints the first recommended agent commands, starting with Codex: $workshop commands and pi: /skill:workshop.
Treat the installed workshop skill as the first participant entrypoint. It should route setup, reference, and workshop guidance through live contentLang when available or the best reviewed bundled locale otherwise, instead of assuming the base authored Czech docs are always the right first stop.
Treat .agents/skills/harness-lab-workshop as generated workshop bundle content. The canonical authored source remains in this repository under workshop-skill/, workshop-blueprint/, selected docs/, and selected materials/.
Default device/browser login:
harness auth login \
--dashboard-url https://harness-lab-dashboard.vercel.appThe CLI prints a verification URL plus user code, optionally opens the browser when supported, then polls until the facilitator approves the request on /admin/device.
Explicit local file-mode / Basic Auth fallback:
harness auth login \
--auth basic \
--dashboard-url http://localhost:3000 \
--username facilitator \
--password secretExplicit Neon email/password bootstrap fallback:
harness auth login \
--auth neon \
--dashboard-url https://harness-lab-dashboard.vercel.app \
--email [email protected]Workshop commands:
harness auth status
harness skill install
harness workshop list-instances
harness workshop select-instance sample-workshop-demo-orbit
harness workshop current-instance
harness workshop status
harness workshop show-instance sample-workshop-demo-orbit
harness workshop create-instance sample-workshop-demo-orbit --event-title "Sample Workshop Demo"
harness workshop update-instance --room-name Orbit
harness workshop reset-instance --template-id blueprint-default
harness workshop prepare
harness workshop remove-instance
harness workshop phase set rotation
harness workshop archive --notes "Manual archive"
harness workshop select-instance --clear
harness auth logoutTargeting model:
harness workshop list-instancesis the discovery entrypoint for facilitator-visible workshopsharness workshop select-instance <instance-id>stores a local current target for later workshop commandsharness workshop current-instancereports the stored target and resolves its current server stateharness workshop statusandharness workshop phase set <phase-id>use the selected instance when present, otherwise they fall back to deployment default behaviorharness workshop show-instance,update-instance,reset-instance,prepare, andremove-instanceaccept an explicit<instance-id>but may also use the stored selection as a fallbackharness workshop select-instance --clearremoves the stored selectionHARNESS_WORKSHOP_INSTANCE_IDremains an environment fallback when no local selection is stored
Machine-readable output:
harness --json ...prints strict JSON output without headings- prefer this for agent or script consumption instead of parsing human-oriented terminal copy
Facilitator lifecycle commands are intentionally CLI-first:
- skill invokes
harness harnessinvokes the protected dashboard APIs- the dashboard APIs remain the source of truth for authorization, validation, idempotency, and audit logging
Environment variables:
HARNESS_DASHBOARD_URLHARNESS_AUTH_MODEHARNESS_ADMIN_USERNAMEHARNESS_ADMIN_PASSWORDHARNESS_FACILITATOR_EMAILHARNESS_FACILITATOR_PASSWORDHARNESS_CLI_HOMEHARNESS_SESSION_STORAGE(file,keychain,credential-manager, orsecret-service)
Release Gate
Public npm publication is controlled by the release gate in docs/harness-cli-publication-gate.md. Normal development should still happen from this repository; npm is the participant-facing distribution path, not a substitute for repo-local development.
