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 ​

Muse allowance meters show the current and weekly windows reported by its native CLI. These are observations from a live local host, labeled account unverified; they are not account bindings or admission evidence.

The dashboard renders the observation age and marks retained readings Stale after a failed refresh or when they age out; readings disappear when their host is retired. Missing readings remain unknown, while percentages above 100% retain their reported value (the visual bar stops at 100%).

Token usage and context capacity are separate from these allowance windows; missing capacity or pricing is not treated as zero.

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-agentSaves selected routing overrides asynchronously, adding the first active-state label only when no lifecycle state exists. The dialog closes after successful writes and reports dispatch authorization separately from scheduler admission.
Check admissionRechecks an already labelled ticket without rewriting its labels. Authorization can still decline; an allowed GitHub operator must remove and reapply the trigger label using their own account.
Non-GitHub trackerReports the panel as unsupported.

While the request runs, duplicate submission is disabled and Close stays responsive. Partial failures retain applied changes and retry only the remaining label changes. Successful label writes do not prove an agent is running: pause, prewarm, capacity, and dependency gates can still hold dispatch. See GitHub trust.

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.