Skip to content

CLI Reference

Complete reference for every cliq command, organized by category.


Install cliq and run first-time setup:

Terminal window
curl -fsSL https://getcliq.io/cliq/install | bash -s -- --key cliqhub-early-2026
cliq setup

Check the installed version:

Terminal window
cliq --version

Display help for any command:

Terminal window
cliq --help
cliq <command> --help
cliq <command> <subcommand> --help

CommandDescription
cliq setupOne-time global setup — creates ~/.cliqrc/ and default settings
cliq settingsRead, write, and inspect configuration
CommandDescription
cliq initInitialize .cliq/ directory in the current project
cliq assembleDeploy a team to the current project
cliq reqResolve requirements and generate prompts, channels, and task board
cliq runLaunch all agents in a tmux session
cliq statusDisplay pipeline progress
cliq doctorCheck environment and integrations
cliq doctor agentValidate agent configuration
cliq auth googleManage Google OAuth2 authentication
cliq cleanRemove all cliq artifacts from the project
cliq migrateMigrate a team.yml from old taxonomy to the new schema
CommandDescription
cliq builder generateGenerate a complete team from a natural language description
cliq builder improveImprove a single role using the LLM
cliq builder gapsAnalyse a team for gaps and suggest improvements
cliq builder capabilityGenerate or regenerate A2A metadata (tags, use_when, not_for)
CommandDescription
cliq hub loginAuthenticate with a registry
cliq hub logoutClear hub and HUG credentials
cliq hub tokenCreate an API token
CommandDescription
cliq team newCreate a new empty team
cliq team installInstall a team from a local path or hub:// registry
cliq team updateUpdate installed teams to latest versions
cliq team uninstallRemove an installed team
cliq team publishPublish a team from a local path to a registry
cliq team copyCopy a team to a local directory
cliq team add-roleAdd a role to a team
cliq team remove-roleRemove a role from a team
cliq team gen-workflowGenerate workflow from roles, or import from a file
cliq team edit-workflowOpen team.yml in your editor
cliq team validateValidate a team definition
cliq team versionBump the team’s semantic version
cliq team listList installed teams with versions and source
cliq team infoShow detailed team information (local or hub://)
CommandDescription
cliq instance listList all active cliq tmux sessions
cliq instance infoShow detailed status of an instance
cliq instance attachAttach to a cliq tmux session
cliq instance killKill a cliq tmux session
CommandDescription
cliq server startStart the local cliq server
cliq server stopStop the running cliq server
cliq server statusShow cliq server status
cliq server token generateGenerate a random bearer token (offline)
cliq server token hashPrint the SHA-256 hash of a token (offline)
cliq server token createCreate a new bearer token
cliq server token listList all bearer tokens
cliq server token revokeRevoke a bearer token
CommandDescription
cliq tool runRun a tool by name
cliq tool listList all available tools

Interactive setup wizard. Walks you through configuring your cliq environment: prerequisites, default agent, integrations, and credentials. Creates ~/.cliqrc/ with settings and an empty local team registry (teams/@local/) on first run.

Re-runnable — on subsequent runs, shows current values as defaults. Press Enter to keep them, or type a new value to change.

cliq setup [options]
OptionDescription
--import <path>Import a settings.json file (skips the wizard)
--resetWipe ~/.cliqrc/ and start fresh (prompts for confirmation)
--forceSkip confirmations (use with --reset or --import)
--non-interactiveAccept all defaults without prompting (for CI/scripting)

The wizard covers:

  1. Prerequisites — checks for Node.js and tmux
  2. Import — optionally load settings from another machine
  3. Default agent — choose cursor, claude-code, gemini, or codex, and set the API key
  4. Instance ID prefix — optional prefix for tmux session names
  5. CliqHub — log in to browse, install, and publish teams
  6. Source control — GitHub or Bitbucket integration for branches and PRs
  7. Jira — issue tracking and gate escalation
  8. Slack — pipeline notifications via webhook channel
  9. Google — Drive, Docs, and Sheets access
  10. Microsoft — SharePoint and OneDrive access
  11. AI Team Builder — LLM provider for AI-assisted team creation
  12. Diagnostics — verifies the resulting configuration
Terminal window
cliq setup # Interactive wizard
cliq setup --import ~/team-config/settings.json # Import settings
cliq setup --reset # Factory reset
cliq setup --non-interactive # Bootstrap with defaults

Read, write, and inspect configuration with git config-like semantics. Supports two scopes (global and project), dot-notation keys, schema-based type coercion, array operations, and secret masking.

cliq settings [key] [value] [options]

When called with no key, lists all settings. When called with a key that maps to an object, lists all keys under that section. When called with a leaf key, prints the value (or (not set) with exit code 1 if valid but unconfigured). Unknown keys produce an error with a contextual --info hint pointing to the deepest valid section. When called with a key and value, writes the value.

OptionDescription
--globalTarget global settings (~/.cliqrc/settings.json)
--projectTarget project settings (.cliq/settings.json)
--unset <key>Remove a key from the target file
--add <key>Append a value to an array field
--remove <key>Remove a value from an array field
--stdinRead the value from stdin instead of the command line
--unmaskShow unmasked secret values (tokens, API keys)
--infoShow documentation for a setting or section. Non-leaf results include a navigation hint.

Without --global or --project, reads show the merged (resolved) view — project values override global. Writes default to the project scope; if not inside a project, they fall back to global.

FlagReads fromWrites to
(none, inside project)merged (global + project).cliq/settings.json
(none, outside project)~/.cliqrc/settings.json~/.cliqrc/settings.json
--global~/.cliqrc/settings.json~/.cliqrc/settings.json
--project.cliq/settings.json.cliq/settings.json

Values are coerced based on the schema derived from the settings template:

  • Boolean fields accept true or false (case-insensitive).
  • Number fields must parse to a valid number.
  • Enum fields must match one of the allowed values (e.g., logging.server_level accepts error, warn, info, debug, trace).
  • Array fields cannot be set directly — use --add and --remove.
  • Object keys cannot be set directly — set leaf keys instead.

Fields that hold credentials (tokens, API keys) are masked by default — only the first 4 characters are shown, followed by ****. This applies to both simple leaf fields and secret fields inside array elements (e.g., client_secret within mesh entries). Use --unmask to reveal full values.

Terminal window
# Read a value
cliq settings agents.git.github.base_branch
# Write a string
cliq settings agents.git.github.base_branch develop
# Write at global scope
cliq settings agents.git.github.base_branch develop --global
# Write a secret from stdin
echo $TOKEN | cliq settings hub.token --stdin --global
# List all resolved settings
cliq settings
# List global settings only
cliq settings --global
# Read an entire section
cliq settings agents.git.github
# Array: append
cliq settings --add agents.git.github.pr_labels deploy --global
# Array: remove
cliq settings --remove agents.git.github.pr_labels auto
# Unset a key
cliq settings --unset agents.git.github.pr_draft
# Show a secret unmasked
cliq settings hub.token --unmask --global
# Show documentation for all sections
cliq settings --info
# Show documentation for a section
cliq settings agents.git.github --info
# --- Slack channel setup ---
cliq settings agents.slack.channels.default.webhook_url "https://hooks.slack.com/services/T.../B.../..." --global
# --- Email (SMTP) setup ---
cliq settings agents.email.smtp_host smtp.example.com --global
cliq settings agents.email.smtp_port 587 --global
cliq settings agents.email.from_address [email protected] --global
echo "$SMTP_PASS" | cliq settings agents.email.password --stdin --global
cliq settings --add agents.email.channels.default [email protected] --global
cliq settings --add agents.email.channels.ops [email protected] --global
# --- Wire channels to events ---
cliq settings --add notifications.on_complete.channels email
cliq settings --add notifications.on_escalate.channels email:ops
# Read a valid but unconfigured key — prints "(not set)", exit code 1
cliq settings agents.git.github.token
# Unknown key — error with contextual hint
# error: Unknown key 'agents.jira.badkey'.
# Run 'cliq settings agents.jira --info' to navigate the agents.jira schema.
cliq settings agents.jira.badkey

Initialize the .cliq/ directory structure in the current project. Creates directories, settings, and .gitignore entries. Does not create an instance ID — that happens at cliq run time.

cliq init [options]
OptionDescription
--name <prefix>Set a project name used as the instance ID prefix during cliq run

The name is stored in .cliq/project.name and persists across runs. When set, instance IDs look like my-api-a1b2c3 instead of cliq-a1b2c3.

Terminal window
cliq init
cliq init --name my-api

For projects spanning multiple repositories, create a workspace directory, clone the repos into it, then initialize:

Terminal window
mkdir my-workspace && cd my-workspace
git clone https://github.com/org/api.git
git clone https://github.com/org/frontend.git
cliq init
cliq assemble feature-dev-js
cliq req requirements.md
cliq run

Cliq auto-detects child git repos. Phases with scope: repo commands run once per repo. Git operations (branch, commit, push, PR) are applied to each repo independently.


Deploy a team from the registry into the current project. Creates .cliq/roles/, workflow.yml, and the channel structure. Run from a project directory (or multi-repo workspace root) that has been initialized with cliq init.

cliq assemble <team> [options]
ArgumentDescription
teamTeam name or scoped reference
OptionDescription
--dir <path>Resolve team from a local directory instead of the install directory

Accepts scoped references (@cliq/feature-dev-js) or bare names (feature-dev-js). Bare names are resolved in order: @local → other @* scopes.

During assembly, cliq generates an agents.json manifest and warns about custom agents that need user configuration:

⚠ Agent 'custom-agent' has no entry point — configure it in settings.json under agents before running

See Cliq SDK for details on agents and assembly.

Terminal window
cliq assemble feature-dev-js
cliq assemble @cliq/feature-dev-js
cliq assemble my-team --dir ./teams/my-team

Resolve requirements and generate prompts, channels, and the task board.

cliq req [options]
OptionDescription
-s, --source <ref>Source for requirements — file path, URL, or URI scheme (e.g. jira:KEY)
-m, --message <text>Use an inline string as the requirement
--stdinRead requirement text from stdin
--nospecStart workflow with default requirements (no spec needed)
--no-dockerRun without Docker
-i, --input <key=value...>Provide team input values (repeatable)

Only one input source is allowed per invocation: -s, -m, --stdin, or --nospec.

Source resolution: The -s flag accepts file paths, full URLs, and URI schemes. The scheme determines how the source is resolved:

SourceResolution
-s requirements.mdLocal file
-s https://example.com/spec.mdHTTP fetch
-s jira:PROJ-123Jira ticket (requires agents.jira in settings)
-s jira:PROJ-1,PROJ-2Multiple Jira tickets

Bare paths (no scheme) are treated as local files.

Validation gate: Before executing, cliq req checks that all prerequisites are met — a requirement spec and any inputs defined by the team. If anything is missing, it prints exactly what’s needed and a copy-paste example command, then exits without touching project state. This applies whether you omit the spec entirely or provide a spec but forget an --input flag.

Input resolution: Team inputs are resolved exclusively from --input flags (or interactive prompts in non-headless mode). They are not parsed from the requirement text.

Terminal window
# Check what the team needs (no spec, shows what's missing)
cliq req
# Provide everything — runs the pipeline
cliq req -s requirements.md
cliq req -s requirements.md --input company=acme --input year=2026
cliq req -s https://example.com/spec.md
cliq req -s requirements.md --input ticket=PROJ-123
cliq req -m "Build a REST API with JWT auth and role-based access control"
echo "Build a hello world app" | cliq req --stdin
cat spec.txt | cliq req --stdin
cliq req --nospec
cliq req -s requirements.md --no-docker

Launch all agents in a tmux session and run the pipeline.

cliq run [options]
OptionDescription
-f, --forceSkip confirmation when re-running after a failed pipeline
-H, --headlessRun orchestrator in foreground, agents in background tmux
-a, --agent <name>Override the default agent (e.g. claude-code, gemini)
--debugEnable debug-level logging for this run
--dockerRun pipeline inside a Docker container
--no-dockerForce local executor (bypass docker.enabled and kubernetes.enabled)
--dashboardWith --docker: require server, suppress terminal streaming
--settings <path>Additional settings file applied with highest precedence for this run only

Pre-flight checks: Before launching, cliq run verifies that all prerequisite steps have been completed — project initialized, team assembled, requirements set, and prompts generated. If the team defines inputs, cliq run also checks that inputs.json contains all required values. If any are missing, it fails with a message to re-run cliq req with the appropriate --input flags.

When docker.enabled is true in settings, Docker is the default. When kubernetes.enabled is true, K8s takes precedence. --no-docker bypasses both. See Docker Container Isolation and Kubernetes Deployment. See Cliq SDK for -a/--agent details.

--settings <path> layers a JSON settings file on top of the global + project merge for this one run only. Nothing is persisted; the override applies uniformly to the orchestrator, every agent, and any container or sub-team launched by the run. See Per-Run Override for full semantics, precedence, and the audit log entry emitted at run start.

Terminal window
cliq run
cliq run -f
cliq run -H
cliq run --agent claude-code
cliq run --docker --dashboard
cliq run --no-docker
cliq run --settings ./prod.json

Display pipeline progress, phase state, and verdicts.

cliq status [options]
OptionDescription
-v, --verboseShow detailed diagnostics (verdicts, timing, settings, logs)
Terminal window
cliq status
cliq status -v

Full environment check — verifies local dependencies (Node.js, agent CLI, tmux, git), checks hug server connectivity (when configured), validates agent configurations, and optionally verifies a team’s tools.

cliq doctor [team_ref]
ArgumentDescription
team_refTeam reference to check required tools (optional)
Terminal window
cliq doctor
cliq doctor @cliq/feature-dev-js

Validate agent configuration — binary availability, required settings, and connectivity. Without a name, checks all agents in the current project manifest. With a name, checks that specific agent.

cliq doctor agent [name]
ArgumentDescription
nameAgent name to validate (optional — checks all agents if omitted)
Terminal window
cliq doctor agent # validate all agents in the project
cliq doctor agent curl # validate a specific agent
cliq doctor agent jira
cliq doctor agent slack # validate Slack agent
cliq doctor agent email # validate email agent

Manage Google OAuth2 authentication. Default action runs the interactive browser-based authorization flow.

cliq auth google [options]
OptionDescription
--statusShow current token status (stored, valid, expired)
--revokeRevoke token with Google and clear local storage
--client-file <path>Path to OAuth client secrets JSON (overrides settings)
Terminal window
cliq auth google # run the authorization flow
cliq auth google --client-file ~/client.json # specify client file explicitly
cliq auth google --status # check token status
cliq auth google --revoke # revoke and clear

The client secrets file is resolved from (in order): --client-file flag, then agents.gdrive.oauth_client_file in settings.json. After authorization, the refresh token is stored at ~/.cliqrc/google_token.json with restrictive permissions (0600).

See Google Drive Agent for the full OAuth setup guide.


Remove all cliq artifacts from the project (.cliq/ and generated config files).

cliq clean [options]
OptionDescription
-f, --forceSkip confirmation prompt
Terminal window
cliq clean
cliq clean -f

Migrate a team.yml from the old taxonomy (hug/exec/pull/push phase types) to the current schema. Useful when upgrading teams created with earlier versions of cliq.

cliq migrate [path] [options]
OptionDescription
--dry-runShow what would change without writing
Terminal window
cliq migrate # migrate team.yml in the current directory
cliq migrate path/to/team.yml # migrate a specific file
cliq migrate --dry-run # preview changes only

When run without --dry-run, the original file is backed up before overwriting.


AI-powered team generation and refinement. All builder commands require a configured LLM provider in ~/.cliqrc/settings.json under the builder section. Every subcommand accepts --provider and --model flags to override the configured defaults for a single invocation.

Generate a complete team from a natural language description. Exactly one input source is required. Files are written directly into the target directory (current directory by default, or [path] if specified).

cliq builder generate -f <file> [path] [options]
cliq builder generate -m <text> [path] [options]
cliq builder generate --stdin [path] [options]
Input (exactly one required)Description
-f, --file <path>Read instructions from a file
-m, --message <text>Use an inline string as the instructions
--stdinRead instructions from stdin
ArgumentDescription
pathWrite to a specific directory instead of cwd (optional, created if missing)
OptionDescription
--name <name>Override the LLM-generated team name (sets name in team.yml)
--dry-runShow what would be created without writing files
--forceOverwrite if team.yml already exists in the target directory
--provider <name>LLM provider override (openai, anthropic, google)
--model <model>Model override (e.g. gpt-4o, claude-sonnet-4-20250514)

The generated team includes a team.yml with workflow phases, role files for each agent, and A2A metadata fields (tags, inputs, use_when, not_for). The team is validated before writing — if validation fails, errors are displayed and nothing is written.

If your description references installed teams via @scope/name (e.g. “use @acme/security-audit”), the builder composes them as type: team phases with correct $(dirs.*) path stitching. All referenced teams must be locally installed.

Terminal window
cliq builder generate -m "TDD pipeline for a Python FastAPI project"
cliq builder generate -m "CI pipeline using @acme/security-audit" --dry-run
cliq builder generate -f spec.txt --name my-custom-team ./my-team
cat spec.txt | cliq builder generate --stdin --dry-run

Improve a single role in an existing team using the LLM.

cliq builder improve <team> --role <role> [options]
ArgumentDescription
teamTeam name or scoped reference
OptionDescription
--role <role>Role to improve (required)
--dir <path>Resolve team from a local directory instead of the install directory
--instruction <text>Specific improvement instruction (reads from stdin when set to -)
--dry-runPreview the improved role without writing
--provider <name>LLM provider override
--model <model>Model override

Without --instruction, the LLM uses its own judgement to improve the role based on the team’s context. With an instruction, it targets a specific aspect.

Terminal window
cliq builder improve my-team --role architect
cliq builder improve my-team --role reviewer --instruction "add security review checklist"
cliq builder improve @local/my-team --role developer --dry-run
echo "focus on error handling" | cliq builder improve my-team --role developer --instruction -

Analyse an existing team for gaps and suggest improvements — missing phases, workflow issues, or coverage holes.

cliq builder gaps <team> [options]
ArgumentDescription
teamTeam name or scoped reference
OptionDescription
--provider <name>LLM provider override
--model <model>Model override

Prints a numbered list of suggestions with type, title, description, and optionally a suggested phase or role.

Terminal window
cliq builder gaps my-team
cliq builder gaps @cliq/feature-dev-js

Generate or regenerate A2A metadata (tags, use_when, not_for) for an existing team. The metadata fields are written as top-level keys in team.yml and enable A2A discovery.

cliq builder capability <team> [options]
ArgumentDescription
teamTeam name or scoped reference
OptionDescription
--dry-runPreview the A2A metadata without writing to team.yml
--provider <name>LLM provider override
--model <model>Model override
Terminal window
cliq builder capability my-team
cliq builder capability my-team --dry-run
cliq builder capability @local/my-team --provider anthropic --model claude-sonnet-4-20250514

Authentication with CliqHub registries. All team operations (install, update, publish, info) are under Team Management Commands. Use the CliqHub web UI for browsing and searching teams.

Authenticate with a CliqHub registry. Prompts for username and password. On success, saves the JWT token to ~/.cliqrc/settings.json under hub.token. If the registry has a HUG server integrated, also provisions a HUG user JWT and writes hug.server_url and hug.token to settings.

cliq hub login [registry_url]
ArgumentDescription
registry_urlRegistry URL (optional; defaults to settings.hub.registry_url)
Terminal window
cliq hub login
cliq hub login https://internal.corp/registry

Clear hub and HUG credentials from ~/.cliqrc/settings.json. Removes hub.token, hug.token, and hug.server_url. Other settings (like hub.registry_url and hug.reviewers) are preserved.

cliq hub logout
Terminal window
cliq hub logout

Generate a named API token for headless/CI use. The token is shown once and must be saved — it cannot be retrieved again.

cliq hub token <name> [registry_url]
ArgumentDescription
nameName for the token (for identification)
registry_urlRegistry URL (optional; defaults to settings.hub.registry_url)

Requires cliq hub login first.

Terminal window
cliq hub token ci-publish
cliq hub token deploy-key https://internal.corp/registry

Commands for managing, inspecting, and manually assembling teams. For AI-powered team creation, see Builder Commands. For registry authentication, see Hub Commands.

Teams are stored in the registry at ~/.cliqrc/teams/. They can be referenced as bare names (feature-dev-js) or scoped (@cliq/feature-dev-js). Bare names go to @local/. Scoped names resolve to ~/.cliqrc/teams/@scope/.

Create a new empty team.

cliq team new <name> [path]
ArgumentDescription
nameTeam name — bare (my-team) or scoped (@myorg/my-team)
pathWrite to a specific directory instead of the resolved default (optional)
Terminal window
cliq team new my-pipeline
cliq team new @myorg/my-pipeline
cliq team new @myorg/my-pipeline ~/myorg-teams

Install a team from a local path or a hub:// registry URI.

cliq team install <source> [options]
ArgumentDescription
sourceLocal filesystem path or hub://@scope/name[@version]
OptionDescription
--forceReinstall even if the same version is already installed; skip all confirmation prompts

Local installs read team.yml from the path. Unscoped teams go to @local. Hub installs download from settings.hub.registry_url. Both write a .cliq-source provenance marker.

When installing over an existing team (same @scope/name already installed), the user must type the full team name to confirm the overwrite. Fresh installs (no existing team) proceed without prompts. Use --force to skip all prompts.

Terminal window
cliq team install ./my-team
cliq team install ./@acme/my-pipeline
cliq team install hub://@acme/my-pipeline
cliq team install hub://@acme/[email protected]
cliq team install ./my-team --force

Update installed teams to latest versions. Checks all installed teams that have a .cliq-source provenance marker. Hub-sourced teams are checked against the registry. Local-sourced teams are checked against their original path.

cliq team update [ref] [options]
ArgumentDescription
refSpecific team to update (optional)
OptionDescription
-f, --forceSkip confirmation prompt
Terminal window
cliq team update
cliq team update @acme/deploy
cliq team update --force

Remove an installed team from ~/.cliqrc/teams/.

cliq team uninstall <ref>
ArgumentDescription
refTeam to remove (@scope/name)
Terminal window
cliq team uninstall @acme/my-pipeline
cliq team uninstall @local/my-team

Copy a team from the registry to a local directory. Optionally rewrite the team’s scope and name in team.yml.

cliq team copy <source> <dest> [scope]
ArgumentDescription
sourceSource registry reference (e.g. @cliq/feature-dev-js)
destLocal directory path (must not exist; will be created)
scopeOptional — rewrite team.yml name: @acme (scope only, keeps bare name) or @acme/my-tdd (full ref, changes both scope and name). If omitted, team.yml is left untouched.
Terminal window
cliq team copy @cliq/feature-dev-js ./my-tdd
cliq team copy @cliq/hello-world ./my-hello @myorg
cliq team copy @cliq/feature-dev-js ./my-tdd @myorg/my-tdd
cliq team copy @local/my-experiment ./my-experiment-v2

Add a role to a team.

cliq team add-role <team> <role> [options]
ArgumentDescription
teamTeam to add the role to
roleRole name to add
OptionDescription
--from <path>If --from is provided, copies from the given file path. Otherwise creates a blank role file.
Terminal window
cliq team add-role my-pipeline reviewer
cliq team add-role my-pipeline my-reviewer --from ./templates/reviewer.md

Remove a role from a team.

cliq team remove-role <team> <role>
ArgumentDescription
teamTeam to remove the role from
roleRole to remove
Terminal window
cliq team remove-role my-pipeline reviewer

Generate a sequential workflow from the team’s roles, or import a workflow from a file.

cliq team gen-workflow <team> [file] [options]
ArgumentDescription
teamTeam to generate the workflow for
fileYAML file to import as the workflow (optional)
OptionDescription
--editOpen team.yml in editor after generating

If the team already has a workflow, you are prompted to confirm replacement.

Terminal window
cliq team gen-workflow my-pipeline
cliq team gen-workflow my-pipeline workflow.yml --edit

Open a team’s team.yml in your editor.

cliq team edit-workflow <team>
ArgumentDescription
teamTeam whose workflow to edit

Vendor teams (@cliq scope) cannot be edited directly — copy first with cliq team copy.

Terminal window
cliq team edit-workflow my-pipeline

Validate a team definition for consistency. Accepts either an installed team ref or a path to a source directory — handy for checking a team you’re authoring before installing or publishing.

cliq team validate [ref-or-path]
ArgumentDescription
ref-or-pathInstalled team ref (@scope/name or bare name), or a path (., ./dir, ../dir, /abs/dir). Defaults to . (current directory).

The command checks the workflow + role files and warns about bare relative paths in role content (which won’t resolve correctly when the team is embedded as a sub-team). Warnings are advisory — the command exits 0 as long as base validation passes.

For hard-fail behavior before publishing (errors instead of warnings), use:

Terminal window
cliq team publish <path> --dry-run
Terminal window
cliq team validate # validate ./team.yml in cwd
cliq team validate ./hello-world # validate a sibling source dir
cliq team validate @cliq/feature-dev-js # validate an installed team

Publish a team from a local path to a CliqHub registry. Reads name, scope, and version from team.yml. Rejects @local scope.

cliq team publish <path> [registry] [options]
ArgumentDescription
pathLocal filesystem path to the team
registryTarget registry URL (optional; defaults to settings.hub.registry_url). Use hub:// to be explicit about the default
OptionDescription
--access <level>Visibility: public (default), private, or draft
-m, --message <text>Changelog message for this version
--dry-runValidate and preview the publish without uploading
--forcePublish despite bare-relative-path lint warnings (use sparingly). Does not override structural validation failures (missing version, bad role files, etc.)

Requires cliq hub login first.

By default, publish blocks on bare-relative-path warnings — paths in role files that should be qualified with $(dirs.*) ($(dirs.project), $(dirs.self), or $(dirs.<phase>)) for portability when the team is embedded as a sub-team. Use --force only when you’ve confirmed the flagged token is a false positive (e.g. prose like bold/italic).

Terminal window
cliq team publish ./@myorg/tdd-pipeline
cliq team publish ./my-team --access private
cliq team publish ./@myorg/tdd-pipeline hub://
cliq team publish ./@myorg/tdd-pipeline https://other.registry
cliq team publish ./@myorg/tdd-pipeline -m "Added security audit phase"
cliq team publish ./@myorg/tdd-pipeline --dry-run
cliq team publish ./@myorg/tdd-pipeline --force

Bump the semantic version field in a team’s team.yml. This is a local file operation — it never touches the team registry under ~/.cliqrc/teams/. It operates on the directory at [path] (defaults to the current directory). Git actions are opt-in via --git-tag. See Versioning for details.

cliq team version <bump> [path] [options]
ArgumentDescription
bumpBump type: patch, minor, or major
pathDirectory containing the team.yml to bump (default: current directory)
OptionDescription
--git-tagCreate a git commit + tag (vX.Y.Z) after bumping. Requires path to be inside a git work-tree.

If no version exists yet, any bump type produces 1.0.0.

Terminal window
cd ~/src/cliq-teams/@myorg/my-pipeline
cliq team version patch # 1.2.0 → 1.2.1
cliq team version minor # 1.2.0 → 1.3.0
cliq team version major # 1.2.0 → 2.0.0
cliq team version patch ../sibling-team # operate on a sibling dir
cliq team version patch --git-tag # bump + git commit + tag

List installed teams with versions and source, grouped by scope. Each team’s team.yml is validated during listing — issues are surfaced inline with a ⚠ warning:

  • Unparseable YAML — the file could not be parsed.
  • Missing name — the name field is absent.
  • Bare name — the name is not in the required @scope/name format.
  • Name / directory mismatch — the name in team.yml does not match the directory structure.
  • Unscoped directory — the team directory is not inside a @scope/ parent.
cliq team list

Example output:

Teams:
@cliq
tdd
tdd-git
@local
my-team
broken-team ⚠ team.yml missing "name" field

Show detailed team information. Use hub://@scope/name for registry info. Displays workflow DAG, phases, roles, external data, and A2A metadata. Emits a warning if the team.yml name does not match the directory-derived reference.

cliq team info <ref> [--brief]
ArgumentDescription
refTeam to display (@scope/name or hub://@scope/name)
OptionDescription
--briefCompact one-line-per-field output
Terminal window
cliq team info @cliq/feature-dev-js
cliq team info @local/my-pipeline
cliq team info hub://@acme/deploy
cliq team info @cliq/feature-dev-js --brief

Each cliq run generates an instance ID (using .cliq/project.name as a prefix if set) and creates a tmux session with that name. This enables multiple concurrent pipelines across different projects. When instance_id is omitted from commands below, it is read from .cliq/cliq.id in the current directory.

List all active cliq tmux sessions across all projects.

cliq instance list [options]
OptionDescription
--allInclude completed and failed instances (not just active)
--treeShow instance hierarchy with sub-instances

Shows the instance ID for each active session.


Show detailed status of a running or recent instance, including pipeline progress, active phase, and sub-instances.

cliq instance info [instance_id]
ArgumentDescription
instance_idInstance to inspect (optional; defaults to current project)
Terminal window
cliq instance info
cliq instance info my-api-5f5c14

Example output:

Instance: my-api-5f5c14
Project: /Users/elan/src/my-api
Team: @acme/feature-dev-js
Status: RUNNING
Started: 2026-04-30 14:22:03 (2h 15m ago)
Session: my-api-5f5c14 (tmux)
Pipeline: architect → developer → security-audit → reviewer
Progress: 2/4 phases complete
Active: security-audit
Sub-instances:
└─ my-api-5f5c14.security-audit::cliq-a3f2c1 RUNNING (phase: security-audit)

Attach to a cliq tmux session.

cliq instance attach [instance_id]
ArgumentDescription
instance_idInstance to attach to (optional; defaults to current project)
Terminal window
cliq instance attach
cliq instance attach myproject-a1b2c3

Kill a cliq tmux session.

cliq instance kill [instance_id] [options]
ArgumentDescription
instance_idInstance to kill (optional; defaults to current project)
OptionDescription
--no-cascadeKill only the top-level instance without killing sub-instances
Terminal window
cliq instance kill
cliq instance kill myproject-a1b2c3
cliq instance kill myproject-a1b2c3 --no-cascade

The local server provides an HTTP/WebSocket API for the Dashboard, A2A agent communication, and mesh networking.

Start the local cliq server.

cliq server start [options]
OptionDescription
-p, --port <port>Port number (default: 4100)
--a2aEnable A2A agent mode (join configured meshes)
--mesh <names...>Activate specific mesh(es) by name (implies --a2a)
--public-url <url>Public URL for agent card and mesh registration (e.g. ngrok tunnel; implies --a2a)
Terminal window
cliq server start
cliq server start -p 8080
cliq server start --a2a
cliq server start --mesh production staging
cliq server start --public-url https://abc123.ngrok.io

Stop the running cliq server.

cliq server stop

Show server status including PID, port, and uptime.

cliq server status

Manage bearer tokens for server authentication. Tokens are stored as SHA-256 hashes in the database and survive server restarts. See Server — Authentication for an overview.

Generate a random cliq_sk_ bearer token and print it to stdout. This is an offline operation — no running server or database is required.

cliq server token generate
Terminal window
cliq server token generate
# → cliq_sk_a1b2c3d4e5f6...

Useful for pre-generating tokens to set as CLIQ_ADMIN_TOKEN or for manual database insertion.


Print the SHA-256 hash of a plaintext token. Offline — no server needed. Useful for manual database operations or verifying token hashes.

cliq server token hash <plaintext>
ArgumentDescription
plaintextThe cliq_sk_ token to hash
Terminal window
cliq server token hash cliq_sk_a1b2c3d4e5f6...
# → 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

Create a new bearer token and persist it in the database.

cliq server token create --label <label> [options]
OptionDescription
--label <label>Human-readable label for the token (required)
--server <url>Server URL (defaults to local running server)
--token <token>Auth token for the request (defaults to local session token)
--db-url <url>Connect directly to the database — no running server needed

By default, create authenticates against the running local server using the session token from ~/.cliqrc/server.json. Use --server and --token to target a remote server. Use --db-url for headless provisioning without a running server.

Terminal window
# Local server (auto-discovers session token)
cliq server token create --label "jira-plugin"
# Remote server
cliq server token create --label "ci-agent" \
--server https://cliq.prod.example.com \
--token cliq_sk_admin...
# Direct database (no server needed)
cliq server token create --label "bootstrap" \
--db-url postgresql://user:pass@db:5432/cliq

The plaintext token is shown once and cannot be retrieved again. Save it immediately.


List all bearer tokens with their status.

cliq server token list [options]
OptionDescription
--server <url>Server URL (defaults to local running server)
--token <token>Auth token (defaults to local session token)
Terminal window
cliq server token list

Example output:

ID Label Source Created Last Used Active
----------------------------------------------------------------------------------------------
tok_a1b2c3 jira-plugin api 2026-05-09 14:30:00 2026-05-09 15:12:33 yes
tok_d4e5f6 ci-agent cli 2026-05-09 14:35:00 - REVOKED
tok_g7h8i9 admin env 2026-05-09 14:00:00 2026-05-09 15:00:00 yes

Revoke a bearer token by ID. Revoked tokens are immediately rejected on all subsequent requests.

cliq server token revoke <id> [options]
ArgumentDescription
idToken ID to revoke (e.g. tok_a1b2c3)
OptionDescription
--server <url>Server URL (defaults to local running server)
--token <token>Auth token (defaults to local session token)
Terminal window
cliq server token revoke tok_a1b2c3

Built-in verification tools used by workflow checks and agents. Each tool exits with code 0 on success and 1 on failure.

Run a built-in tool by name. Each tool exits with code 0 on success and 1 on failure.

cliq tool run <name>
ArgumentDescription
nameTool name

List all available tools with their descriptions.

cliq tool list

CodeMeaning
0Success
1Failure — invalid arguments, command error, tool failure, or failed environment check

Commands that encounter errors set process.exitCode = 1. Uncaught exceptions and unhandled promise rejections also result in exit code 1.


VariableDescription
CLIQ_HOMEOverride the default cliq home directory (~/.cliqrc)
CLIQ_ADMIN_TOKENBootstrap a bearer token into the database on server start (for containerized/headless deployments)
EDITOREditor opened by team edit-workflow and --edit flags