# okibi studio

> Chat with a CLI, edit its okibi.yml, review improvements and make requests

Generated from okibi 0.2.7. Every command also accepts `--agent`; see [Agent and CI mode](https://okibi.ai/docs/cli/agent-mode.md).

## okibi studio

The studio of a CLI built from okibi.yml, as on the web: a project chat whose agent edits okibi.yml and phrases custom requests, okibi.yml itself (Save & build), the improvements its builds suggest, and the requests you made.

`okibi studio <cli>` shows where it all stands: a build waiting for Publish, the newest request, the newest build's improvements, and okibi.yml. Builders only. Changes ship in a build held for Publish (`okibi runs publish`).

```sh
okibi studio <cli> [flags]
okibi studio [command]
```

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

Examples:

```sh
okibi studio weather
okibi studio chat weather
okibi studio chat weather --text "Group the forecast commands" --agent
okibi studio config edit weather
okibi studio improvements weather
okibi studio improvements accept weather --section help
okibi studio requests new weather "Add a --city flag that geocodes the name"
```

## okibi studio chat

The studio's chat: an agent with the CLI's repository that edits okibi.yml and phrases custom requests. Its okibi.yml changes save after each of its turns and build, held for Publish; a request it phrases (a ```request block) sends itself. Your open chat on the CLI is reused, so a later chat (here or on the web) picks up where this one left off.

In a terminal, with no --text, the chat opens in the terminal UI. With --text (or --file, - for stdin) it sends one message, prints the agent's answer and what it ran, and exits once the agent is done: the scriptable form.

```sh
okibi studio chat <cli> [flags]
```

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--file` | string |  | read the message from a file, or - for stdin |
| `--text` | string |  | send this message and wait for the agent's answer |
| `--timeout` | duration | 15m0s | how long to wait for the agent's answer |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

Examples:

```sh
okibi studio chat weather
okibi studio chat weather --text "Rename forecast get to forecast"
echo "Why is alerts a group?" | okibi studio chat weather --file - --agent
```

## okibi studio config

The studio's Config tab: okibi.yml as the next build starts from it (an open release pull request's branch until it merges), and where it stands. Edit it with `okibi studio config edit`; Save & build starts one build that ships the edit, held for Publish.

```sh
okibi studio config <cli> [flags]
okibi studio config [command]
```

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--raw` | bool |  | print only the file |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio config edit

Opens okibi.yml in $VISUAL/$EDITOR, or reads it from --file (- for stdin), then Save & build: the edit is checked (YAML, the file's shape, what a person may change) and one build starts that ships it, held for Publish. Only comments or layout: nothing builds. When okibi.yml changed in the repository since it was read, nothing starts: keep yours (overwriting that) or load the new one. With --file, pass --sha (from `okibi studio config <cli> --json`) to refuse saving over a copy that moved since you read it. Your open project chat takes the save.

```sh
okibi studio config edit <cli> [flags]
```

Also available as: `set`, `save`

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `-f, --file` | string |  | read okibi.yml from a file (- for stdin); default opens an editor |
| `--sha` | string |  | the okibi.yml sha the edit was made on (default: the one read now) |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

Examples:

```sh
okibi studio config edit weather
okibi studio config edit weather --file okibi.yml --sha 3f2a… --agent
```

## okibi studio improvements

The studio's Improvements tab: what the CLI's builds suggest, one section per step (Names, Help, …), each with the change accepting it writes into okibi.yml and why. Accept or reject one, or a whole section; an accepted change builds, held for Publish, and while a build runs the next one carries it. Explain asks the project chat about a section. Also shows the newest build's agent ready optimization and its jobs.

```sh
okibi studio improvements <cli> [flags]
okibi studio improvements [command]
```

Also available as: `suggestions`

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--files` | bool |  | include the files a workflow suggestion writes |
| `--no-diffs` | bool |  | skip each suggestion's okibi.yml change |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

Examples:

```sh
okibi studio improvements weather
okibi studio improvements accept weather k17a… k17b…
okibi studio improvements reject weather --section naming
okibi studio improvements explain weather help
```

## okibi studio improvements accept

Accepting records the decision at once, and a build carries it, held for Publish. While a build runs (or a Regenerate waits for Publish) the next build carries it. A person's own edit to the same thing wins.

```sh
okibi studio improvements accept <cli> [<id>…] [flags]
```

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--section` | string |  | accept every suggestion of this step (the key in brackets) |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio improvements explain

Sends the chat the section's suggestions and their okibi.yml changes, as the studio's Explain does, and prints the agent's answer. --print shows the message without sending it.

```sh
okibi studio improvements explain <cli> <step> [flags]
```

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--print` | bool |  | print the message Explain sends, without sending it |
| `--timeout` | duration | 15m0s | how long to wait for the agent's answer |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio improvements reject

Nothing is written to the repository. Rejecting an accepted suggestion no build carries yet takes the accept back. One a build already carries, or that shipped, can't be rejected any more, and the answer says why.

```sh
okibi studio improvements reject <cli> [<id>] [flags]
```

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--section` | string |  | reject every suggestion of this step (the key in brackets) |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio requests

Custom requests: a change okibi.yml can't make, made by Okibi in the project chat's sandbox. The chat's agent phrases them (they send themselves); or send one yourself. A done request's change goes into the next build, held for Publish with everything else. One runs at a time.

```sh
okibi studio requests <cli> [flags]
okibi studio requests [command]
```

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

Examples:

```sh
okibi studio requests weather
okibi studio requests new weather "Add a --city flag that geocodes the name"
okibi studio requests cancel weather
okibi studio requests again weather
```

## okibi studio requests again

Send again a request whose change couldn't apply (default: the newest)

```sh
okibi studio requests again <cli> [<request-id>] [flags]
```

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio requests cancel

Cancel a running request (default: the newest)

```sh
okibi studio requests cancel <cli> [<request-id>] [flags]
```

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio requests new

Sends the request from your open project chat on the CLI, opening one if there is none: requests run in their chat's sandbox. Okibi makes the change, asks back, or says why it can't; follow it with `okibi studio requests`.

```sh
okibi studio requests new <cli> [<text>…] [flags]
```

Also available as: `send`

Flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--file` | string |  | read the request from a file, or - for stdin |
| `--session` | string |  | the project chat to send it from (default: your open one) |

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |

## okibi studio show

Show where the studio stands (same as `okibi studio <cli>`)

```sh
okibi studio show <cli> [flags]
```

Inherited flags:

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--api-url` | string | https://okibi.ai | Okibi API base URL |
| `--json` | bool |  | print JSON |
| `--workspace` | string |  | workspace slug (default: the API key's workspace, or OKIBI_WORKSPACE) |
