Enter your access key
One prioritized view of customer-impacting, accounting, infrastructure, release, and fleet issues.
Kill switch and fleet-wide guardrails from the PEREGRINE backend. Devices pick up changes on their next 5-minute config poll.
One correlated chronological account of app, engine, policy, network, capture, worker, ANR, and error activity.
Fingerprint-grouped crashes, ANRs, and repeated nonfatal errors with version/device impact and resolution state.
| Error | Type | Severity | Occurrences | Versions | Devices | Last Seen | State | Action |
|---|---|---|---|---|---|---|---|---|
| Loading errors | ||||||||
Privacy-safe failures reported automatically before an account exists. Search the support event ID shown to the user.
| Support ID | When | Operation | Error | HTTP | Connectivity | Retry | Version | Device | Latency |
|---|---|---|---|---|---|---|---|---|---|
| Loading enrollment support | |||||||||
Live backend readiness, connected devices, capture activity, crashes, and version adoption.
Ledger-derived totals for slots, collections, commissions, payouts, and reconciliation.
Readiness, deployment, database, APK, and proxy state.
Live download availability and artifact size. Publishing controls stay in Releases.
Search by device, masked phone, account, plan, version, or state. Online means a check-in within 15 minutes.
| Device | Phone | State | Account | Identity Device | Installed | Recommended | OTA State | Last Check | Staged Release | Prompt / Failure | Last Seen | Requests | Assigned | Rejected | Unknown | Attempts | Success | Pending | Retrying | Failed | Oldest | Last Sync | Last Crash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading fleet | |||||||||||||||||||||||
Derived from crashes, anomalies, stale check-ins, queue backlog/failures, and version drift.
Registration, login, release, and operator events from the fleet backend.
Review account-scoped training drafts, validation evidence, activation history, and rollback state. A device submission never changes production until approved and activated here.
| Use Case | Scope | Target App | Version | Validation | Status | Updated | Actions |
|---|---|---|---|---|---|---|---|
| Loading training lifecycle | |||||||
Automatic text-free layout families, immutable fixture identities, held-out replay, and exact reasons a structural candidate cannot advance. Geometry and hashes identify structure; semantic classes come only from bounded on-device recognition.
| Layout Family | Target Version | Devices | State | First Failed Stage | Fixture | Current → Candidate | Candidate | Advancement Reasons |
|---|---|---|---|---|---|---|---|---|
| Loading privacy-safe perception learning | ||||||||
Observed outcomes by signed policy version, including counterfactual shadow evaluations.
| Policy | Attempts | Success | Average Score | Parser Confidence | Fallbacks | Shadow Evaluations | Last Outcome |
|---|---|---|---|---|---|---|---|
| Loading ranking effectiveness | |||||||
Replay health and bounded action/shadow comparisons. Score and value deltas are observational diagnostics, never causal uplift.
| Cohort | Policy | Station / Hour | Confidence | Decisions | Disagreement | Coverage | Fallback | Verified Success | Observed Δ | Evidence |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading decision evidence | ||||||||||
Low-confidence extractions and failed verification samples collected from idempotent runtime telemetry.
| Reason | Sample | Confidence | Policy | Device | Observed |
|---|---|---|---|---|---|
| Loading outcome samples | |||||
Positive and negative examples saved with the draft. Sensitive values are bounded and sanitized by the server.
The production lifecycle applied to every trained use case.
Set a published APK URL or upload a local APK served from /dl.
Two roles: Operator (you) manages everything — sales accounts, slots, proxy keys, APKs, accounting, audit. Sales (vendors) see only their own customers, slots, and leads.
Customer app: PEREGRINE uses sponsored phone assignments. The old FlexGrab proxy app is archived and should not be sold.
Create a sales account: Fill name + a unique private key. New sponsored accounts start at 0 credits; fund credits only after payment is recorded.
Credit slots: Enter slots purchased + amount paid, click +. Auto-debits on activation.
Referrals: Create with referrer. Referrer auto-gets $5/slot the new account buys.
FlexGrab APK: Run rebrand-apk.ps1 locally, upload via admin API. Served at /dl/flexgrab-latest.apk.
PEREGRINE APK: Build via build-apk.ps1 -Release, copy to data/peregrine-v1.apk. Served at /dl/peregrine-v1.apk. Must be signed with release keystore.
Proxy accounts: Nova Flex JWTs in the proxy_accounts table (submitted by sales or added by operator).
Slot inventory, money collected, owed value, and ledger drilldown.
| Name | Slots | Paid | +Slots | Action |
|---|---|---|---|---|
| -- | ||||
Active upstream access keys. No active key means drivers see zero offers.
| Owner | Label | Status | Created | Action |
|---|---|---|---|---|
| -- | ||||
Who earned commissions. Click Mark Paid when you send the money.
| Name | Earned | Action |
|---|---|---|
| Nothing owed | ||
--
| City | Source | Status | Created | |
|---|---|---|---|---|
| -- | ||||
Search by phone, plan, status, or expiration.
| Phone | Plan | Paid | Status | Expires | Action |
|---|---|---|---|---|---|
| -- | |||||
Bug reports and feedback from sales team.
| When | From | App | Category | Message | Action |
|---|---|---|---|---|---|
| No feedback yet | |||||
| When | Who | Event | IP |
|---|---|---|---|
| -- | |||
What customers paid you, what your used slots cost, and what is still available.
PEREGRINE is the customer app. Each phone assignment uses one paid credit. Check off each step before the first sale.
One app: PEREGRINE is the app your drivers use. No proxy account or access key needed — it reads the Flex screen directly. Setup steps are in the checklist on the Setup tab.
Assign access: Choose weekly or monthly, record whatever you charged the customer, and enter the customer's phone number. This uses one active credit.
When access expires: Renew the assignment with one new credit.
Running out of credits: When your credits hit 0, message the operator to unlock another weekly or monthly node.
Your node cost: Weekly access costs you $10; monthly access costs you $25. You choose what to charge your customer. Record the actual amount, give a receipt, and never promise guaranteed blocks or account safety.
PEREGRINE APK for drivers: flexgrab.app/dl/peregrine-v1.apk (verify it on your test phone first)
Referrals: Recruit other sellers. You auto-get $5 for every slot they buy.
Support: Use the issue form in this dashboard for app failures and the operator's confirmed private contact for credits or urgent account problems. Do not promise an unverified email address to customers.
--
| City | Profile | Status | Created | Action | |
|---|---|---|---|---|---|
| No assigned leads yet | |||||
Weekly costs you $10 for 7 days; monthly costs you $25 for 30 days. You choose the customer price. One active credit is used.
Search by masked phone, assignment, or status.
| Phone | Status | Assigned | Claimed | Expires | Device | Actions |
|---|---|---|---|---|---|---|
| No assignments yet | ||||||
| When | What | Slots |
|---|---|---|
| -- | ||
What is PEREGRINE? The customer app reads the Amazon Flex screen through Android Accessibility, finds matching offer cards, and attempts the configured action. Results depend on the phone, network, app version, available offers, and platform behavior; do not promise guaranteed captures or update compatibility.
Two things we need from you: (1) Test it works on your phone, (2) Train it if patterns need adjusting. The app ships with default patterns for Amazon Flex — training is optional but improves accuracy.
What you need: A spare Android phone (8.0+) with the Amazon Flex app installed. Don't use your personal phone.
Step 1 — Download & Install: Open Chrome, go to flexgrab.app/dl/peregrine-v1.apk. File should be about 2.62 MB. If it says "not valid," see the APK troubleshooting section.
Step 2 — Enable permissions (both required):
The app won't work without both. Android may warn about accessibility access — this is normal for automation apps.
Step 3 — Assign access: Use Assign PEREGRINE Access above. The tester then enters that phone number once in the app.
Step 4 — Test with Flex: Open the Amazon Flex app, go to the Offers tab. PEREGRINE detects Flex automatically and starts scanning. Check the PEREGRINE notification — it should show capture stats within seconds.
Step 5 — Report back: Tell the operator what happened:
PEREGRINE ships with default patterns that recognize Amazon Flex's offer cards (pay amounts, times, station codes). If Amazon changes their app and PEREGRINE stops detecting offers, you can retrain it:
You don't need to do this unless offers stop appearing. The default patterns work for current Amazon Flex. Training is for when Amazon changes their UI.
Every phone assignment uses one paid credit. Verify the process on your own test phone before selling it. Each customer needs:
Test it yourself first. Run PEREGRINE on your own spare phone before sending it to drivers — you should see it scan and grab before they do.
Safety tip: Use a separate phone for testing — not your personal phone. A $50 used Android works fine. Install only Flex and PEREGRINE. Don't log into banking or email on it.
Do not uninstall PEREGRINE. Uninstalling clears retained identity, filters, settings, outbox, and learning data.
Normal update: The user only opens Amazon Flex. PEREGRINE checks in the background, verifies the signed release, and shows “Update ready / Actualización lista.” The user taps that notification and confirms the installation in Android.
No notification yet: Confirm both Android permissions are still enabled and restart the phone once. If it still fails, submit the issue form below with the customer's assigned phone number and what they observed; the operator can inspect fleet diagnostics.
Android confirmation does not open: On the phone, allow PEREGRINE to install unknown apps when Android requests it, then tap the persistent update notification again. PEREGRINE never opens the installer over Amazon Flex by itself.
Fallback only: If the operator console proves background OTA cannot recover, download the same signed APK from flexgrab.app/dl/peregrine-v1.apk and install it over the existing app without uninstalling.
Something not working? App crashed? Blocks not appearing? Tell us here.
Identify yourself accurately. Use your normal business identity and say that you sell access to PEREGRINE.
Explain the product. Show what the app attempts to automate, the Android permissions it needs, the plan length, and the price before payment.
Make honest claims. Do not guarantee blocks, earnings, uninterrupted operation, update compatibility, or protection from platform enforcement.
Record every sale. Select the correct plan and enter the amount collected so the dashboard and settlement numbers are accurate.
Use traceable business payments. Give the customer a receipt or written confirmation with the plan dates and your refund terms.
Handle problems visibly. Use the issue form, tell the customer what is known, and escalate unresolved app or activation failures to the operator.
Keep your login private. Never share your key. Tell operator if compromised.
Recommend a separate work phone. It reduces disruption and limits the personal information exposed to work apps and required permissions.
This is the old system. You do NOT need any of it. PEREGRINE replaced the FlexGrab proxy app completely — no more buying Nova Flex accounts, no access keys, no weekly payments to providers. Everything below is kept only as a record of how the old system worked.
The old proxy system needed a Nova Flex access key to show offers. PEREGRINE does not — it reads the Flex screen on the driver's own phone. The key submission below still works but is no longer needed.
No access key submitted. Not needed — PEREGRINE works without one.