# The Command Line and Companion Apps


Everything in this manual so far happens in a chat with your assistant or in the admin.
This chapter is for the other two places work gets done: a terminal, and the devices you
record on. **omumu-cli** puts the whole tool surface of your site behind one command, for
you, for a script, or for an agent such as Claude Code running on your laptop. **Omumu Pod**
records a podcast episode on your phone and hands it to your site's podcast pipeline.
**Omumu Loupe** records your screen on a Mac, zooms and pans for you, and uploads the result
into a lesson. The chapter says what each does, how it gets in, and where each stops — and
which of them you can get today.

## Concepts

**One tool surface, several front doors.** Your site's AI connection (the Agent Surface
chapter) is a set of named tools — `omumu_offer_list`, `omumu_page_update` and so on. The
CLI calls those same tools over the same connection; it adds nothing the chat cannot do and
leaves nothing out. What it adds is a terminal: typed arguments, JSON output, exit codes,
and a self-describing schema an agent can read instead of guessing.

**Two ways in.** `omumu login` opens your browser and asks you to authorise the CLI on the
site, exactly as you authorise a chat app — the Headmaster approves once, and the CLI gets
an access token for that site. For a script or a scheduled job there is no browser, so you
create an **API key** under *Integrations → MCP API Keys* with only the permissions the job
needs and pass it with `--token` or the `OMUMU_API_KEY` variable. The browser login asks
for a fixed, broad set of permissions and cannot ask for less; a narrow key is the way to
give a script exactly what it needs.

**The config file is a credential.** Logins are stored in `~/.omumu/config.json`, one
profile per site (`--name` on login, `OMUMU_SITE` to choose one), readable by your user
only. A browser login's token lasts an hour and the CLI does not renew it; when a call says
authentication failed, log in again. An API key lasts until you delete it.

**Companion apps use the same sign-in.** Pod and Loupe sign in to a site by its host name,
in the system browser, with the same authorisation screen; their tokens live in the
phone's or Mac's keychain and renew themselves. Each app then talks to the site through
the tool surface: an upload, a tool call to create the episode or attach the video, and a
poll until processing is done.

## Hands-on

### Install and log in

Install with Homebrew (`brew tap omumuas/omumu && brew install omumu`; a Mac on Apple
silicon gets a native binary, other machines a jar that needs Java 21). Then:

```
omumu login --url https://mira.myomumu.com
```

The CLI registers itself with the site, prints the authorisation address and opens it in
your browser; approve, and it reports *Logged in*. `omumu status` confirms the connection
and counts the tools you can reach. Log in to a second site with `--name` to keep both.

### Run any tool

Mira wants the week's offers in a terminal: `omumu call offer_list` (the `omumu_` prefix
is optional). Every tool takes its arguments as `--arg name=value`, typed from the tool's
schema — numbers, booleans and JSON arrays or objects are parsed — or as one JSON object
with `--input`, inline, from a file (`@offer.json`) or from stdin (`-`); use a file or
stdin for anything secret, so it stays out of your shell history.

```
omumu call offer_create --arg title="Automate Your Week" --arg totalAmountCents=149000 \
    --arg 'paymentProviders=["VIPPS"]'
omumu call page_update --input '{"pageId":"BBSR5F6MDX5OG","contents":"# About Mira"}'
```

`--json` gives machine-readable output for every command, and `omumu schema --json` lists
every tool with its parameters and the exact `omumu call` line for it, which is what an
agent reads first. A misspelled tool or argument is refused with the known names. A
handful of common tasks also have their own commands: `omumu course list`, `get` and
`create`, and `omumu skill upload` for platform skills.

### Let an agent drive it

Claude Code on Mira's laptop gets a line in its instructions: *"Omumu is managed with
`omumu call`; run `omumu schema --json` to see the tools."* From there it lists, creates and
updates like the chat assistant does, with one difference worth knowing: a terminal agent
is only as careful as its instructions, and page and course writes are live at once. Give
it an API key with the permissions the job needs rather than your browser login.

### Record an episode on your phone

Omumu Pod, coming to Google Play, is the podcast chapter's phone end: sign in to the site, record as
many takes as you like (redo the last one with a tap), trim each on its waveform, reorder
and merge them, then give the episode a title, show notes, a type and a season and number.
The app uploads the audio, creates the episode, waits while the site masters it, and
publishes it into the feed with one tap — or retries if mastering failed. The site needs a
show first (the Podcasting chapter), and the Podcasting plan feature.

### Record your screen on a Mac

Omumu Loupe is the Mac app we record our own tutorials with; it is not distributed to
creators yet. It records a screen or a window with system audio and your microphone, follows
your cursor and clicks with automatic zoom and pan, and gives you a timeline to adjust
every move it made, with click ripples and keystroke badges if you want them. Export to
MP4, MOV or GIF up to 4K — or sign in to your site and *Upload to Omumu*: pick a course,
a module and the lesson the recording belongs to, or upload it as a standalone resource
to place later (the Courses & Content chapter).

### What you cannot do yet

Stated plainly: `omumu signup`, which creates a whole new site from the terminal behind a
one-time card payment in the browser, is switched off on omumu.com today, so a site still
starts at `/trial` (Getting Started). The CLI's browser login asks for one broad set of
permissions and leaves out the podcast tools, so podcast work from the terminal needs an
API key that includes them; browser tokens expire after an hour and are not renewed. The
CLI has no commands of its own beyond courses and skills — everything else is
`omumu call`. Omumu Pod is not in the store yet, Loupe is not distributed, and Omumu Cam, a
phone video recorder in the same family, is not released.

## Reference

No MCP tools cover this chapter's capabilities yet.
