Files
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00
..

@elizaos/macosalarm

macOS native alarm scheduling for Eliza agents via UNUserNotificationCenter.

What it does

This plugin adds the ALARM action to an Eliza agent, enabling it to:

  • Set calendar-trigger alarms that fire as macOS system notifications (with sound).
  • Cancel pending alarms by ID.
  • List all pending alarms registered by the agent.

Alarms are delivered through macOS's native UNUserNotificationCenter API. A self-contained Swift CLI (swift-helper/main.swift) is compiled to a binary at bin/macosalarm-helper during the build step. The Eliza runtime spawns this binary via stdin/stdout JSON IPC — no network calls, no third-party services.

Platform support

macOS (darwin) only. The plugin is auto-enabled on darwin ("autoEnable": "darwin"). On any other platform the action's validate hook returns false and no alarms are attempted.

Requirements

  • macOS with swiftc available (Xcode Command Line Tools).
  • Node.js >= 24.
  • The package must be built before use: bun run build compiles both the TypeScript and the Swift helper binary.

Installation

The plugin is part of the elizaOS monorepo. In your agent character config, reference the package name @elizaos/macosalarm (it auto-enables on darwin). For manual loading:

import macosAlarmPlugin from "@elizaos/macosalarm";
// add to your runtime's plugins array

Build

bun run --cwd plugins/plugin-native-macosalarm build

This runs tsc --noCheck and then swiftc swift-helper/main.swift -O -o bin/macosalarm-helper.

Configuration

Env variable Default Purpose
ELIZA_MACOSALARM_HELPER_BIN bin/macosalarm-helper (relative to package root) Override the path to the compiled Swift binary

No other configuration is required.

Capabilities

ALARM action

The ALARM action has three subactions. The subaction is inferred from the message text when not explicitly provided.

Subaction Required params Description
set timeIso, title Schedule a new alarm. timeIso must be an ISO-8601 timestamp. body, sound, and id are optional.
cancel id Remove a pending alarm by its ID (returned from a prior set).
list Return all pending macOS alarms.

Example interactions:

  • "Set an alarm for 7am tomorrow" — schedules via set.
  • "Cancel alarm alarm-abc123" — cancels via cancel.
  • "List my pending alarms" — lists via list.

Keyword matching covers English and several other languages (Spanish, French, German, Chinese, Japanese, Korean, Vietnamese).

Permissions

On first use of set, macOS will prompt the user to allow notifications from the process. If the user denies this permission, alarm scheduling will fail with a permission-denied error.

Role gate

The ALARM action requires the agent's user to have at minimum the ADMIN role.

Limitations

  • macOS only — no Windows or Linux support.
  • The Swift binary must be compiled locally; pre-built binaries are not bundled in the npm package.
  • UNUserNotificationCenter requires the helper to run from a signed app bundle. Invoked as a bare CLI it throws an NSInternalInconsistencyException (bundleProxyForCurrentProcess is nil); packaging/signing is owned downstream.