# CLI commands

What each Line9 CLI command does. Run line9 <command> --help for its options.

## Draw and view

| Command               | Does                                                                  |
| --------------------- | --------------------------------------------------------------------- |
| `line9 render <file>` | Open a Mermaid file in a browser tab. Run it again to update the tab. |

Options for `line9 render`:

- `--out <file>` saves a flowchart as an SVG file instead of opening a tab. `--out -` writes the SVG to the terminal.
- `--theme <name>` chooses the theme: `boardroom`, `linen` or `blueprint`.
- `--stdin` reads the diagram from standard input instead of a file.
- `--no-open` prints the tab's address without opening it, for working on another computer over SSH.

## Publish and fetch

These need [Line9 Pro](/docs/getting-started#line9-pro).

| Command                | Does                                                                                                                   |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `line9 publish <file>` | Publish a flowchart and print its address. Run it again on the same file to publish a new version.                     |
| `line9 ls`             | List the diagrams your team has published.                                                                             |
| `line9 pull <name>`    | Save a published diagram's text in a `diagrams` folder inside the folder you're in, ready to change and publish again. |
| `line9 open <name>`    | Do what `pull` does, then open the diagram in a browser tab.                                                           |

Options for `line9 publish`:

- `--name <name>` names the diagram. It starts as the file's name.
- `--visibility team`, `public` or `private` chooses who can see it. See [Who can see it](/docs/publish#who-can-see-it-team-public-or-private).
- `--new` publishes the file as a new diagram, even if it was published before.

`line9 publish` adds a `line9:` block to the file, which records the published diagram it belongs to. Keep the block, and later publishes of the file add new versions to that diagram.

## Sign in

| Command        | Does                                                                               |
| -------------- | ---------------------------------------------------------------------------------- |
| `line9 login`  | Sign this computer in to line9.ai.                                                 |
| `line9 logout` | Sign out, and remove the sign-in from this computer.                               |
| `line9 status` | Show the account you're signed in to, whether it has Line9 Pro, and your settings. |

## Coding agents

| Command              | Does                                                                                                                                                                                            |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `line9 bootstrap`    | Tell Claude Code and Codex that Line9 is installed, and add the Line9 flowchart skill. `--project` sets up only the project you're in. `--print` shows what it would write, without writing it. |
| `line9 robot`        | Give an agent a quick summary: the main commands, the install's health and what to do next.                                                                                                     |
| `line9 robot-docs`   | Print a handbook for agents.                                                                                                                                                                    |
| `line9 capabilities` | Print every command, option and exit code, for agents to read.                                                                                                                                  |

Every command an agent uses takes `--json`, and then prints one JSON object.

## Setup and problems

| Command                      | Does                                                                                                                                                               |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `line9 doctor`               | Check the install and what it depends on.                                                                                                                          |
| `line9 config get <key>`     | Show a setting. `config set` changes one, and `config path` shows where the settings are kept.                                                                     |
| `line9 feedback "<message>"` | Report a layout problem to Line9. Only your message is sent, never a diagram.                                                                                      |
| `line9 completions <shell>`  | Print the script that completes commands when you press **Tab**, for `bash`, `zsh`, `fish` or `powershell`. The Homebrew and shell installers set this up for you. |
| `line9 --version`            | Show the version.                                                                                                                                                  |

`line9 --help` lists every command and exit code.

## Next

- [Line9 for coding agents (CLI)](/docs/cli): install the CLI and set up your agent.
- [Publish a diagram](/docs/publish): who can see a published diagram.
