Skip to content

Units

A Unit is one agent run working one ticket while it is active, paused, or waiting.

What the Units page shows

The Units page is dashboard / and CLI aiur units.

Desktop Units fleet table with synthetic active, blocked, retrying, and review tickets
Column or controlMeaning
State filtersCumulative active, alert, paused, queued, and finished conditions.
UnitAgent family, model, complexity, and priority tags for the selected routing.
ActivityLatest action and elapsed time.
CommandsDurable issues the Unit raised for the Executor.
CI and reviewCurrent PR facts with safe links to the ticket, Command, or conversation.
CLI scope`--scope live

The Summary progress bar uses the daemon's weighted current-run aggregate across Units with current inputs. When that aggregate cannot be computed, the bar keeps its shape but renders as flat grey rather than as zero or a hatched track.

API meters

The Units strip shows non-model APIs beside model-provider meters.

APIWhat the row meansDetail
GitHub CoreREST request budget percentage usedGitHub API budgets
GitHub GraphQLQuery-point budget percentage usedGitHub API budgets
GitHub secondary limitActive abuse-control backoffGitHub API budgets
ElevenLabs credit quotaAccount credit pool as percentage used; appears only when a key is configuredElevenLabs metering

Every meter bar runs the full width of its pane, and every progress bar on the dashboard shares the same height. Model rows show the provider logo and usage bars only — the per-provider token count, spend figure, and the ElevenLabs next-invoice amount are not rendered on the strip.

A configured meter that cannot refresh names authorization, rate-limit, or connectivity failure without exposing its credential.

An ElevenLabs account with a zero character limit renders an empty track, because there is no denominator to state a percentage against.

Agent conversation and voice

Selecting an agent opens its live conversation without leaving Units.

ControlBehavior
ComposerA writable dashboard sends typed text to the selected agent.
MicrophoneTranscribes speech into the same composer when ElevenLabs speech-to-text is configured; the operator reviews the text and presses Send.
WaveformConfirms the browser is receiving audio.
Spoken conversationA separate half-duplex control: press, speak, press again; settled text is sent through the ordinary composer and enters the ticket transcript.
Spoken replyAiur streams ElevenLabs text-to-speech audio back to the browser when the agent replies.
Device selectionBrowser-local and saved per dashboard origin, independent of the Stream Deck microphone preference.

Dictation never sends a message automatically, and the browser never receives the API key.

Configure elevenlabs.voice_id and grant the key Text to Speech permission before using spoken conversation; voice cloning and barge-in are not part of this mode.

Browser requirementResult
Secure contextlocalhost qualifies; a plain-HTTP LAN address does not.
Remote accessUse HTTPS through a trusted private proxy.
Insecure origin or unsupported browserThe control is disabled with an explanation.
Permission deniedExplained beside the control, which stays available for a retry after a site-permission change.

Usage and cost

The authenticated Usage and cost summary follows Tokens by model with Cost by provider route.

Route caseHow it reads
Routed callNames both hops, such as OpenRouter -> DeepSeek.
Direct providerAppears without an arrow.
Unreported upstreamReads OpenRouter -> upstream unknown.
Unavailable estimateReads Unknown, never zero.
mix aiur.cost_report --jsonKeeps provider and upstream_provider as separate fields.
mix aiur.pricing_windowShows which peak/off-peak pricing window is currently in force, the next boundary, and how avoid_peak_pricing routing treats it.

Provider-reported and API-equivalent estimates stay separate. Peak/off-peak windowed providers (DeepSeek) price a call at the rate actually in force; when the window cannot be determined, the conservative peak rate is reported.

Tickets

The Tickets panel covers every open repository ticket, including work that has not been routed to an agent.

SurfaceBehavior
Fleet tableShows tickets carrying active agent:* labels.
Tickets panelShows identifier, title, and labels for the entire open backlog.
Ticket rowOpens ticket detail.
Robot actionOpens an editable routing preview for agent, model, effort, and complexity.
Confirm add-agentApplies the first active-state label and selected routing overrides.
Non-GitHub trackerReports the panel as unsupported.
ControlBehavior
Initial revealShows five tickets and keeps the full count in the header.
Show more ticketsAdds the next batch without moving existing rows; disappears when complete.
Search termsMatch identifier, title, or a bounded description excerpt in any order.
MatchingIgnores case and punctuation; accepts prefixes and one typo.
RankingTitle hits rank above description hits.
ScopeSearches the whole backlog, including unrevealed rows.
Empty resultStates that nothing matched; clearing restores the full list.

Why Units matter

Paused, blocked, and alert rows make the reason stalled work is not advancing visible without opening a log.

Command macro, delegate micro, maximize APM.