# Use the full-screen app

> Move around the workspace, act on records and talk to Ask AI without leaving the terminal.

Source: https://app.getoatmilk.com/docs/terminal/app

Run `oatmilk` to open the app. It shows the same workspace as the browser, for your role, with Ask AI's message box always at the bottom.

```bash
oatmilk                                   # opens Home
oatmilk "What needs me today?"            # opens the app and asks Ask AI straight away
oatmilk --page /finance/transactions      # opens a page by its address in the web app
```

## The screen

- **Sidebar.** The same pages as the workspace: Home, Inbox, Checklist, Transactions, Reimbursements, Invoices, Reports, Agreements, Contractors, Settings and more, depending on your role. It hides when the terminal is narrower than 80 columns.
- **The page.** A list, with the open record beside it: transactions, merchants, trips, statements, invoices, History, webhooks and more. Pages without a terminal view yet, such as Calendar, say what the page is for, suggest questions for Ask AI and link to the browser.
- **Ask AI.** The message box at the bottom. Its chat docks on the right when the terminal is at least 120 columns wide.
- **The header and status bar.** The company you're in (and the address, when it isn't the hosted Oatmilk), the keys that work right now, and whether Ask AI is working.

`Tab` and `⇧Tab` move between the sidebar, the page and the message box. Press `?` for every key.

## Lists and records

| Key | Does |
| --- | --- |
| `↑` `↓`, `j` `k`, `PgUp` `PgDn`, `g` `G` | Move |
| `⏎` or `→` | Open the record beside the list |
| `Esc` or `←` | Close it, or go back to the sidebar |
| `/` | Search this list |
| `[` `]` | The previous or next view, such as Needs you or Done |
| `i` | Ask AI about the highlighted record |
| `o`, `y` | Open it in the browser, copy its link |
| `R` | Refresh |
| Letters | The record's actions, shown at the bottom: `a` approve, `c` categorize, and so on |

Lists load more as you scroll, and every change shows at once. The browser shows the same change, because both use the same API.

## Jump anywhere with ⌃K

`⌃K` opens the palette. Type a page name, a merchant, an invoice number or a contractor's name, and press `⏎`. It also runs any API action by name, such as `invoices.void`, starting you off with its required fields.

## Ask AI

Type in the message box and press `⏎`. Ask AI is the same as in the browser: the same tools, the page you're on as context, and your chats in both places.

- **Approvals.** Before Ask AI deletes, voids, grants access or emails people, the message box asks you. Nothing changes until you approve.
- **Questions.** When Ask AI needs an answer, its choices appear in the message box. Choose one with `↑` `↓`.
- **Navigation.** "Take me to receipt matching" moves the app there. When Ask AI offers a page, `⌃G` opens it.
- **The chat.** `⌃O` shows or hides it, `PgUp` `PgDn` scrolls it, and `Esc` stops an answer. `⌥⏎` or `⌃J` adds a new line.

When the app starts, it picks up your latest chat from the last 30 minutes.

## Ask AI on a model on your computer

Ask AI can think on [Ollama](https://ollama.com), [LM Studio](https://lmstudio.ai) or any OpenAI-compatible server on your computer, while your books stay where they are, including in Oatmilk Cloud. The model reads them through Oatmilk's tools, signed in as you, so it can do only what you can. The questions, the answers and everything the model reads stay on your computer.

```bash
oatmilk ai use ollama      # starts Ollama if it's installed, downloads a model if it has none, and checks it
oatmilk ai use lmstudio    # or a model already loaded in LM Studio
oatmilk ai                 # where Ask AI thinks, and the models found here
oatmilk ai use oatmilk     # back to Oatmilk's AI
```

In the app, `/model` lists Oatmilk's AI and every chat model it finds, and switches at once. The top bar shows the model while one on your computer is in use.

- Pick a model that calls tools, such as Qwen 3.5. `oatmilk ai test` checks it; the list says which models may not.
- Every change still asks you first, in the message box, or with `--yes` in scripts.
- These chats stay on your computer, so `/chats` and `--chat` are for Oatmilk's AI only.
- Background work, such as reading receipts and sorting transactions, keeps running wherever your Oatmilk runs it. To run that on your computer too, [run Oatmilk locally](https://app.getoatmilk.com/docs/self-hosting/your-computer.md).

## Add a receipt

**Add a receipt** leads Home, as in the browser, and is in ⌃K. Type the file's path, or drop the file onto the terminal, which types its path for you; several files work too. From a command line:

```bash
oatmilk add ~/Downloads/receipt.pdf "~/Desktop/lunch photo.jpg"
oatmilk add invoice.pdf --for e0000000-0000-4000-8000-000000000001   # attach it to one transaction
```

Oatmilk reads each file and matches it to its purchase. Adding the same file again does nothing.

## Connect your data

**Settings › Connections** lists where the company's data comes from, each with where it stands and one next step on `⏎`. `oatmilk connect` prints the same list.

```bash
oatmilk connect            # every source and its next step
oatmilk connect receipts   # the address to forward receipts and invoices to
oatmilk connect gmail      # opens the page where you connect your inbox
oatmilk connect drive      # starts Google Drive's sign-in in your browser
oatmilk sync               # syncs Wise and Stripe now
```

Keys and sign-ins for Stripe, Wise, Notion, Gmail and Google Drive are entered only in Oatmilk in your browser, so they never pass through the terminal. The terminal opens the right page and shows the result. What you see depends on your role: everyone gets their receipts address, inboxes and accounts, finance also gets Wise, and administrators get every source.

## Commands in the message box

Type `/` to list them.

| Command | Does |
| --- | --- |
| `/help` | Keys and commands |
| `/new` | Start a new chat |
| `/chats` | Reopen a recent chat, including one from the browser |
| `/model` | Where Ask AI thinks: Oatmilk's AI, or a model on your computer |
| `/go` | Jump to a page or record, like ⌃K |
| `/search` | Search transactions, email, invoices and more |
| `/run` | Run any Oatmilk action |
| `/org` | Switch company |
| `/theme` | Choose a theme; `/theme matcha` picks one at once |
| `/browser` | Open this page in the browser |
| `/logout` | Sign out of this machine |
| `/quit` | Leave Oatmilk (or press `⌃C` twice) |

## Themes

The app has the same themes as Oatmilk in the browser, and fits them to your terminal: on a dark terminal a theme uses its Night colors, on a light one its day colors, and every color is checked to read well on your background. Type `/theme`, or choose **Theme** at the top of **Settings**, and move through the list to see each one on the whole app. `⏎` keeps it on this computer; `Esc` puts back the one you had. ⌃K finds themes by name too.

If the colors look wrong for your terminal, set `OATMILK_TERMINAL=light` or `OATMILK_TERMINAL=dark`.

## Tips

- Use a terminal at least 120 columns wide to see the list, the record and the chat side by side.
- `NO_COLOR=1` turns colours off.
- The app needs a sign-in. If you start it signed out, it asks how to sign in first. See [Sign in and choose a company](https://app.getoatmilk.com/docs/terminal/sign-in.md).
