# zidane-ui/machines/headless

Import: `import { … } from 'zidane-ui/machines/headless'`. Source: [ui/src/machines/headless/index.ts](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/index.ts).

## Functions

### `agoText`

Function.

"just now", "5m ago", "3h ago", "2d ago", then a date.

```ts
function agoText(
  at: number,
  now?: number,
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `at` (`number`): When it happened, epoch ms.
- `now?` (`number`): The current time, epoch ms.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `string`

Source: [ui/src/machines/headless/messages.ts:202](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L202)

### `createHostSyncReads`

Function.

Per-server live reads, one per id (the same id answers the same read): each reads when first subscribed, again on
`refresh` and whenever `listen` reports a change for that server (or for every server), and goes back to `null`
after its last subscriber leaves. A read that fails is `null`; one that started before a newer one never wins.

```ts
function createHostSyncReads<T>(
  read: (hostId: string) => Promise<T | null>,
  listen?: (onChange: (hostId?: string) => void) => () => void,
): (hostId: string) => HostSyncRead<T>
```

**Type parameters**

- `T`

**Parameters**

- `read` (`(hostId: string) => Promise<T | null>`): Reads one server's value; a rejection reads `null`.
- `listen?` (`(onChange: (hostId?: string) => void) => () => void`): Calls back with the server that changed (`undefined`: every server); returns how to stop.

**Returns** `(hostId: string) => HostSyncRead<T>`

Source: [ui/src/machines/headless/sync.ts:108](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L108)

### `createMachineLists`

Function.

The machine lists of every server, one per id, each read when first subscribed and again whenever
one of that server's machines comes online or goes offline.

```ts
function createMachineLists(
  load: (hostId: string) => Promise<readonly MachineInfo[]>,
  listen: (onChange: (hostId: string) => void) => () => void,
): (hostId: string) => MachineList
```

**Parameters**

- `load` (`(hostId: string) => Promise<readonly MachineInfo[]>`): Reads a server's machines.
- `listen` (`(onChange: (hostId: string) => void) => () => void`): Calls back with the server id whenever one of its machines changed status; returns how to stop.

**Returns** `(hostId: string) => MachineList`

Source: [ui/src/machines/headless/stores.ts:74](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/stores.ts#L74)

### `createOnlineMachines`

Function.

The names of the machines last heard online, from status pushes. It keeps listening once read, so a
machine that comes back while nothing shows the list still counts.

```ts
function createOnlineMachines(
  listen: (onChange: (change: { name: string; status: 'online' | 'offline' }) => void) => () => void,
): Readable<ReadonlySet<string>>
```

**Parameters**

- `listen` (`(onChange: (change: { name: string; status: 'online' | 'offline' }) => void) => () => void`): Calls back with each machine status change; returns how to stop.

**Returns** `Readable<ReadonlySet<string>>`

Source: [ui/src/machines/headless/stores.ts:123](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/stores.ts#L123)

### `createPresenceStore`

Function.

Creates the presence stores over a feed. The feed starts with the first reader (of the map or of any
session) and stops after the last, which forgets the snapshot.

```ts
function createPresenceStore(feed: PresenceFeed): MachinesPresence
```

**Parameters**

- `feed` (`PresenceFeed`): Starts listening; see [`PresenceFeed`](https://zidane.si/docs/reference/ui-machines-headless.md#PresenceFeed).

**Returns** `MachinesPresence`

Source: [ui/src/machines/headless/presence.ts:51](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/presence.ts#L51)

### `daemonStatusText`

Function.

The daemon menu's headline, detail and badge facts for a status.

```ts
function daemonStatusText(
  status: DaemonStatus,
  now?: number,
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): { detail: string; facts?: string[]; title: string }
```

**Parameters**

- `status` (`DaemonStatus`): The daemon's status.
- `now?` (`number`): The current time, epoch ms (for the uptime).
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `{ detail: string; facts?: string[]; title: string }`

Source: [ui/src/machines/headless/messages.ts:40](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L40)

### `hostCheckMessage`

Function.

What to do about a refused test, add or rename.

```ts
function hostCheckMessage(
  result: { error: HostCheckError; message: string; ok: false },
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `result` (`{ error: HostCheckError; message: string; ok: false }`): The refusal.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `string`

Source: [ui/src/machines/headless/messages.ts:84](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L84)

### `hostCheckOkLine`

Function.

A successful test: who answered, its version, how fast.

```ts
function hostCheckOkLine(
  result: { host?: HostSummary; latencyMs?: number; name: string; ok: true; serverVersion?: string },
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `result` (`{ host?: HostSummary; latencyMs?: number; name: string; ok: true; serverVersion?: string }`): The answer.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `string`

Source: [ui/src/machines/headless/messages.ts:97](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L97)

### `hostOfSettingsFocus`

Function.

The host a settings focus key opens, or `null` when the key names something else.

```ts
function hostOfSettingsFocus(focus: string | null): string | null
```

**Parameters**

- `focus` (`string | null`): A settings focus key.

**Returns** `string | null`

Source: [ui/src/machines/headless/settings-focus.ts:23](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/settings-focus.ts#L23)

### `hostSettingsFocus`

Function.

The settings focus key that opens a host's page in Settings › Hosts.

```ts
function hostSettingsFocus(hostId: string): string
```

**Parameters**

- `hostId` (`string`): The host's id (`'local'` for This computer).

**Returns** `string`

Source: [ui/src/machines/headless/settings-focus.ts:14](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/settings-focus.ts#L14)

### `hostStatusText`

Function.

One word for a host's status, through the machines labels.

```ts
function hostStatusText(
  host: HostSummary,
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `host` (`HostSummary`): The host.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `string`

Source: [ui/src/machines/headless/messages.ts:123](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L123)

### `hostStatusTone`

Function.

A host's status as a chip tone: (re)connecting is not a failure.

```ts
function hostStatusTone(host: HostSummary): 'danger' | 'muted' | 'warn'
```

**Parameters**

- `host` (`HostSummary`): The host.

**Returns** `'danger' | 'muted' | 'warn'`

Source: [ui/src/machines/headless/messages.ts:112](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L112)

### `isMachinesError`

Function.

Whether a value is a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError).

```ts
function isMachinesError(value: unknown): value is MachinesError
```

**Parameters**

- `value` (`unknown`): Anything a host rejected with.

**Returns** `value is MachinesError`

Source: [ui/src/machines/headless/host.ts:378](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L378)

### `isPermitted`

Function.

Whether `permitted` lets an action through: always without the store (`undefined`), never while it is not known (`null`).

```ts
function isPermitted(
  permitted: ReadonlySet<MachinesAction> | null | undefined,
  action: MachinesAction,
): boolean
```

**Parameters**

- `permitted` (`ReadonlySet<MachinesAction> | null | undefined`): The host's `permitted` value (`undefined` when the host has no such store).
- `action` (`MachinesAction`): The action.

**Returns** `boolean`

Source: [ui/src/machines/headless/host.ts:393](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L393)

### `lazyReadable`

Function.

A store that starts listening on its first subscriber and stops after its last.

```ts
function lazyReadable<T>(
  initial: T,
  start: (sink: LazySink<T>) => () => void,
  options?: LazyReadableOptions,
): Readable<T>
```

**Type parameters**

- `T`

**Parameters**

- `initial` (`T`): The value before the first push.
- `start` (`(sink: LazySink<T>) => () => void`): Starts listening, writing into the sink; returns how to stop.
- `options?` (`LazyReadableOptions`, default `{}`): Reset or keep listening when the last subscriber leaves.

**Returns** `Readable<T>`

Source: [ui/src/machines/headless/stores.ts:35](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/stores.ts#L35)

### `linkStateText`

Function.

A machine link's state, with why it is not connected; `Off` without a link.

```ts
function linkStateText(
  link: { detail?: string; state: MachineLinkState } | undefined,
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `link` (`{ detail?: string; state: MachineLinkState } | undefined`): The link, or `undefined` when there is none.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `string`

Source: [ui/src/machines/headless/messages.ts:186](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L186)

### `machinesError`

Function.

A [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError) from whatever a backend threw.

```ts
function machinesError(
  kind: 'update' | 'read' | 'tokens' | 'daemon' | 'install' | 'sync' | 'remove' | 'forget' | 'invite',
  error: unknown,
): MachinesError
```

**Parameters**

- `kind` (`'update' | 'read' | 'tokens' | 'daemon' | 'install' | 'sync' | 'remove' | 'forget' | 'invite'`): The action that failed.
- `error` (`unknown`): What the backend threw or rejected with.

**Returns** `MachinesError`

Source: [ui/src/machines/headless/host.ts:367](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L367)

### `shortList`

Function.

Three names, then "+N".

```ts
function shortList(
  names: readonly string[],
  labels: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `names` (`readonly string[]`): The names.
- `labels` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`): The machines labels (the "+N").

**Returns** `string`

Source: [ui/src/machines/headless/sync.ts:203](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L203)

### `syncBlockedReason`

Function.

Why the server can't take `category` now; `undefined`: it can (or it is not known yet).

```ts
function syncBlockedReason(
  category: SyncCategory,
  caps: HostCapabilities | null | undefined,
): SyncBlockedReason | undefined
```

**Parameters**

- `category` (`SyncCategory`): The category.
- `caps` (`HostCapabilities | null | undefined`): What the server can do, `null` while unknown.

**Returns** `SyncBlockedReason | undefined`

Source: [ui/src/machines/headless/sync.ts:186](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L186)

### `syncOutcome`

Function.

The outcome of a server's last push; `null` while there is nothing to report (sync off, never pushed).

```ts
function syncOutcome(
  state: HostSyncState | null,
  labels: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): SyncOutcome | null
```

**Parameters**

- `state` (`HostSyncState | null`): The server's sync state.
- `labels` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`): The machines labels (the "waiting to push" line).

**Returns** `SyncOutcome | null`

Source: [ui/src/machines/headless/sync.ts:162](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L162)

### `updateStateLine`

Function.

One line for where a server's self-update stands, and its tone.

```ts
function updateStateLine(
  status: ServerUpdateStatus,
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
  now?: number,
): { text: string; tone: MachinesTone }
```

**Parameters**

- `status` (`ServerUpdateStatus`): The update status.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.
- `now?` (`number`): The current time, epoch ms (how long a waiting install has waited).

**Returns** `{ text: string; tone: MachinesTone }`

Source: [ui/src/machines/headless/messages.ts:142](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L142)

### `uptimeText`

Function.

How long a process has been up: `12 min`, `3 h 5 min`, `4 d`.

```ts
function uptimeText(
  startedAt: number,
  now?: number,
  labels?: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string },
): string
```

**Parameters**

- `startedAt` (`number`): When it started, epoch ms.
- `now?` (`number`): The current time, epoch ms. Default: now.
- `labels?` (`{ machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }`, default `DEFAULT_MACHINES_LABELS`): The label dictionary.

**Returns** `string`

Source: [ui/src/machines/headless/messages.ts:20](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L20)

## Constants

### `DEFAULT_MACHINES_LABELS`

Constant.

The default English strings of the machines components. Override any of them through `MachinesProvider` or `LabelsProvider`.

```ts
const DEFAULT_MACHINES_LABELS: { machinesAccess: (scope: string) => 'Admin access' | 'Chat access'; machinesAdd: string; machinesAdding: string; machinesAddServer: string; machinesAdminOnly: string; machinesAgo: (short: string) => string; machinesAutoUpdateTitle: string; machinesCancel: string; machinesCapabilitiesTitle: string; machinesCapsAsMachine: string; machinesCapsAvailable: string; machinesCapsAvailableA11y: string; machinesCapsChecking: string; machinesCapsClone: string; machinesCapsCreateFolders: string; machinesCapsEnvAvailable: string; machinesCapsFeatures: string; machinesCapsFree: (bytes: number) => string; machinesCapsInstall: string; machinesCapsInstallCopy: (command: string) => string; machinesCapsInstallCopyLabel: (tool: string) => string; machinesCapsInstalled: (tool: string) => string; machinesCapsInstallFailed: (tool: string) => string; machinesCapsInstalling: string; machinesCapsInstallLabel: (tool: string) => string; machinesCapsInstallPage: string; machinesCapsInstallPageLabel: (tool: string) => string; machinesCapsMissing: string; machinesCapsMissingA11y: string; machinesCapsMore: (count: number) => string; machinesCapsNotAvailable: string; machinesCapsOs: Record<string, string>; machinesCapsPartial: string; machinesCapsRecheck: string; machinesCapsRemoteInstalls: string; machinesCapsSandbox: string; machinesCapsSync: string; machinesCapsTools: string; machinesChangeUrl: string; machinesChangingUrl: string; machinesCheckError: (error: HostCheckError, message: string) => string; machinesConnectingTo: (name: string) => string; machinesCopiedText: (text: string) => string; machinesCopy: string; machinesCopyText: (text: string) => string; machinesDaemon: string; machinesDaemonActions: string; machinesDaemonConnected: string; machinesDaemonConnecting: string; machinesDaemonCopied: string; machinesDaemonCopy: string; machinesDaemonCopying: string; machinesDaemonDays: (days: number) => string; machinesDaemonHours: (hours: number, minutes: number) => string; machinesDaemonMenu: (health: string) => string; machinesDaemonMinutes: (minutes: number) => string; machinesDaemonModeOff: string; machinesDaemonModeOffHint: string; machinesDaemonModeOn: string; machinesDaemonModeOnHint: string; machinesDaemonNewer: string; machinesDaemonNewerDetail: (versions: string) => string; machinesDaemonOff: string; machinesDaemonOffDetail: string; machinesDaemonOlder: string; machinesDaemonOlderDetail: (versions: string) => string; machinesDaemonOnIt: string; machinesDaemonPid: (pid: number) => string; machinesDaemonProtocol: (version: number) => string; machinesDaemonReconnect: string; machinesDaemonReconnected: string; machinesDaemonReconnectHint: string; machinesDaemonReconnecting: string; machinesDaemonRefused: string; machinesDaemonRelaunch: string; machinesDaemonRelaunchHint: string; machinesDaemonRestart: string; machinesDaemonRestartDeferred: string; machinesDaemonRestarted: string; machinesDaemonRestartHint: string; machinesDaemonRestarting: string; machinesDaemonRestartNow: string; machinesDaemonRestartNowConfirm: string; machinesDaemonRestartNowHint: string; machinesDaemonRetiring: string; machinesDaemonRetiringDetail: string; machinesDaemonRetrying: string; machinesDaemonRunning: string; machinesDaemonStop: string; machinesDaemonStopAll: string; machinesDaemonStopped: (title: string) => string; machinesDaemonStoppedAll: (count: number | void) => string; machinesDaemonStopping: string; machinesDaemonStoppingAll: string; machinesDaemonUnreachable: string; machinesDaemonUp: (uptime: string) => string; machinesDaemonVersions: (daemon: number, window: number) => string; machinesDaemonWaitingForYou: string; machinesDeviceToken: string; machinesDeviceTokenPlaceholder: string; machinesDismiss: string; machinesError: (error: MachinesError) => string; machinesFactConnected: (ago: string) => string; machinesFactScope: (scope: string) => string; machinesFactServerName: (name: string) => string; machinesFactUptime: (uptime: string) => string; machinesFactVersion: (version: string) => string; machinesFolders: string; machinesForget: string; machinesForgetLabel: (machine: string) => string; machinesForgetMessage: (name: string) => string; machinesForgetTitle: (machine: string) => string; machinesGetAdmin: string; machinesGetAdminCopy: string; machinesGetAdminPairNext: string; machinesGetAdminRun: string; machinesGetAdminSave: string; machinesGetAdminSaved: string; machinesGetAdminSaving: string; machinesGetAdminToken: string; machinesGetAdminTokenField: string; machinesGpus: string; machinesHostActions: (name: string) => string; machinesHostName: string; machinesHostRemoved: (notice: string) => string; machinesHostStatuses: { 'auth-refused': string; connected: string; connecting: string; identity: string; local: string; offline: string; reconnecting: string; 'version-mismatch': string }; machinesHostsTitle: string; machinesInviteCommand: string; machinesInviteCopy: string; machinesInviteCreate: string; machinesInviteCreating: string; machinesInviteDone: string; machinesInviteExpires: (time: string) => string; machinesInviteForm: string; machinesInviteHint: string; machinesInviteName: string; machinesInviteNamePlaceholder: string; machinesInviteNameRule: string; machinesInviteNeedsAdmin: string; machinesInviteOpen: string; machinesInviteTitle: (name: string) => string; machinesLinkOff: string; machinesListEmpty: string; machinesListNotPermitted: string; machinesListTitle: (name: string) => string; machinesLocalDescription: string; machinesMachinesTitle: string; machinesNameOptional: string; machinesOfflineAuthRefused: (name: string) => string; machinesOfflineConnecting: (name: string) => string; machinesOfflineIdentity: (name: string) => string; machinesOfflineOther: (name: string, status: string) => string; machinesOfflineRemoved: (name: string) => string; machinesOfflineSince: (when: string) => string; machinesOfflineVersion: (name: string, error?: string) => string; machinesOkLine: (name: string, version?: string, latencyMs?: number) => string; machinesOpenHost: (name: string) => string; machinesRemove: string; machinesRemoveFailed: (name: string, detail: string) => string; machinesRemoveMessage: string; machinesRemoveTitle: (name: string) => string; machinesRemoving: string; machinesRename: string; machinesRenaming: string; machinesRetry: string; machinesSave: string; machinesSavedHostsError: (detail: string) => string; machinesServerUrl: string; machinesServerUrlPlaceholder: string; machinesShareAddFolder: string; machinesShared: (roots: string, name: string) => string; machinesShareFolders: string; machinesShareForm: string; machinesShareHint: (name: string) => string; machinesShareName: (name: string) => string; machinesShareNamePlaceholder: string; machinesShareOpen: string; machinesShareStart: string; machinesShareStop: string; machinesShareTitle: (name: string) => string; machinesShareToken: string; machinesShareTokenPlaceholder: string; machinesSharing: (name: string) => string; machinesStatus: (status: 'online' | 'offline') => 'online' | 'offline'; machinesStopping: string; machinesSyncAccounts: string; machinesSyncAgain: string; machinesSyncApiKey: string; machinesSyncBlocked: (reason: SyncBlockedReason, name: string) => string; machinesSyncCategories: Record<SyncCategory, { description: string; label: string }>; machinesSyncComplete: string; machinesSyncCopyKey: (label: string) => string; machinesSyncEditedHere: (device: string) => string; machinesSyncEditedOn: (name: string) => string; machinesSyncEditedOnTitle: (name: string) => string; machinesSyncEnvConfirm: string; machinesSyncEnvMessage: (name: string) => string; machinesSyncEnvTitle: (name: string) => string; machinesSyncFrom: (device: string) => string; machinesSyncKeyConfirm: string; machinesSyncKeyMessage: (name: string) => string; machinesSyncKeyTitle: (label: string, name: string) => string; machinesSyncMode: string; machinesSyncModeDescription: (device: string | undefined, name: string) => string; machinesSyncModes: Record<SyncMode, string>; machinesSyncMoreLines: (count: number) => string; machinesSyncNoAccounts: string; machinesSyncNotPushed: string; machinesSyncNotSyncable: (list: string) => string; machinesSyncNotSynced: string; machinesSyncOffline: string; machinesSyncOnHost: (name: string) => string; machinesSyncOutcomeDetails: (label: string) => string; machinesSyncPartial: string; machinesSyncPushed: (ago: string) => string; machinesSyncPushing: string; machinesSyncPushNow: string; machinesSyncSetUpOn: (name: string) => string; machinesSyncSignedInThere: string; machinesSyncSignIn: (label: string) => string; machinesSyncSignInThere: string; machinesSyncStartsWithHosts: string; machinesSyncStaysHere: string; machinesSyncStdio: (name: string, list: string) => string; machinesSyncSyncedFrom: (device: string) => string; machinesSyncTakeOver: string; machinesSyncTakeOverMessage: (name: string, other: string) => string; machinesSyncTakeOverTitle: (name: string) => string; machinesSyncTitle: string; machinesSyncTooOld: string; machinesSyncWaiting: string; machinesSyncWaitingList: (categories: string) => string; machinesSyncWarnings: string; machinesSyncWhat: string; machinesTest: string; machinesTesting: string; machinesThisApp: string; machinesThisServer: string; machinesTokensCreate: string; machinesTokensCreated: (name: string) => string; machinesTokensCreatedAt: (ago: string) => string; machinesTokensCreating: string; machinesTokensEmpty: string; machinesTokensExpired: string; machinesTokensExpires: (date: string) => string; machinesTokensList: string; machinesTokensName: string; machinesTokensNamePlaceholder: string; machinesTokensNeverUsed: string; machinesTokensRevoke: string; machinesTokensRevoked: string; machinesTokensRevokeLabel: (name: string) => string; machinesTokensRevokeMessage: string; machinesTokensRevokeTitle: (name: string) => string; machinesTokensScope: string; machinesTokensScopes: Record<ServerTokenScope, string>; machinesTokensUsed: (ago: string) => string; machinesUpdateCheck: string; machinesUpdateChecking: string; machinesUpdateFrom: (version: string) => string; machinesUpdateInstall: string; machinesUpdateInstallMessage: string; machinesUpdateInstallTitle: (latest?: string) => string; machinesUpdateOff: string; machinesUpdateOn: string; machinesUpdateOtherWay: string; machinesUpdateOut: (version: string) => string; machinesUpdateRolledBack: (version: string) => string; machinesUpdateStateChecking: string; machinesUpdateStateDownloading: (latest?: string) => string; machinesUpdateStateError: string; machinesUpdateStateInstalling: (latest?: string) => string; machinesUpdateStateReady: (latest?: string) => string; machinesUpdateStateWaiting: (latest?: string) => string; machinesUpdateStateWaitingOn: (latest: string | undefined, blockers: readonly ('work' | 'terminals')[], since: string) => string; machinesUpdateTurnOff: string; machinesUpdateTurnOn: string; machinesUpdateUnsupported: (name: string) => string; machinesUpdateUpToDate: string; machinesUpdateVersion: (version: string) => string; machinesUrlChanged: (name: string, url: string) => string; machinesUse: string; machinesUseHint: (name: string) => string; machinesUseMachineName: (machine: string) => string; machinesUseNotLent: (name: string) => string; machinesUseStop: string; machinesUseTitle: (name: string) => string; machinesVersion: (version: string) => string; machinesVersionDiffers: (version: string, server: string) => string; machinesWaiting: (machine: string) => string }
```

Source: [ui/src/machines/headless/labels.ts:13](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/labels.ts#L13)

### `UPDATE_BUSY_STATES`

Constant.

The update states during which the updater is working (the panel follows it).

```ts
const UPDATE_BUSY_STATES: ReadonlySet<ServerUpdateStatus['state']>
```

Source: [ui/src/machines/headless/messages.ts:128](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L128)

## Interfaces

### `DaemonControl`

Interface.

The desktop app's local daemon: its health, status and recovery actions.

```ts
interface DaemonControl
```

**Properties**

- `health` (`Readable<DaemonHealth>`): The connection's health, for the orb.
- `reconnect?` (`() => Promise<DaemonStatus>`): Reconnects now. Absent: no Reconnect now.
- `relaunchApp?` (`() => Promise<void>`): Relaunches the app (the daemon runs newer code). Absent: no Relaunch.
- `restart?` (`(force: boolean) => Promise<{ deferred?: boolean }>`): Restarts the daemon after its runs (`force`: now). Absent: no restart.
- `status` (`() => Promise<DaemonStatus | null>`): Reads the status; `null` when it can't be read.
- `stopRun?` (`(target: string) => Promise<number | void>`): Stops a session's run, or `'all'` of them (answers how many). Absent: no Stop.

Source: [ui/src/machines/headless/host.ts:270](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L270)

### `DaemonStatus`

Interface.

The desktop app's local daemon, as `daemon:status` reports it.

```ts
interface DaemonStatus
```

**Properties**

- `daemon?` (`{ buildId?: string; codeVersion?: string; pid: number; protocolVersion: number; retiring?: boolean; startedAt: number }`): From the handshake, also reported by a daemon that refused it.
- `enabled` (`boolean`): Daemon mode is on.
- `error?` (`string`): Why it is unreachable.
- `refused?` (`{ direction: 'unknown' | 'daemon-newer' | 'daemon-older'; message: string }`): Why the daemon refused this window.
- `sessions?` (`readonly { running: boolean; sessionId: string; waitingForYou: boolean; windows: number }[]`): The sessions the daemon holds (connected only).
- `socketPath` (`string`): The daemon's socket.
- `state` (`'disabled' | 'connecting' | 'unreachable' | 'connected' | 'refused'`): Where the connection is.
- `window` (`{ buildId: string; protocolVersion: number }`): This window's side of the handshake.

Source: [ui/src/machines/headless/host.ts:243](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L243)

### `HostCapabilities`

Interface.

A host's probed capabilities, as `host.capabilities` returns them.

```ts
interface HostCapabilities
```

**Properties**

- `allows` (`{ asMachine: boolean; clone: boolean; createFolders: boolean; remoteInstalls: boolean; sync: boolean }`): What it lets clients do (the hello flags).
- `environments` (`{ available: boolean; kind: string; label: string; reason?: string }[]`): Environment kinds a new session can pick there.
- `installers?` (`{ apt: boolean; brew: boolean }`): Package managers on PATH, for `toolInstall`. Absent from a server that predates them.
- `os` (`{ arch: string; platform: string; release: string }`): The host's OS: `process.platform`, CPU architecture and kernel release.
- `partial?` (`boolean`): Built from the hello alone: the server predates the probe.
- `probedAt` (`number`): When it was probed, in epoch milliseconds.
- `sandbox` (`{ backend?: string; ok: boolean; reason?: string }`): The OS sandbox local sessions run under.
- `tools` (`HostTool[]`): Every tool in `HOST_TOOLS`, found or not.
- `workspace` (`{ freeBytes?: number; roots: string[] }`): The workspace roots, with the free space of the first one when it could be read.

Source: [dist/url-CKmACnCg.d.ts:19](https://github.com/Tahul/zidane/blob/main/dist/url-CKmACnCg.d.ts#L19)

### `HostProviderAuth`

Interface.

Sign-in state of one provider on a host, from `auth.status`. Holds no secret.

```ts
interface HostProviderAuth
```

**Properties**

- `configured` (`boolean`): Some credential source is present.
- `configuredFields?` (`Record<string, string>`): The non-secret field values set now (stored, else from the host's environment). Additive.
- `customFields?` (`ProviderFieldView[]`): Its configuration fields (a local server's URL, a cloud's region), what `auth.configure` takes. Additive.
- `envKey?` (`string`): The env var it reads, when it declares one.
- `key` (`string`): Provider key.
- `label` (`string`): Display name.
- `methods` (`HostAuthMethod[]`): Credential sources of the provider.
- `oauth` (`boolean`): The provider signs in with OAuth (on the host's machine only).

Source: [dist/protocol-BrYnGY5r.d.ts:4024](https://github.com/Tahul/zidane/blob/main/dist/protocol-BrYnGY5r.d.ts#L4024)

### `HostsState`

Interface.

The hosts the app knows.

```ts
interface HostsState
```

**Properties**

- `enabled` (`boolean`): More than This computer may show (the desktop app's Remote hosts setting). `false`: the single-host view.
- `hosts` (`readonly HostSummary[]`): This computer first (when the app has one), then the servers.

Source: [ui/src/machines/headless/host.ts:58](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L58)

### `HostSummary`

Interface.

One agent host as the machines components show it: This computer or a server.

```ts
interface HostSummary extends HostView
```

**Properties**

- `addedAt?` (`number`): When the server was saved, epoch ms.
- `adminCommands?` (`{ pair: string; token: string }`): How to get an admin token there: commands to run on its machine (`token` mints one to paste, `pair` a browser code).
- `error?` (`string`, from `HostView`): Why the last connect failed.
- `home?` (`string`, from `HostView`): The host's home folder, shown as `~` in its paths (`useDisplayPath`). Absent: its paths show in full.
- `id` (`string`, from `HostView`): `'local'` for This computer, else the server's host id.
- `kind` (`'local' | 'server'`, from `HostView`): This computer, or a saved server.
- `lastConnectedAt?` (`number`): When the app last connected to it, epoch ms.
- `machineServe?` (`boolean`): The server lends itself as a machine (`allowAsMachine`).
- `name` (`string`, from `HostView`): The name the sidebar and picker show.
- `scope?` (`'chat' | 'admin'`): The scope this app's token has there. Absent: every method (the user's own computer).
- `serverName?` (`string`): The server's own name, when it differs from the saved one.
- `serverVersion?` (`string`): The zidane version the server runs.
- `startedAt?` (`number`): When the server process started, epoch ms.
- `status` (`HostStatus`, from `HostView`): The connection right now.
- `url?` (`string`, from `HostView`): The server's URL.

Source: [ui/src/machines/headless/host.ts:38](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L38)

### `HostSync`

Interface.

Settings sync from this computer to a server, and the server's own record. Every action rejects with a
[`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError) (`sync`).

```ts
interface HostSync
```

**Properties**

- `configure?` (`(hostId: string, patch: HostSyncPatch) => Promise<void>`): Changes the mode, the categories or the opted-in keys. Absent: the section is read-only.
- `providers?` (`(hostId: string) => Promise<readonly HostProviderAuth[]>`): The server's providers (`auth.status`), never a secret. Absent: the accounts list shows this computer's side alone.
- `push?` (`(hostId: string) => Promise<void>`): Pushes now. Absent: no Push now.
- `reset?` (`(hostId: string, field: string) => Promise<void>`): Drops an override on the server, so sync writes that field again. Absent: no Sync again.
- `state?` (`(hostId: string) => HostSyncRead<HostSyncState>`): This computer's sync to `hostId`, kept current. Absent: no Sync section (the app is not a syncing device).
- `status` (`(hostId: string) => HostSyncRead<SyncStatus>`): The server's sync record (who syncs there, overrides), kept current: the markers in its Settings.
- `takeOver?` (`(hostId: string) => Promise<void>`): Makes this computer the server's source instead of another device. Absent: no Take over.

Source: [ui/src/machines/headless/host.ts:148](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L148)

### `HostSyncAccount`

Interface.

A provider this computer has an API key or a sign-in for.

```ts
interface HostSyncAccount
```

**Properties**

- `apiKey` (`boolean`): An API key is stored here.
- `key` (`string`): The provider's key (`anthropic`).
- `label` (`string`): Its display name.
- `signIns` (`readonly string[]`): The sign-ins (OAuth accounts) stored here, by label (`Default` for the only one).

Source: [ui/src/machines/headless/sync.ts:43](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L43)

### `HostSyncConfig`

Interface.

One saved server's sync from this computer.

```ts
interface HostSyncConfig
```

**Properties**

- `categories` (`readonly SyncCategory[]`): The categories sent.
- `keys` (`readonly string[]`): Providers whose API key is copied there (each opted in on its own).
- `lastError?` (`string`): Why the last push failed.
- `lastSyncAt?` (`number`): The last push, epoch ms.
- `mode` (`SyncMode`): Off, a snapshot now (`once`), or every change (`keep`).
- `pending` (`readonly SyncCategory[]`): Categories changed here and not pushed yet (offline queue).
- `results` (`Partial<Record<SyncCategory, SyncPushResult>>`): What the last push of each category did there.

Source: [ui/src/machines/headless/sync.ts:25](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L25)

### `HostSyncPatch`

Interface.

What a configure changes; fields left out keep their value.

```ts
interface HostSyncPatch
```

**Properties**

- `categories?` (`readonly SyncCategory[]`): The categories to send, in full.
- `keys?` (`readonly string[]`): The providers whose API key is copied, in full.
- `mode?` (`SyncMode`): The new mode.

Source: [ui/src/machines/headless/sync.ts:83](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L83)

### `HostSyncRead`

Interface.

One server's value, kept current while subscribed.

```ts
interface HostSyncRead<T>
```

**Type parameters**

- `T`

**Properties**

- `state` (`Readable<T | null>`): The value as last read; `null` before the first read or when it can't be read.
- `refresh` (`() => Promise<void>`): Reads it again. Never rejects.

Source: [ui/src/machines/headless/sync.ts:93](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L93)

### `HostSyncState`

Interface.

This computer's sync to one server: what the Sync section shows.

```ts
interface HostSyncState
```

**Properties**

- `busy` (`boolean`): A push is running.
- `config` (`HostSyncConfig | null`): The sync to this server; `null` while sync is not running.
- `conflict` (`string | null`): Another device syncs to it: its name.
- `connected` (`boolean`): The server is connected.
- `device` (`{ id: string; name: string } | null`): This computer, as servers know it.
- `enabled` (`boolean`): Remote hosts are on and sync is running.
- `local` (`{ accounts: readonly HostSyncAccount[]; keyProviders: readonly { key: string; label: string }[]; localExtensions: readonly string[]; stdioMcps: readonly string[] }`): What this computer has: API keys to opt in, extensions that can't sync, stdio MCP servers.
- `status` (`SyncStatus | null`): The server's record (who syncs there, overrides).
- `supported` (`boolean`): The server takes sync (older servers don't).

Source: [ui/src/machines/headless/sync.ts:55](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L55)

### `LazyReadableOptions`

Interface.

Options of [`lazyReadable`](https://zidane.si/docs/reference/ui-machines-headless.md#lazyReadable).

```ts
interface LazyReadableOptions
```

**Properties**

- `keepAlive?` (`boolean`): Keep listening after the last subscriber leaves (a log that must not miss a push). Default false.
- `resetOnStop?` (`boolean`): Back to the initial value when the last subscriber leaves, so the next one starts fresh. Default false.

Source: [ui/src/machines/headless/stores.ts:21](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/stores.ts#L21)

### `LazySink`

Interface.

A store and how to set it, for [`lazyReadable`](https://zidane.si/docs/reference/ui-machines-headless.md#lazyReadable)'s `start`.

```ts
interface LazySink<T>
```

**Type parameters**

- `T`

**Properties**

- `get` (`() => T`): The value now.
- `set` (`(next: T) => void`): Replaces the value (listeners run when it changes by `Object.is`).

Source: [ui/src/machines/headless/stores.ts:13](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/stores.ts#L13)

### `MachineInfo`

Interface.

A machine as clients see it (`machines.list`, `environments.list`).

```ts
interface MachineInfo
```

**Properties**

- `capabilities?` (`Partial<MachineCapabilities>`): What it registered with (absent: never connected since this host recorded it).
- `id` (`string`): Stable machine id.
- `lastSeen?` (`number`): Time of the last connection, in epoch milliseconds.
- `name` (`string`): Machine name, valid per `isValidMachineName`.
- `roots` (`MachineRoot[]`): Directories the machine allows commands and file access in.
- `status` (`'online' | 'offline'`): Whether the machine is connected to the host now.
- `version?` (`string`): Version the machine reported when it registered.

Source: [dist/media-type-BzRZ4FqT.d.ts:3732](https://github.com/Tahul/zidane/blob/main/dist/media-type-BzRZ4FqT.d.ts#L3732)

### `MachineInvite`

Interface.

A one-time machine join code (`tokens.machineInvite`): a new machine runs `zidane machine setup --join <join>`.

```ts
interface MachineInvite
```

**Properties**

- `code` (`string`): The join code (`K7Q2-9XPM`).
- `expiresAt` (`number`): When the code stops working, epoch ms. It works once before then.
- `join` (`string`): The join string: the main server's URL and the code (`wss://box.example#K7Q2-9XPM`).

Source: [ui/src/machines/headless/host.ts:99](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L99)

### `MachineLinks`

Interface.

This computer's machine links: shared with servers (it is their machine), and servers used as machines.

```ts
interface MachineLinks
```

**Properties**

- `state` (`Readable<MachineLinksStatus>`): The links as last heard.
- `refresh` (`() => Promise<void>`): Reads them again. Never rejects.
- `shareStart?` (`(hostId: string, name: string, roots: readonly string[], token?: string) => Promise<MachineActionResult>`): Shares this computer with `hostId` under `name`, in `roots`; `token` when the server asked for one. Absent: no share.
- `shareStop?` (`(hostId: string) => Promise<MachineActionResult>`): Stops sharing this computer with `hostId`.
- `useServer?` (`(hostId: string, enabled: boolean) => Promise<MachineActionResult>`): Starts or stops using `hostId` as a machine. Absent: no use button.

Source: [ui/src/machines/headless/host.ts:184](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L184)

### `MachineLinksStatus`

Interface.

Status of every machine link of a local host.

```ts
interface MachineLinksStatus
```

**Properties**

- `shares` (`MachineShareStatus[]`): This computer shared with saved servers.
- `uses` (`MachineUseStatus[]`): Saved servers used as machines.

Source: [dist/media-type-BzRZ4FqT.d.ts:3789](https://github.com/Tahul/zidane/blob/main/dist/media-type-BzRZ4FqT.d.ts#L3789)

### `MachineList`

Interface.

One server's machines, kept current while subscribed (a machine coming online or going offline re-reads).

```ts
interface MachineList
```

**Properties**

- `state` (`Readable<MachineListState>`): The list as last read.
- `refresh` (`() => Promise<void>`): Reads it again. Never rejects: a failure lands in `state.error`.

Source: [ui/src/machines/headless/host.ts:119](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L119)

### `MachineListState`

Interface.

One server's machines as last read.

```ts
interface MachineListState
```

**Properties**

- `error` (`MachinesError | null`): Why the last read failed.
- `machines` (`readonly MachineInfo[]`): The machines from the last read that succeeded (empty until one did).
- `status` (`'error' | 'idle' | 'loading' | 'ready'`): `idle` before the first read; `loading` while one is in flight; `ready` or `error` after.

Source: [ui/src/machines/headless/host.ts:109](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L109)

### `MachinesDirectory`

Interface.

The machines servers hold.

```ts
interface MachinesDirectory
```

**Properties**

- `online` (`Readable<ReadonlySet<string>>`): The names of the machines last heard online, from every host (a session paused on one shows a banner until it is back).
- `forget?` (`(hostId: string, machineId: string) => Promise<void>`): Makes `hostId` forget a machine. Rejects with a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError). Absent: no forget button.
- `invite?` (`(hostId: string, options?: { name?: string; ttlMs?: number }) => Promise<MachineInvite>`): Creates a one-time join code on `hostId` for a new machine (`name`: the machine's name there). Rejects with a
  [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError) (`invite`, `forbidden` below an admin token). Absent: no Add a machine.
- `list` (`(hostId: string) => MachineList`): `hostId`'s machines. The same id answers the same list.

Source: [ui/src/machines/headless/host.ts:169](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L169)

### `MachinesError`

Interface.

What went wrong, for the UI to word through its labels. `detail` is the backend's own message.

```ts
interface MachinesError
```

**Properties**

- `detail` (`string`): The backend's message, shown as is by the default labels.
- `forbidden?` (`boolean`): The token's scope does not reach the action (the server answered Forbidden).
- `kind` (`'update' | 'read' | 'tokens' | 'daemon' | 'install' | 'sync' | 'remove' | 'forget' | 'invite'`): Which action failed.

Source: [ui/src/machines/headless/host.ts:89](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L89)

### `MachinesHost`

Interface.

What the machines components read and the actions they send.

```ts
interface MachinesHost
```

**Properties**

- `daemon?` (`DaemonControl`): The local daemon. Absent: no daemon menu.
- `hosts?` (`Readable<HostsState>`): The hosts the app knows and their connection. Absent: no host list.
- `links?` (`MachineLinks`): This computer's machine links. Absent: no share or use rows.
- `machines?` (`MachinesDirectory`): The machines servers hold. Absent: no machine list.
- `permitted?` (`Readable<ReadonlySet<MachinesAction> | null>`): What the members may do right now; `null` while that is not known (not connected). Absent: everything they offer.
- `presence?` (`MachinesPresence`): Live per-session presence (attached windows, runs, waiting on you). Absent: no presence on the rows.
- `savedHosts?` (`SavedHosts`): The saved-server registry with its dates. Absent: the hosts list shows the live statuses alone.
- `sync?` (`HostSync`): Settings sync to a server and the server's record. Absent: no Sync section, no markers.
- `tokens?` (`ServerTokens`): A server's client tokens. Absent: no token list.
- `updates?` (`ServerUpdates`): A server's self-update. Absent: no update section.
- `addHost?` (`(input: { name?: string; token: string; url: string }) => Promise<HostCheckResult>`): Saves a server after checking it. Absent: no add form.
- `capabilities?` (`(hostId: string, options?: { refresh?: boolean }) => Promise<HostCapabilities>`): What a host can do (OS, tools on PATH, sandbox, environment kinds, what it allows, disk); `refresh` probes again
  instead of the backend's short cache. Rejects with a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError) (`read`). Absent: no capabilities.
- `installTool?` (`(hostId: string, name: string) => Promise<ToolInstallResult>`): Installs a missing tool on a server, as its user, when the server's recipe needs no root (`toolInstall` says
  `run`); answers what it printed and the new capabilities. Rejects with a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError) (`install`).
  Absent: no Install buttons.
- `pickFolder?` (`() => Promise<string | null>`): Picks a folder to share (the native dialog). Absent: no Add a folder.
- `refreshHosts?` (`() => Promise<void>`): Reads the hosts again (after a setting changed).
- `removeHost?` (`(id: string) => Promise<void>`): Removes a saved server and its token. Rejects with a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError). Absent: no Remove.
- `renameHost?` (`(id: string, name: string) => Promise<HostCheckResult>`): Renames a saved server. Absent: no Rename.
- `retry?` (`(hostId: string) => Promise<void>`): Reconnects to a server now instead of at the next backoff. Absent: no Retry.
- `setHostUrl?` (`(id: string, url: string) => Promise<HostCheckResult>`): Moves a saved server to a new URL with its saved token, once the same server answers there. Absent: no Change URL.
- `signIn?` (`(hostId: string, target: HostSignInTarget, onDone?: () => void) => SignInFlow`): Starts a browser sign-in whose tokens stay on `hostId` (the browser opens here); `onDone` runs once the server
  stored them. Absent: no "Sign in there".
- `testHost?` (`(target: { id: string } | { token: string; url: string }) => Promise<HostCheckResult>`): Tests a saved server, or a URL and token before saving. Absent: no Test.

Source: [ui/src/machines/headless/host.ts:306](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L306)

### `MachinesPresence`

Interface.

Every session's presence, and one session's.

```ts
interface MachinesPresence
```

**Properties**

- `sessions` (`Readable<ReadonlyMap<string, SessionPresence>>`): Every live session's presence, by session id (for list-level decisions).
- `session` (`(sessionId: string) => Readable<SessionPresence | null>`): One session's presence (`null`: none); the same store for the same id.

Source: [ui/src/machines/headless/presence.ts:26](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/presence.ts#L26)

### `SavedHosts`

Interface.

The saved-server registry, kept current while subscribed.

```ts
interface SavedHosts
```

**Properties**

- `state` (`Readable<SavedHostsState>`): The registry as last read.
- `refresh` (`() => Promise<void>`): Reads it again (after an add, rename or remove). Never rejects.

Source: [ui/src/machines/headless/host.ts:137](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L137)

### `SavedHostsState`

Interface.

The saved servers as the registry lists them, with the dates the live statuses lack.

```ts
interface SavedHostsState
```

**Properties**

- `error` (`MachinesError | null`): Why the last read failed.
- `hosts` (`readonly HostSummary[]`): The hosts from the last read that succeeded (`addedAt`, `lastConnectedAt`); empty until one did.
- `status` (`'error' | 'idle' | 'loading' | 'ready'`): `idle` before the first read; `loading` while one is in flight; `ready` or `error` after.

Source: [ui/src/machines/headless/host.ts:127](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L127)

### `ServerToken`

Interface.

A server's client token as listed: never its secret.

```ts
interface ServerToken
```

**Properties**

- `createdAt` (`number`): When it was created, epoch ms.
- `expiresAt?` (`number`): When it stops working, epoch ms. Absent: never.
- `id` (`string`): Stable id (`tok_…`).
- `lastUsedAt?` (`number`): When it last opened a connection, epoch ms.
- `name` (`string`): The name it was created with, such as the device it is for.
- `revokedAt?` (`number`): When it was revoked, epoch ms. Absent: live.
- `scope` (`ServerTokenScope`): What it may do.

Source: [ui/src/machines/headless/host.ts:213](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L213)

### `ServerTokens`

Interface.

A server's client tokens. Every method rejects with a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError).

```ts
interface ServerTokens
```

**Properties**

- `create?` (`(hostId: string, name: string, scope: ServerTokenScope) => Promise<ServerToken & { token: string }>`): Creates a token; the answer carries its secret, shown once. Absent: no create form.
- `list` (`(hostId: string) => Promise<readonly ServerToken[]>`): `hostId`'s tokens, revoked ones included.
- `onChanged?` (`(hostId: string, listener: () => void) => () => void`): Calls `listener` when `hostId`'s tokens changed elsewhere (another page, a pairing, the CLI). Returns the unsubscribe. Absent: the list is read when shown and after its own changes.
- `revoke?` (`(hostId: string, id: string) => Promise<void>`): Revokes a token. Absent: no revoke buttons.

Source: [ui/src/machines/headless/host.ts:231](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L231)

### `ServerUpdates`

Interface.

A server's self-update. Every method rejects with a [`MachinesError`](https://zidane.si/docs/reference/ui-machines-headless.md#MachinesError).

```ts
interface ServerUpdates
```

**Properties**

- `check?` (`(hostId: string) => Promise<ServerUpdateStatus>`): Checks for a release now. Absent: no Check now.
- `configure?` (`(hostId: string, enabled: boolean) => Promise<ServerUpdateStatus>`): Turns the self-update on or off. Absent: no Turn on / off.
- `install?` (`(hostId: string) => Promise<ServerUpdateStatus>`): Installs the ready or waiting release now. Absent: no Install now.
- `status` (`(hostId: string) => Promise<ServerUpdateStatus | null>`): Where `hostId`'s self-update stands; `null` from a server that predates it.

Source: [ui/src/machines/headless/host.ts:198](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L198)

### `ServerUpdateStatus`

Interface.

Where a server's self-update stands, as `server.update.*` reports it.

```ts
interface ServerUpdateStatus
```

**Properties**

- `current` (`string`): The version running now.
- `enabled` (`boolean`): The setting, as the window or the config set it.
- `error?` (`string`): What went wrong, in the `error` state.
- `lastCheckAt?` (`number`): When it last checked for a release, in epoch milliseconds.
- `latest?` (`string`): The newest release seen.
- `reason?` (`string`): Why not, when it can't.
- `rolledBackFrom?` (`string`): The release the last update rolled back from; it is skipped until a newer one is published.
- `state` (`UpdateState`): What the updater is doing.
- `supported` (`boolean`): This install can update itself (a release binary in a writable folder).
- `updatedFrom?` (`string`): The last update: from which version, or the version rolled back from.
- `waitingFor?` (`('work' | 'terminals')[]`): In the `waiting` state: what the install waits for. `work`: runs,
  commands and background tasks; `terminals`: open terminals with a
  command running. `Install now` stops waiting for both.
- `waitingSince?` (`number`): In the `waiting` state: since when, in epoch milliseconds.

Source: [dist/types-DO7XR6uv.d.ts:9](https://github.com/Tahul/zidane/blob/main/dist/types-DO7XR6uv.d.ts#L9)

### `SessionPresence`

Interface.

One session's presence.

```ts
interface SessionPresence
```

**Properties**

- `attention` (`boolean`): A pending approval or question: it waits on the user somewhere.
- `running` (`boolean`): A run is executing right now.
- `sessionId` (`string`): The session the presence is for.
- `windows` (`number`): How many windows are attached to (watching) the session.

Source: [ui/src/machines/headless/presence.ts:14](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/presence.ts#L14)

### `SyncOutcome`

Interface.

The result of a server's last push, for its chip.

```ts
interface SyncOutcome
```

**Properties**

- `complete` (`boolean`): Nothing failed.
- `failed` (`string[]`): What failed: the push error, fields the server skipped, categories still waiting.
- `warnings` (`string[]`): What only warned.

Source: [ui/src/machines/headless/sync.ts:147](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L147)

### `SyncPushResult`

Interface.

`sync.push`: what happened to each field of the snapshot.

```ts
interface SyncPushResult
```

**Properties**

- `applied` (`string[]`): Fields written on the server.
- `skipped` (`{ field: string; reason: string }[]`): Fields left alone, each with the reason.
- `unchanged` (`string[]`): Fields that already matched the snapshot.
- `warnings` (`{ field: string; message: string }[]`): Fields applied with a caveat, each with the message.

Source: [dist/types-DO7XR6uv.d.ts:183](https://github.com/Tahul/zidane/blob/main/dist/types-DO7XR6uv.d.ts#L183)

### `SyncStatus`

Interface.

`sync.status`: the server's record, no values.

```ts
interface SyncStatus
```

**Properties**

- `categories` (`SyncCategory[]`): Categories the source sends.
- `fields` (`Record<string, { category: SyncCategory; syncedAt: number }>`): Fields the source set: field → when.
- `keys` (`string[]`): Providers whose API key the source opted in.
- `lastPushAt?` (`number`): Time of the last push in epoch ms.
- `overrides` (`Record<string, { at: number }>`): Fields edited on the server since: sync leaves them alone until `sync.reset`.
- `source` (`SyncSource | null`): The device the server syncs from, or `null` when unclaimed.

Source: [dist/types-DO7XR6uv.d.ts:163](https://github.com/Tahul/zidane/blob/main/dist/types-DO7XR6uv.d.ts#L163)

### `ToolInstallResult`

Interface.

What an install did: it worked, its output's end, and the server's capabilities after it.

```ts
interface ToolInstallResult
```

**Properties**

- `capabilities` (`HostCapabilities`): The server's capabilities, probed again after the install.
- `ok` (`boolean`): The install command exited 0.
- `output` (`string`): The end of what it printed (stdout, then stderr).

Source: [ui/src/machines/headless/host.ts:286](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L286)

## Types

### `DaemonHealth`

Type.

Daemon connection health — the one model behind the status dot in both
clients' footers.

Three states, because "connected: boolean" cannot express the one users
actually want to see: a daemon that is being spawned or reconnected is not
DOWN, and painting it red for the seconds that takes teaches people to
ignore red. So:

- `connected`    — handshake done, signals live.            green (accent)
- `connecting`   — spawning / reconnecting / first attempt. amber (warn)
- `disconnected` — reachable daemon absent, last attempt failed. red (error)

Tones are theme SLOTS, not colors, so the dot recolors with the palette on
both surfaces. Node-free; re-exported from `zidane/chat/pure`.

```ts
type DaemonHealth = 'connected' | 'connecting' | 'disconnected'
```

Source: [dist/media-type-BzRZ4FqT.d.ts:8750](https://github.com/Tahul/zidane/blob/main/dist/media-type-BzRZ4FqT.d.ts#L8750)

### `HostCheckError`

Type.

A registry refusal's code: what is wrong with a server's URL, token or name, or why it did not answer.

```ts
type HostCheckError =
  | 'invalid-url'
  | 'invalid-token'
  | 'invalid-name'
  | 'auth'
  | 'unreachable'
  | 'tls'
  | 'protocol'
  | 'identity'
  | 'unknown-host'
  | 'disabled'
  | 'unknown'
```

Source: [ui/src/machines/headless/host.ts:66](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L66)

### `HostCheckResult`

Type.

A test, an add or a rename, answered as data. `message` is the backend's own words.

```ts
type HostCheckResult =
  | { host?: HostSummary; latencyMs?: number; name: string; ok: true; serverVersion?: string }
  | { error: HostCheckError; message: string; ok: false }
```

Source: [ui/src/machines/headless/host.ts:80](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L80)

### `HostSignInTarget`

Type.

What a sign-in on a server is for: a provider, or an MCP server of its catalog (in `cwd`'s project).

```ts
type HostSignInTarget = { provider: string } | { cwd?: string; mcpServer: string }
```

Source: [ui/src/machines/headless/host.ts:166](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L166)

### `MachineActionResult`

Type.

A machine link action's outcome. `needsToken`: the server could not mint a machine token, paste one.

```ts
type MachineActionResult =
  | { links: MachineLinksStatus; ok: true }
  | { message: string; needsToken?: boolean; ok: false }
```

Source: [ui/src/machines/headless/host.ts:85](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L85)

### `MachinesAction`

Type.

An action `permitted` may withhold.

```ts
type MachinesAction =
  | 'machines.list'
  | 'machines.forget'
  | 'machines.invite'
  | 'update.status'
  | 'update.manage'
  | 'tokens.list'
  | 'tokens.manage'
```

Source: [ui/src/machines/headless/host.ts:296](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L296)

### `MachinesLabels`

Type.

The machines components' strings: the shape of [`DEFAULT_MACHINES_LABELS`](https://zidane.si/docs/reference/ui-machines-headless.md#DEFAULT_MACHINES_LABELS).

```ts
type MachinesLabels = typeof DEFAULT_MACHINES_LABELS
```

Source: [ui/src/machines/headless/labels.ts:382](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/labels.ts#L382)

### `MachinesTone`

Type.

The tone of a line or chip: plain, good, worth a look, failed.

```ts
type MachinesTone = 'muted' | 'success' | 'warn' | 'danger'
```

Source: [ui/src/machines/headless/messages.ts:105](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/messages.ts#L105)

### `PresenceFeed`

Type.

Starts the feed: hands each snapshot to `apply` (every live session), and returns how to stop.
Re-list on a reconnect: the last snapshot predates it.

```ts
type PresenceFeed = (apply: (sessions: readonly SessionPresence[]) => void) => () => void
```

Source: [ui/src/machines/headless/presence.ts:37](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/presence.ts#L37)

### `ServerTokenScope`

Type.

A token's scope on a server: a client scope, or `machine` (it lends a computer).

```ts
type ServerTokenScope = ClientScope | 'machine'
```

Source: [ui/src/machines/headless/host.ts:210](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/host.ts#L210)

### `SyncBlockedReason`

Type.

Why a server can't take a category now.

```ts
type SyncBlockedReason = 'newer-server' | 'refuses-installs' | 'no-git'
```

Source: [ui/src/machines/headless/sync.ts:178](https://github.com/Tahul/zidane/blob/main/ui/src/machines/headless/sync.ts#L178)

### `SyncCategory`

Type.

Settings sync, this computer → a server (one-way, opt-in): the shapes both
sides share. Node-free, re-exported from `zidane/chat/pure` for the GUI
renderer.

A server keeps one sync record (`<dataDir>/sync.json`): the device that
syncs to it (one source per server), the categories that device sends,
the fields it set ("synced from <device>") and the fields edited on the
server since (overrides, which sync leaves alone until reset). The client
keeps, per saved server, a mode, the categories, the API keys it opted in
and the categories still to push (`hosts-sync.json`).

Fields are named `<kind>:<name>`: `setting:approvalMode`, `safelist:/srv/app`,
`system-md`, `skill:deploy`, `mcp:github`, `extension:greeter`,
`environment:e2b`, `key:anthropic`.

```ts
type SyncCategory =
  | 'settings'
  | 'safelists'
  | 'files'
  | 'mcps'
  | 'extensions'
  | 'environments'
  | 'keys'
```

Source: [dist/types-DO7XR6uv.d.ts:57](https://github.com/Tahul/zidane/blob/main/dist/types-DO7XR6uv.d.ts#L57)

### `SyncMode`

Type.

Off (default), Import once (a snapshot now), or Keep in sync (changes pushed as they happen).

```ts
type SyncMode = 'off' | 'once' | 'keep'
```

Source: [dist/types-DO7XR6uv.d.ts:66](https://github.com/Tahul/zidane/blob/main/dist/types-DO7XR6uv.d.ts#L66)
