agentCLAWHUBUnverified

alltrails-fpx

Query alltrails.com (trail search, trail detail, reviews, photos, weather, and a signed-in user's saved lists / completed trails / activity feed) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the alltrails-mcp server — one-shot calls through a signed-in browser tab. Use when you want AllTrails data without the MCP, in a script, or on a machine where the MCP isn't installed. Skill: alltrails-fpx Owner: chrischall Summary: Query alltrails.com (trail search, trail detail, reviews, photos, weather, and a signed-in user's saved lists / completed trails / activity feed) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the alltrails-mcp server — one-shot calls through a signed-in browser tab. Use when you want AllTrails data without the MCP, in a script, or on a machine where

OpenClaw

Rank

62

Safety

84

Downloads

1.5k

Updated

Oct 10, 2026

Version

3.1.8

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 10, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 10, 2026
Adoption signal
1.5K downloadsadoption · observed Oct 10, 2026
Latest release
3.1.8release · observed Oct 9, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:alltrails-fpx
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/snapshot"

Documentation

CLAWHUB

147,219 characters of source documentation, loaded on request.

Extracted files

4 files captured from the source.

SKILL.md

---
name: alltrails-fpx
description: >-
  Query alltrails.com (trail search, trail detail, reviews, photos, weather,
  and a signed-in user's saved lists / completed trails / activity feed) from
  a shell with the fpx CLI (@fetchproxy/cli) instead of running the
  alltrails-mcp server — one-shot calls through a signed-in browser tab. Use
  when you want AllTrails data without the MCP, in a script, or on a machine
  where the MCP isn't installed.
---

# AllTrails via fpx (no MCP)

AllTrails has **no public API**; alltrails-mcp reverse-engineers the internal
one alltrails.com itself uses, fronted by **DataDome**. DataDome fingerprints
the HTTP client, not just the cookie — a Node/curl replay of a captured
cookie gets **403'd** even the same day an identical in-tab fetch succeeds.
So every request must ride a same-origin fetch inside the user's own signed-in
tab, which `fpx` provides (no stored-cookie mode, unlike some other fleet
skills).

Every request also needs an **`x-at-key` app header** — a static, anonymous
client-identifier the web app sends on every `/api/alltrails/*` call. It is
**not stored anywhere** — capture it live from the tab's own traffic (below).
An in-tab `fetch` does **not** add it automatically, so it (plus
`x-at-caller`/`x-language-locale`) must be attached explicitly on every `fpx`
call, same as the MCP's `client.ts` does.

## One-time setup

```sh
npm install -g @fetchproxy/cli                  # provides `fpx`
fpx profile add alltrails --domain alltrails.com
fpx profile declare alltrails \
  --capture-header '[email protected]/api/alltrails/*'
fpx pair -p alltrails                           # prints a pair code → approve in ContextMint Bridge
```

Requirements: the **ContextMint Bridge** browser extension installed
([releases](https://github.com/nullnet-app/contextmint-bridge/releases) —
Chrome: load the chrome zip unpacked; use Chrome for now — Safari will ship inside the
ContextMint app, which has no public download yet), its Chrome
**Site access** allowing `alltrails.com`, and an open, **signed-in**
`www.alltrails.com` tab (the per-user tools need a real session; the trail
tools work signed-out too). Pairing persists after the first approval.
ContextMint Bridge is the fetchproxy extension renamed, same maintainer; source and `.sha256`-checkable release zips at https://github.com/nullnet-app/contextmint-bridge.

## Capture the app key, then attach it on every call

`x-at-key` is captured from the *tab's own* API traffic — the capture only
fires while the tab makes a request. `fpx session` triggers the capture and
returns everything declared, including `capturedHeaders`:

```sh
AT_KEY=$(fpx session -p alltrails | jq -r '.capturedHeaders["x-at-key"] // empty')
```

If `AT_KEY` comes back empty, the tab made no `/api/alltrails/*` request
**during the capture window**. The extension listens only while the capture
call is in flight, so loading a page first and running `fpx session` afterwards
is a race you usually lo

_meta.json

{
  "ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
  "slug": "alltrails-fpx",
  "version": "3.1.8",
  "publishedAt": 1791588181723
}

references/endpoints.md

# AllTrails endpoints for fpx

Every request needs the app-key headers captured in `SKILL.md`. All examples
below assume:

```sh
AT_KEY=$(fpx session -p alltrails | jq -r '.capturedHeaders["x-at-key"] // empty')
H=(-H "x-at-key: $AT_KEY" -H 'x-at-caller: Mugen' -H 'x-language-locale: en-US')
```

Base URL: `https://www.alltrails.com`. Paths below are all under
`/api/alltrails/...` unless noted. Endpoints and response shapes are
transcribed from `src/tools/*.ts` / `src/client.ts` / `CLAUDE.md` in
`alltrails-mcp` (live-verified there); no shape here was guessed.

---

## 1. Trail detail

`detail` is `basic` | `medium` (default) | `offline` (adds route geometry).

```sh
fpx get 'https://www.alltrails.com/api/alltrails/v3/trails/10236086?detail=medium' -p alltrails "${H[@]}" \
  | jq '.trails[0] | {id: .objectID, name, overview, length, elevation_gain, difficulty_rating, avg_rating, routeType: .routeType.name, location}'
```

The envelope is `{ "trails": [ {...} ] }` — a one-element array in practice.

## 2. Trail reviews

```sh
cat > /tmp/at_reviews.json <<'JSON'
{"limit": 20}
JSON
fpx post-json 'https://www.alltrails.com/api/alltrails/v2/trails/10236086/reviews/search' @/tmp/at_reviews.json -p alltrails "${H[@]}" \
  | jq '.trail_reviews[] | {user: .user.name, rating, comment}'
```

Envelope: `{ "trail_reviews": [...] }`.

## 3. Trail photos

```sh
fpx get 'https://www.alltrails.com/api/alltrails/v2/trails/10236086/photos' -p alltrails "${H[@]}" \
  | jq --arg key "$AT_KEY" '.photos[] | {
      id, title, likeCount,
      user: ((.user.firstName // "") + " " + (.user.lastName // "")),
      uploadedAt: .metadata.created,
      url: ("https://www.alltrails.com/api/alltrails/photos/" + (.id|tostring) + "/image?size=large&key=" + $key)
    }'
```

Envelope: `{ "photos": [...] }`. The record carries **no direct image URL** —
`GET /api/alltrails/photos/{id}/image?size=large&key=<x-at-key>` 302s to the
CDN original and is **not** DataDome-walled (fetchable directly, no bridge
needed, if you just want the bytes).

## 4. Trail weather

```sh
fpx get 'https://www.alltrails.com/api/alltrails/weather-service/v2/trails/10236086/overview' -p alltrails "${H[@]}" | jq .
```

## 5. Trail route geometry (for GPX / mapping)

```sh
fpx get 'https://www.alltrails.com/api/alltrails/v3/trails/10236086?detail=offline' -p alltrails "${H[@]}" \
  | jq '.trails[0].defaultMap.routes[0].lineSegments[0]'
```

`pointsData` is 2-dim `(lat, lng) × 1e5`; `indexedElevationData` is 2-dim
`(pointIndex × 100, elevationMeters × 1e5)`, one pair per point — decode both
by dividing by `1e5` (elevation index by `100`). alltrails-mcp's
`alltrails_get_trail_gpx` does this decode + emits GPX 1.1 in
`src/gpx.ts`/`decodePolyline` — reproducing that Google-polyline-variant
decoder in shell is impractical, so this skill stops at the raw geometry;
reach for the MCP tool (or port `decodePolyline`) if you need actual GPX XML.

## 6. Your profile / user id

```sh
fpx get 'https://www.alltrails.com/ap

skill-card.md

## Description:

Helps agents query AllTrails trails, reviews, photos, weather, and signed-in account activity using one-shot fpx commands through a browser tab without an MCP server.

This skill is ready for commercial/non-commercial use.

## Publisher:

[chrischall](https://clawhub.ai/user/chrischall)

### License/Terms of Use:

MIT-0

## Use Case:

Developers and other AllTrails users use this skill to retrieve trail information and, with a signed-in browser session, their saved lists, completed trails, and activity feed from a shell without running an MCP server.

### Deployment Geography for Use:

Global

## Known Risks and Mitigations:

Risk: Browser-mediated requests may expose personal AllTrails activity and captured request headers in shared logs or scripts.

Mitigation: Review account-scoped commands and avoid sharing logs or scripts containing captured headers or personal AllTrails data.

## Reference(s):

- [AllTrails endpoint examples](references/endpoints.md)
- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)
- [ClawHub skill listing](https://clawhub.ai/chrischall/skills/alltrails-fpx)

## Skill Output:

**Output Type(s):** [Shell commands, Guidance]

**Output Format:** [Markdown with shell commands]

**Output Parameters:** [1D]

**Other Properties Related to Output:** [Read-only requests; account-specific results require a signed-in AllTrails browser tab.]

## Skill Version(s):

3.1.8 (source: ClawHub release metadata)

## Ethical Considerations:

Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
Github ReposUpdated 16h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/chrischall/skills/alltrails-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/skills/alltrails-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:27:56.493Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:27:56.493Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.5K downloads",
      "href": "https://clawhub.ai/chrischall/alltrails-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/alltrails-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:27:56.493Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "3.1.8",
      "href": "https://clawhub.ai/chrischall/alltrails-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/alltrails-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:23:01.723Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-alltrails-fpx/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 3.1.8",
      "description": "- Removed the skill-card.md file. - No changes to core functionality or usage; documentation and setup remain the same.",
      "href": "https://clawhub.ai/chrischall/alltrails-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/alltrails-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:23:01.723Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to alltrails-fpx and adjacent AI workflows.