﻿# CLI

cyoda-go command-line interface — narrative navigator over `cyoda help cli`.

export const cliTopics = (() => {
  const found = helpIndex.topics.filter(t => t.path[0] === 'cli');
  if (found.length === 0) {
    throw new Error(`EmptyNavigator: reference/cli.mdx filtered helpIndex to zero topics under prefix "cli" (pinned v${helpIndex.pinnedVersion}). Likely a topic rename upstream.`);
  }
  return found;
})();

<FromTheBinary topic="cli" />

The `cyoda` binary is the server and its own control surface. It runs as a
single long-lived process by default, with a small number of subcommands
for bootstrapping, health, and migration. Every flag, subcommand, and env
var is documented in-binary via `cyoda help <topic>` and is version-
accurate to whatever binary you are running.

## Output formats

Every help topic supports three output formats via `--format`:

- `text` (default on a TTY) — human reading.
- `markdown` (default off-TTY) — paste into docs, PRs, chat.
- `json` — machine-readable, stable schema; consumed by tools like
  cyoda-docs' own build pipeline.

## Drilldowns

Topics that naturally subdivide take a multi-word path on the CLI: `cyoda
help search async`, `cyoda help grpc compute`, and so on. The same path
appears in the JSON surface as an array.

## Related topics

The subset of `cyoda help` topics directly relevant to the CLI surface
itself is below.

  {cliTopics.map((t) => (
    <li>
      <strong><code>cyoda help {t.path.join(' ')}</code></strong> — {t.title.replace(/^[^—]*—\s*/, '')}
      <br />
      <span style="opacity: 0.8;">{t.synopsis}</span>
    </li>
  ))}