Skip to documentation
Notify Docs

Get connected

Send a decision to your phone and see the answer return. Then connect an agent, script, or service to ask when it needs you.

Choose your connection

Use Notify when a script, service, or agent needs to reach a person away from a terminal. An update goes to the inbox and eligible iPhone or Android devices; a question waits for a human answer; an activity keeps a running task visible.

Choose a webhook for an existing system that can POST JSON. Choose MCP for a compatible agent client, or the CLI for terminal workflows. Webhooks use a service secret; MCP and CLI connections have revocable permissions. Personal and Family plans are free.

Connect your phone

Install the iOS beta through the public TestFlight link. No developer-issued invitation is needed; a public App Store listing is not yet available. Android has a native client and APK build workflow in the repository guide; this is not a public Google Play release. Packaged Mini Apps are a separate developer preview and are not required for notifications or decisions.

Install your invited iOS build or your locally built Android APK. Open Notify, sign in with Apple or Google, and allow notifications.
Sign in to the website with the same account. Open Ask your phone and select Check devices. Registration and permission are prerequisites for a push banner; a registered device alone does not prove delivery.

Set up as an agent

An agent with an AgentID can sign in or create its own Notify account without borrowing a human’s Apple or Google credentials. The same AgentID sign-in is available in the iOS app, CLI authorization, MCP consent, and team invitations. Read authentication instructions for the complete unattended setup path.

Open /login/agentid. AgentID uses your existing browser enrollment or shows the AgentMail command to enroll this browser. Run that command in your own environment using your own AgentMail credentials. Notify requests only openid email profile; owner-sharing approval is not required.
After sign-in, open API keys and create a named credential with only the scopes your work needs. Store the secret privately when it is shown once. You can instead complete notify auth login or your MCP client’s OAuth flow in the same AgentID browser; the agent can review and approve access to its own account.
Use the OpenAPI specification or connect to https://notify.belweave.ai/mcp. Check your account and devices, then create services, configure reply webhooks, register apps, manage teams and routing, or publish Mini Apps within your permissions. A scoped API key cannot mint new credentials or widen its own scopes.
To reach a human who uses a separate Notify account, create a family or use an existing workplace team, invite them, and share the relevant services and apps. New workplace-team creation is not currently available. The human accepts the invitation, installs the app, signs in, and grants device permissions. An agent account has its own inbox; knowing the human’s email does not link accounts or grant access to their phone.
AgentID proves the agent’s identity. It does not approve an unrelated human’s decision, grant device permissions, or prove delivery. Use existing team roles and explicitly granted scopes. Link X from Connected accounts after signing in with Apple, Google, or AgentID; linking requires proof of the X account and never merges by email.

Try a decision

In Ask your phone, start with the connection check or write a personal request. Choose approve/deny, yes/no, or a written reply, then select your own devices. Send to my phone creates a real request without creating an API key. Dashboard requests never run a job, share with a family or team, or call reply webhooks.

Send the connection check. Answer from Notify’s Inbox or its notification actions. If no banner appears, open the Inbox and check notification permissions and device registration.
Watch Your recent requests for the confirmed result. Push accepted means the provider accepted a delivery request; queued means delivery will retry. Neither means a person saw or answered it.
If sending loses its connection, use Retry same request. The pending send is kept in this browser tab and reuses the same idempotency key after a reload. If checking for the answer fails, keep the last result and use Refresh results when connected.
Requests expire after ten minutes and can be canceled before an answer. Expiry, cancellation, or a wait timeout never counts as approval. A confirmed phone response proves the round trip, not that an external job finished.

For a real agent or script workflow, install the CLI, sign in, and send a request with --wait. Require an explicit approved result before taking action; handle denial, expiry, and timeout separately. Connect MCP for clients that support the remote server. Credentials are scoped and revocable.

bash
notify auth login
notify send ask "Tests passed. Proceed with the release?" --approval --title "Release check" --wait --timeout 10m

Account, device, and service

Sign in to Notify with Apple, Google, or AgentID. Use the same Notify account on the devices that should receive your updates.
Open Notify on your iPhone or Android device, sign in, and allow notifications to register your device.
In the dashboard, add a service for one source, such as Warehouse scanner. Set its sender title, optional image, and destination URL.
Save the returned webhook URL in the sending system’s secret store. You can now send an update.

For help with your account or setup, contact info@belweave.com.

Save the service credential

The URL includes a bearer credential for this service. A holder can send to its eligible devices, so keep it out of source control and public logs. Agent service reads redact the URL; agent creation and rotation return it once. The signed-in dashboard can retrieve an existing encrypted webhook URL.

Webhook URL
https://notify.belweave.ai/hooks/whk_your_token

Rotation invalidates the previous URL. An unknown token is reported as 404 with { "ok": false, "error": "Unknown webhook" }; replace the sender’s stored credential after rotating.

Connect an MCP client

Configure Notify as a remote Streamable HTTP MCP server. Prefer OAuth discovery and browser consent when your client supports them. Clients that accept a Bearer header can instead use a scoped Notify API key; both connect to the same endpoint below. Request only the permissions your workflow needs.

MCP server URL
https://notify.belweave.ai/mcp

OpenCode configuration belongs in opencode.json:

json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "notify": { "type": "remote", "url": "https://notify.belweave.ai/mcp" }
  }
}

For Claude Code, use the HTTP add command below. Cursor’s configuration goes in ~/.cursor/mcp.json:

bash
claude mcp add --transport http notify https://notify.belweave.ai/mcp
json
{
  "mcpServers": {
    "notify": { "url": "https://notify.belweave.ai/mcp" }
  }
}

Set up the CLI

Download the versioned CLI bundle from Notify Tools 0.13.0. Requires Node.js 22.13 or newer; no npm package installation is needed.

Verify the download, inspect the installer, and install the exact release:

bash
curl -fLO https://notify.belweave.ai/downloads/notify-tools/v0.13.0/notify-tools-0.13.0.tar.gz
curl -fLO https://notify.belweave.ai/downloads/notify-tools/v0.13.0/SHA256SUMS
shasum -a 256 -c SHA256SUMS
mkdir notify-tools-0.13.0
tar -xzf notify-tools-0.13.0.tar.gz -C notify-tools-0.13.0
cd notify-tools-0.13.0
node install.mjs --dry-run
node install.mjs
export PATH="$HOME/.local/bin:$PATH"
notify auth login
notify --help
Run notify auth login to obtain a short device-authorization code and open Notify in your browser.
Sign in, inspect the requested scopes, and authorize the connection.
The CLI polls for that authorization and saves credentials in its OS configuration file with mode 0600.

Check your connection with notify auth status. Dashboard agent connections show its scopes and usage; revoking a connection invalidates it immediately. notify auth logout revokes the connection and removes its local credentials.

Repeat --scope to request only needed permissions. --client-name labels the connection and --expires-in requests its lifetime (default 90d); review the resulting expiry. NOTIFY_TOKEN and NOTIFY_API_URL override saved credentials and the API base for authorized CI use. Current tools accept existing ntf_ and Clerk-managed ak_ user API keys in the same saved configuration token field and SDK token option. Browser login saves credentials with mode 0600; provision CI credentials through your secret store as NOTIFY_TOKEN, never as a command argument. Clerk application publishable and secret keys are not Notify user API credentials.