Quick Start
Get up and running with Mushu in 5 minutes. Choose your path based on what you're building.
What do you need?
Upload images and videos. No setup required beyond auth.
Accept payments with Stripe. Prepaid credits and wallets.
Send APNs push and email. Requires Apple Developer account.
Apple Sign In for iOS and Web. Organizations and sessions.
Link external services like Facebook to orgs with auto-refreshing tokens.
Common Setup (All Services)
Every path starts with these steps:
1. Install the CLI
pip install mushu-cli 2. Sign In
mushu auth login This opens your browser for Apple Sign In.
3. Create an Organization
mushu org create "My App Team"
# Output: ✓ Organization created
# ID: org_abc123 ← Save this!
# Name: My App Team Save the org_id from the output - you'll need it for all API calls.
You can find it later with:
mushu org list 4. Create an App
mushu app create "My App" --bundle-id com.example.app --org ORG_ID
# Output: ✓ App created
# ID: app_xyz789 ← Save this! 5. Create an API Key (for server-to-server)
mushu api-key create "backend" --app APP_ID
# Output: ✓ API key created
# Key: msk_live_xxx... ← Save immediately, only shown once! CLI vs API: CLI commands use your login session. For server-to-server API calls, use the API key above.
Done! You can now use Media or Pay immediately. Push notifications require additional APNs setup below.
Push Notifications Setup
Push requires APNs credentials from your Apple Developer account.
Prerequisites
- An Apple Developer account
- An APNs key (.p8 file) from Apple Developer portal
4. Create a Notify Tenant
A tenant represents your iOS app and holds your APNs credentials. You'll need your APNs key from the Apple Developer portal.
mushu tenant create \
--org YOUR_ORG_ID \
--bundle-id com.yourcompany.yourapp \
--team-id YOUR_TEAM_ID \
--key-id YOUR_KEY_ID \
--key-file ~/path/to/AuthKey_XXXXX.p8 Replace the placeholders with your actual values:
YOUR_ORG_ID- The org_id from step 3com.yourcompany.yourapp- Your iOS app's bundle identifierYOUR_TEAM_ID- Your 10-character Apple Developer Team IDYOUR_KEY_ID- The 10-character key ID for your APNs key
Tip: By default, tenants use the APNs sandbox environment.
Add --production when you're ready for production.
5. Register a Device
In your iOS app, get the device token from APNs and register it with Mushu. For testing, you can register a token manually:
mushu device register \
--user test-user-123 \
--token YOUR_DEVICE_TOKEN \
--platform ios
In production, call the registration API from your app after receiving
the device token from didRegisterForRemoteNotificationsWithDeviceToken.
6. Send a Push
Now send a push notification:
mushu push send \
--user test-user-123 \
--title "Hello" \
--body "Your first Mushu push!" If everything is set up correctly, you'll see the notification on your device.
Next Steps
- CLI Reference - Explore all available commands
- Create API Keys - For server-to-server calls
- MCP Setup - Use Mushu with AI assistants
- Organizations - Add team members
Troubleshooting
Push not arriving?
- Verify your APNs key is valid and matches the bundle ID
- Make sure you're using sandbox mode with development builds
- Check that the device token is correctly registered
Authentication errors?
- Run
mushu auth refreshto refresh expired tokens - Run
mushu auth loginagain if refresh fails
Permission denied?
- Verify you're a member of the organization
- Check your role has the required permissions