Skip to content

Add a live line above the status bar

Documented Checked against the CLI's current help and source. Not run end to end. CLI 0.4.0, checked 2026-11-05.

Can I see my approvals count without asking?

Add a line of your own above the quox status bar, filled from your Quox and refreshed on a timer, then share it with the team.

What you get: the one or two numbers you check all day, always in view while you work. You need: a signed-in profile. About 4 minutes.

test
quox rows test --quox '/api/orgs/{org}/inbox/stats' --template '{{pending_approvals}} approvals waiting, {{unread}} unread' --label InboxRaw value:{"open":28,"in_progress":0,"waiting":0,"resolved":131,"urgent":0,"overdue":0,"total_active":28,"Shape: templateThe row:Inbox │ 3 approvals waiting, 28 unread
From a real run on the demo profile with quoxcli 0.4.0.

--quox reads a path on your own Quox with your session, and {org} stands for your organisation. The template fills each {{field}} from the JSON that comes back. A test saves nothing.

A row can read from four kinds of source: --quox (your Quox), --url (any URL, with no credentials sent to it), --plugin (a row a plugin ships) or --cmd (a command on this machine).

add
quox rows add inbox --quox '/api/orgs/{org}/inbox/stats' --template '{{pending_approvals}} approvals waiting, {{unread}} unread' --label Inbox --every 1m --test✔ Row inbox added. It follows your account to your other machines.Open windows show it within a minute (/row reload for now). quox rows test inbox draws it here.Raw value:{"open":28,"in_progress":0,"waiting":0,"resolved":131,"urgent":0,"overdue":0,"total_active":28,"Shape: templateThe row:Inbox │ 3 approvals waiting, 28 unread
From a real run on the demo profile with quoxcli 0.4.0.

--every sets how often it refreshes, from 5s to a day. Rows read from your Quox, a URL or a plugin are saved with your account, so they appear in every quox window you open. A --cmd row stays on the machine that holds it and is never synced.

edit
quox rows edit inbox --colour warn --every 5m✔ Row inbox saved. It follows your account to your other machines.Open windows show it within a minute (/row reload for now). quox rows test inbox draws it here.
From a real run on the demo profile with quoxcli 0.4.0.

Any option from add works here. --colour takes prose, command, value, ok, warn, error, brand or quiet.

share
quox rows share inbox > inbox-row.jsoncat inbox-row.json{"kind": "quox.status-rows","version": 1,"rows": [  {    "id": "inbox",    "source": {      "type": "quox",      "service": "auth",      "path": "/api/orgs/{org}/inbox/stats",      "every": "5m"    },    "template": "{{pending_approvals}} approvals waiting, {{unread}} unread",    "label": "Inbox",    "colour": "warn"  }]}
From a real run on the demo profile with quoxcli 0.4.0.

The bundle holds the row’s definition and no secret: whoever imports it reads their own inbox with their own session. Command rows never leave your machine in a bundle.

import
quox rows remove inbox✔ Removed row inbox.quox rows import inbox-row.json✔ Imported inbox.quox rows test inboxRaw value:{"open":28,"in_progress":0,"waiting":0,"resolved":131,"urgent":0,"overdue":0,"total_active":28,"Shape: templateThe row:Inbox │ 3 approvals waiting, 28 unread
From a real run on the demo profile with quoxcli 0.4.0.

--replace overwrites a row with the same id. A bundle that holds command rows needs --trust-commands, and then a yes for each exact command.

The row’s definition was saved to your account on your Quox, and each refresh is a read with your own session, so it shows only what you could already see. Inside quox, /row list, /row test <id> and /row off manage the same rows.

quox rows list shows each row, where it reads from and where it is stored. Add --now to draw each one as it stands.

quox rows remove <id> takes a row away, everywhere it was synced.

  • quox rows contract prints the JSON a row source can return for full control (a value, a tone, a trend, a link)
  • Back to the quox window