Forkable
Arcade tools for Forkable — list this week's meals, browse menus, and pick what you want delivered
2.0.1Forkable is a workplace lunch delivery service. This toolkit lets an Arcade agent list upcoming deliveries, browse menus, check dietary conflicts, and swap or skip meals on behalf of a signed-in user.
Capabilities
- Delivery schedule awareness: Retrieve upcoming delivery days with their current state (open, locked, delivered), the active meal pick, and which menus are available for swapping.
- Menu browsing: Fetch full menu data — sections, items, prices, and modifier options — for one or more menus in a single call.
- Dietary safety checks: Validate a candidate item (with modifiers) against the user's dietary restrictions before committing, returning any conflicting tags.
- Meal management: Swap an existing meal pick to any eligible menu item, or skip a delivery day entirely (while the order window is still open).
Secrets
Authentication is credential-based; no OAuth flow is involved. The following secrets must be configured so the toolkit can sign in to Forkable on the user's behalf.
-
FORKABLE_EMAIL— The email address associated with the user's Forkable account. This is the same address used to log in at the Forkable web app. Supply it as a plain string secret. -
FORKABLE_PASSWORD— The password for that Forkable account. This is the user's Forkable login password. Because this is a raw credential, treat it with the same care as any sensitive password: store it only in Arcade's secrets store, never in code or environment variables.
To configure these secrets, see the Arcade secrets documentation: https://docs.arcade.dev/en/guides/create-tools/tool-basics/create-tool-secrets
You can also manage secrets directly from the Arcade dashboard: https://api.arcade.dev/dashboard/auth/secrets
Available tools(5)
| Tool name | Description | Secrets | |
|---|---|---|---|
Check whether picking this item (with the given modifier selections) would
conflict with the signed-in user's dietary restrictions.
Returns the list of conflict tags (e.g. `["dairy_free"]`) — empty if the
item is safe. Call this before picking the item as a meal to warn the user, or
to let the agent pick a different item. | 2 | ||
Fetch the full menu (sections, items, prices, modifiers) for one or more menu IDs.
Each item ships with the `item_id` and `menu_id` you'll need to pick it as your meal. | 2 | ||
List your upcoming Forkable delivery days and what's currently picked for each.
Each entry shows the delivery date, current state (open / locked / delivered),
the meal currently assigned to you (`my_pick`), and the menu IDs whose items you
can swap your pick to. Results are sorted by delivery date.
An entry whose `my_pick.piece_id` is empty has no meal allocated to you yet, so
there is no pick to swap on it; picking a meal only replaces an existing pick. | 2 | ||
Replace your assigned meal on one delivery with a different menu item.
Only works on deliveries that already have a meal allocated to you (a
non-empty `my_pick.piece_id`). Forkable's `replacePiece` mutation swaps an
existing pick; it can't create one from nothing — initial allocation
happens on the Forkable side.
The mutation returns the refreshed delivery; this tool surfaces the new pick
and the updated amount due. | 2 | ||
Skip a day — removes your assigned meal from a Forkable order.
Use only when the delivery is still open for changes (`locked: false`
and not `past_late_order_deadline`). | 2 |