Skip to main content

Tiden CLI

The tiden CLI is a standalone REST client. It does not depend on protobuf code generation or backend source code.

Install

brew install --cask qase-tms/tap/tiden
curl -fsSL https://tiden.ai/install.sh | bash

Windows:

irm https://tiden.ai/install.ps1 | iex

Configure

Preferred:

tiden setup

Manual:

tiden config set baseUrl https://app.tiden.ai
printf '%s' "$TOKEN" | tiden config set apiToken -
tiden config verify

Global flags

FlagPurpose
--base-url, -uAPI base URL
--api-token, -tAPI token
--workspace-id, -wDefault workspace
--timeoutPer-request timeout such as 30s
--format, -fjson or text; defaults adaptively (see Output format). run results also accepts tree
--verboseFull per-item progress narration instead of the single-line spinner

Output format

--format picks its default from whether stdout is a terminal:

  • stdout is a terminal — default is text, the styled human rendering.
  • stdout is piped or redirected (scripts, CI, AI coding agents) — default is json, byte-identical to earlier releases.
  • tiden setup and tiden doctor always default to text.

Precedence, highest first:

  1. An explicit --format json|text flag.
  2. TIDEN_FORMAT=json|text (any other value is ignored).
  3. setup / doctor's own text default.
  4. The adaptive default above.

--format json is the stability promise. Anything that parses tiden's stdout should pass it explicitly rather than rely on stdout not being a terminal — some agent harnesses run shell commands under a pseudo-terminal, which tiden correctly reads as interactive. Piped and non-interactive invocations are otherwise unaffected; only running tiden yourself at a shell prompt changes.

Environment variables

Beyond TIDEN_BASE_URL, TIDEN_API_TOKEN, TIDEN_WORKSPACE_ID, and TIDEN_TIMEOUT, the CLI honors:

VariableEffect
TIDEN_FORMAT=json|textPins the output format, overriding the adaptive default
TIDEN_FORCE_TTY=1Forces the styled rendering even when stdout/stderr are piped
TIDEN_NO_PROGRESS=1Disables the progress spinner
TIDEN_ACCESSIBLE=1Switches interactive prompts to a screen-reader-friendly mode
NO_COLORDisables color
CLICOLOR / CLICOLOR_FORCEStandard CLICOLOR conventions; CLICOLOR_FORCE=1 forces color when piped
CIDisables the progress spinner

Styling degrades on its own: color is downsampled or stripped to match the terminal, and the Unicode status symbols fall back to ASCII outside a UTF-8 locale. Nothing carries meaning through color alone, so output stays legible with NO_COLOR set.

Command groups

tiden config show|set|verify
tiden setup
tiden doctor
tiden auth me
tiden workspace list
tiden product list|create|bind
tiden requirement list|get|create|update|attribute|push|resume|rollback
tiden test list|get|create|delete|link-requirement|unlink-requirement|derive-links|ingest|push|resume|rollback|apply-pending-links
tiden branch list|create|delete|merge-preview|merge|link-proposals list|link-proposals review
tiden component list|create|update
tiden environment list|create|get|delete
tiden release list|create|get|issues
tiden issue list|get|events|event|stats|fix-context|resolve|ignore|reopen
tiden gate check|features|feature
tiden run list|get|create|exec|report|results|watch|complete|abort|delete|upload|attachment
tiden coverage-gaps
tiden trace
tiden draft dry-run
tiden agent types|config list|config create|config delete|run|runs|run-status
tiden intent start|refine|reconcile|nudge|resume|capture|distill|auto|install|uninstall|status|captures list|captures prune
tiden skill list|install|update|uninstall
tiden version

The MCP server is no longer a tiden subcommand. Use the standalone tiden-mcp-server binary.

Issue command notes

  • Raw event payloads are omitted by default. issue get, issue events, and issue event strip the full raw event JSON unless you pass --payload. Symbolicated stack frames are always included, so the useful part of an occurrence is there without the bulk. issue fix-context never returns the raw payload.
  • --environment, --release, and --component accept names as well as IDs. A value that looks like an ID is used as-is; anything else is resolved case-insensitively against the product's environments, releases, and components. An unknown name fails with the list of valid values instead of silently returning everything.
  • --level and --platform take repeated or comma-separated values.
  • issue resolve, issue ignore, and issue reopen accept several issue IDs at once. Passing more than one also needs a product, from --product-id or from the repository binding.

For the agent-driven workflow these commands were built for, see Triage issues with an agent.

Exit codes

CodeMeaning
0Success
1General error
2Auth error
130Interrupted

Branch notes

Requirement and test commands support branch flags where branch-scoped behavior exists. Component branch flags are not yet wired in the CLI.