Getting Started
Create a Source, send your first typed Action, and resume safely after a human decision.
Prefer a guided first run?
Guided onboarding opens over the authenticated Inbox and keeps the first run focused: create one Source, copy its one-time key, send a safe prebuilt Action, and answer it in the real Inbox. Advanced integration guidance remains separate, so the first run presents one choice at a time. The detailed path below is available when you are ready to connect a real workflow.
1. Install and configure the CLI
python -m pip install actionbox
actionbox configure
actionbox doctorKeep Source credentials in trusted servers, workers, CI secrets, or your local credential store. Never place them in browser code.
2. Ask and wait
actionbox ask "Deploy v2.18 to production?" \
--option approve="Approve & Deploy" \
--option reject="Reject & Abort" \
--timeout 30m \
--waitThe command creates an Action and blocks on the server-authoritative state until it resolves or the local wait reaches its timeout. A local timeout leaves the server-side Action open. See the CLI guide for response formats, timeouts, and CI use.
3. Review the Action
Open the ActionBox inbox, inspect the proposed operation and context, then choose an option. Treat notifications as alerts; the Action API remains authoritative.
4. Branch on the result
Use --json when software needs the full structured result. For direct integrations, choose the Python SDK, TypeScript SDK, or REST API.
5. Set up the mobile app
Open the stable mobile download on your phone or scan the QR code in the site footer. The link sends iPhone and iPad users to the current App Store listing and can route other platforms as ActionBox adds them.
Sign in with the same account you use for the hosted inbox. Allow notifications if you want alerts, then open Settings → Notification preferences to choose eligible events, priorities, quiet hours, and preview detail. Push alerts help you notice new work; always open the Action to review its current server state before responding.
See the mobile app guide for setup and troubleshooting.
Timeouts are not decisions
If a waiting client times out, do not assume rejection. Read the Action state or define an explicit server-side expiration outcome.