> For the complete documentation index, see [llms.txt](https://docs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.akinon.com/technical-guides/acc/acc-cli/acc-cli-tui.md).

# ACC CLI TUI

`akinoncli` opens a full-screen, keyboard-driven interface automatically when a command runs attached to a real terminal (TTY) without an explicit output format — for example, bare `akinoncli` or `akinoncli project list`. Passing `-o json`, `-o yaml`, or `-o table`, or running outside a TTY (CI, piped output), always falls back to plain CLI output instead — see `ACC_CLI_DOCS.md`.

**Supported platforms**: any terminal emulator on macOS, Linux, or Windows that supports a TTY and ANSI/truecolor escape codes.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FrfIR08vBNdW1LjXmOv2g%2Fusage-demo.gif?alt=media&amp;token=36e4c1cd-13f4-4b3a-99f5-999362b64743" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Navigation</mark>

Every screen in the TUI follows the same rules, so once you've used one, you can drive all of them:

| Key                              | Action                                              |
| -------------------------------- | --------------------------------------------------- |
| `↑` / `↓` or `Tab` / `Shift+Tab` | Move the selection in a list or between form fields |
| `Enter`                          | Open the selected item, or submit the current form  |
| `Esc`                            | Go back to the previous screen, or close an overlay |
| `Ctrl+C`                         | Quit the TUI from anywhere                          |
| `/`                              | Search/filter, on any list screen                   |

Letter shortcuts (`C`, `E`, `D`, …) are case-insensitive — holding Shift doesn't change what they do. The one exception is the logs screen, where `g`/`G` are deliberately distinct (oldest/latest).

On any row that supports it, `Y` (or `Enter`) opens a copy-to-clipboard picker — select a field or the entire row and copy it without leaving the list:

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FqdklV5Fus88Jjh1lCmZ6%2Fcopy-to-clipboard.png?alt=media&amp;token=7f910007-9ef9-4142-8b66-380d07184ed1" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Home Menu</mark>

Launch `akinoncli` with no arguments (or with output not forced to `json`/`yaml`/`table`) and you land on the home menu — the hub for every resource the TUI manages. Jump straight to any section with its bracketed letter, or move the selection with `↑`/`↓` and press `Enter`.

| Key | Section          |
| --- | ---------------- |
| `P` | Projects         |
| `A` | Applications     |
| `D` | Domains          |
| `K` | Public keys      |
| `U` | Users            |
| `R` | Roles            |
| `E` | Email identities |
| `S` | Switch account   |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FBfvIP8R9fJcYueNWRFhF%2Fhome-menu.png?alt=media&amp;token=e53766dd-4486-485d-b7c5-6bafaa65c056" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Projects</mark>

This is the flow you'll use most: browsing projects, navigating into a project's apps, and deploying/inspecting them.

### <mark style="color:red;">Project List</mark>

`project list` opens a scrollable, searchable (`/`) list.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FL5FnNJL2MYJ89HoArCQQ%2Fproject-list.png?alt=media&amp;token=28f4310a-05fe-40ea-b8c1-6863f7ecf4d8" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">Project Detail</mark>

Pressing `Enter` on a project opens its detail screen — the project's metadata plus a table of every ProjectApp installed in it.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FbwGKcgPaXIzxVp3POdqj%2Fproject-detail.png?alt=media&amp;token=ed8ed272-a643-4a49-94f0-adb6efd85425" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">Project Create</mark>

Press `C` from the project list to open a form for creating a new project.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgzf7DDir0ntlgFGRRePX%2Fproject-create.png?alt=media&amp;token=42705d42-476c-464c-bd79-cc47ef78e639" alt="" width="563"><figcaption></figcaption></figure>

Selecting a ProjectApp row provides the following options:

| Key                             | Opens                                                |
| ------------------------------- | ---------------------------------------------------- |
| `D`                             | Confirm screen — redeploys the app's current version |
| `L`                             | **Logs** — shows the ProjectApp's logs               |
| `M`                             | **Monitoring** — shows CPU/memory history charts     |
| (from the app row)              | **Env vars** — add/remove environment variables      |
| `A` (in the certificate screen) | **Attach certificate**                               |

Press `Esc` to close any of these screens.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2F1hetA1x22Le9IqFJuMmF%2Fproject-app-logs.png?alt=media&amp;token=e5125e4d-65fa-4238-97e8-7b02546c414a" alt="" width="563"><figcaption></figcaption></figure>

In the environment screen:

| Key | Action                                                             |
| --- | ------------------------------------------------------------------ |
| `A` | Add one variable at a time                                         |
| `B` | Open a bulk-add form for pasting several `KEY=VALUE` pairs at once |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FP1K7hydVti8T992DmEEB%2Fproject-app-env.png?alt=media&amp;token=9848aaba-da23-429b-9f36-3eb15e6fceea" alt="" width="563"><figcaption></figcaption></figure>

In the monitoring screen:

| Key       | Action                                                          |
| --------- | --------------------------------------------------------------- |
| `T`       | Choose the time range to display                                |
| `S`       | Set the granularity — how many minutes apart each data point is |
| `R`       | Set how often the view refreshes, in minutes                    |
| `↑` / `↓` | Switch which pod's charts are shown                             |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FyA79eHuXmbQrKrtejVQ9%2Fproject-monitoring.png?alt=media&amp;token=7fe74a2a-4f4e-4d22-99b9-543787349910" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Applications</mark>

Lists the applications you've developed.

| Key     | Action                                           |
| ------- | ------------------------------------------------ |
| `Enter` | Open its detail screen                           |
| `E`     | Edit it                                          |
| `R`     | Open its build reports                           |
| `L`     | Open the version/error logs for a specific build |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FnWEV4GahDJxB19lAnq94%2Fapplication-list.png?alt=media&amp;token=c1b72e0f-6e14-43b1-b7c8-4dd3b5ceac67" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">Application Version</mark>

Shows an application's build versions, listed on its detail screen.

| Key | Action                           |
| --- | -------------------------------- |
| `S` | Mark the selected version stable |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FPfU8bY5PApbTjSuENi8B%2Fapplication-detail.png?alt=media&amp;token=be70becf-38b6-4c5d-916d-61bb80a5e715" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FT5DqNpqaHEjRbojYBzE7%2Fapplication-version-logs.png?alt=media&amp;token=a89eebc1-452e-41ae-a3d5-866ceb2a1e55" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Domains</mark>

### <mark style="color:red;">Domain List</mark>

A domain's list screen lists its domains.

| Key     | Action                                            |
| ------- | ------------------------------------------------- |
| `C`     | Create a new domain                               |
| `Enter` | Open the domain's detail and certificates screens |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FzVCgtDif1g5ZMHEOGBEw%2Fdomain-list.png?alt=media&amp;token=c14cd5e7-7b6b-4fc9-b495-d9a656c1311e" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">Domain Detail</mark>

A domain's detail screen show its certificate and DNS records.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FKbv2kwLtt8CKocx3tTEq%2Fdomain-detail.png?alt=media&amp;token=a5e5fcbe-60ce-4e7e-80ee-b1d4d2bb37d8" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">Domain Create</mark>

Press `C` for creating a new domain. The form asks for the hostname and whether the domain is managed by ACC or Client. If managed by ACC, the DNS records are automatically created and managed by ACC. If managed by Client, the DNS records must be manually created and managed by the client.

| Key               | Action                                            |
| ----------------- | ------------------------------------------------- |
| `Tab` / `↑` / `↓` | Switch between the hostname and managed-by fields |
| `←` / `→`         | Toggle managed-by while that field is focused     |
| `Enter`           | Create the domain                                 |
| `Esc`             | Cancel                                            |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FBTV8OzL9HX120IIsaMF7%2Fdomain-create.png?alt=media&amp;token=45df3060-d22f-4cf3-b3e3-248f0c724366" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Public Keys</mark>

`publickey list` lists the created public keys in your account.

| Key | Action                                         |
| --- | ---------------------------------------------- |
| `C` | Create a new public key                        |
| `D` | Delete the selected public key                 |
| `Y` | Copy a field or the whole row to the clipboard |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FxUyLkr82Jg5NAIsj9AEu%2Fpublickey-list.png?alt=media&amp;token=81d36dfd-0eaf-4be1-8356-f2921856a9ac" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">Public Key Create</mark>

Press `C` from the public keys list to create a new public key.

| Key               | Action                                  |
| ----------------- | --------------------------------------- |
| `Tab` / `↑` / `↓` | Switch between the label and key fields |
| `Enter`           | Create the public key                   |
| `Esc`             | Cancel                                  |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FfPI6fvVGXrK9VcGt9go0%2Fpublickey-create.png?alt=media&amp;token=84276bca-ee44-4072-9478-4c8113f6dc54" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Users</mark>

`users list` lists the users on the active account.

| Key | Action                                         |
| --- | ---------------------------------------------- |
| `C` | Create a new user                              |
| `D` | Delete the selected user                       |
| `Y` | Copy a field or the whole row to the clipboard |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2F1egug0pi2FLsCzG5e6zf%2Fusers-list.png?alt=media&amp;token=a5135ac4-3f45-4a7f-95c0-a5f4a3e5290a" alt="" width="563"><figcaption></figcaption></figure>

### <mark style="color:red;">User Create</mark>

Press `C` for creting a new user. The form asks for the username, email, and role.

| Key               | Action                                     |
| ----------------- | ------------------------------------------ |
| `Tab` / `↑` / `↓` | Switch between fields                      |
| `←` / `→`         | Cycle the role while that field is focused |
| `Enter`           | Create the user                            |
| `Esc`             | Cancel                                     |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FJrfyYvh1lgbfwARjaJer%2Fuser-create.png?alt=media&amp;token=c899c75c-e786-467a-bfda-a4cb856a63a4" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Roles</mark>

`roles list` lists the roles on the active account.

| Key | Action                                         |
| --- | ---------------------------------------------- |
| `D` | Delete the selected role                       |
| `Y` | Copy a field or the whole row to the clipboard |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FB8nUK4yKd6ZI4TD3iqoF%2Froles-list.png?alt=media&amp;token=bffbe248-4504-407b-b36f-44976d607702" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Email Identities</mark>

`emailidentities list` lists the verified email identities on the active account.

| Key     | Action                             |
| ------- | ---------------------------------- |
| `C`     | Create a new email identity        |
| `D`     | Delete the selected email identity |
| `Enter` | View email identity details        |

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FJP7TPwQAYzvIrRgEOoEn%2Femail-identities-list.png?alt=media&amp;token=4baf8e3f-fb44-48f1-a7ef-e0d63606ddc2" alt="" width="563"><figcaption></figcaption></figure>

## <mark style="color:red;">Switching Accounts</mark>

`S` from the home menu (or `account switch` from the CLI with no argument) opens an interactive picker over every account you're a member of.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2FlqkCJkeweYwK3SoKZbF5%2Faccount-switch.png?alt=media&amp;token=28b08d7b-cf96-4117-9c78-b74c5eafdfb8" alt="" width="563"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.akinon.com/technical-guides/acc/acc-cli/acc-cli-tui.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
