homes-fpx
Query homes.com (US real-estate portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the homes-mcp server — search listings, resolve street addresses, fetch property detail/photos/ history, and read the signed-in user's saved homes, all through a one-shot call over their own signed-in browser tab. Use when you want homes.com data without the MCP, in a script, or on a machine where the MCP isn't installed.
Rank
62
Safety
84
Downloads
1.5k
Updated
Oct 10, 2026
Version
2.1.10
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
- 2.1.10release · observed Oct 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:homes-fpx- Install using `clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:homes-fpx` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/chrischall/homes-fpx before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-homes-fpx/snapshot"
Documentation
CLAWHUB
147,479 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
---
name: homes-fpx
description: >-
Query homes.com (US real-estate portal) from a shell with the fpx CLI
(@fetchproxy/cli) instead of running the homes-mcp server — search
listings, resolve street addresses, fetch property detail/photos/
history, and read the signed-in user's saved homes, all through a
one-shot call over their own signed-in browser tab. Use when you want
homes.com data without the MCP, in a script, or on a machine where the
MCP isn't installed.
---
# homes.com via fpx (no MCP)
homes.com is a fully server-rendered site with **no public JSON API**
and gates traffic through **AWS WAF at the session level** — every
request, not just login, needs to ride a real browser session. `fpx`
routes each call through the user's own signed-in `www.homes.com` tab
(the ContextMint Bridge extension), which has already cleared the WAF
challenge, so the same fetch a Node process gets 403'd on succeeds.
This is "Pattern A" (every call rides the bridge) — there's no
bootstrap-once/direct-fetch shortcut like some sibling portals get.
Almost every page is HTML with one embedded Schema.org
`<script type="application/ld+json">` block carrying the structured
data (search results, property detail). One endpoint — the address
typeahead — is a real JSON API. Everything else this skill covers is
DOM scraping over specific, verified sections of the same pages the
`homes_*` MCP tools parse.
## One-time setup
```sh
npm install -g @fetchproxy/cli # provides `fpx`
fpx profile add homes --domain homes.com
fpx pair -p homes # prints a pair code → approve in ContextMint Bridge
```
Requirements: the **ContextMint Bridge** browser extension installed
(from its [releases](https://github.com/nullnet-app/contextmint-bridge/releases) — Chrome: load the zip unpacked;
Safari: not available yet (will ship inside the ContextMint app) — use Chrome for now;
it is the renamed fetchproxy extension from the same maintainer — verify a
release zip with `shasum -a 256 -c <zip>.sha256` or build from source), with an
open `www.homes.com` tab (signed in — required for the saved-homes/
saved-searches tools below, and helps every other page render the way
the extractors expect), and its Chrome **Site access** allowing
`homes.com`. Pairing persists after the first approval.
## Core call pattern
Always pass the **full URL** (fpx has no base-URL concept of its own):
```sh
fpx get 'https://www.homes.com/<path>' -p homes
```
Most responses are HTML — pull the JSON-LD block out with `node`, then
project with `jq`. homes.com HTML-entity-encodes the script tag's
`type` attribute (`application/ld+json`), so match loosely:
```sh
fpx get 'https://www.homes.com/atlanta-ga/' -p homes > /tmp/page.html
node -e '
const html = require("fs").readFileSync("/tmp/page.html", "utf8");
const m = html.match(/<script type="application\/ld(?:\+|+)json">([\s\S]*?)<\/script>/);
if (!m) { console.error("no JSON-LD found"); process.exit(1); }
process._meta.json
{
"ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
"slug": "homes-fpx",
"version": "2.1.10",
"publishedAt": 1791588270735
}references/homes-requests.md
# homes.com request recipes
Every path below is relative to `https://www.homes.com` — `fpx` needs
the full URL. All shapes are transcribed from `homes-mcp`'s
`src/tools/*.ts` (live-verified there); nothing here is guessed.
A shared helper — save once, source before the recipes that need it:
```sh
cat > /tmp/homes-jsonld.js <<'EOF'
// Usage: node /tmp/homes-jsonld.js <html-file>
// Prints the parsed JSON-LD document (the `{ "@context", "@graph" }`
// envelope, or a synthetic one-element graph if the page emits a bare
// root node) as JSON to stdout.
const fs = require('fs');
const html = fs.readFileSync(process.argv[2], 'utf8');
// homes.com HTML-entity-encodes the `+` in the script `type` attribute
// (`application/ld+json`) — match both forms.
const m = html.match(/<script type="application\/ld(?:\+|+)json">([\s\S]*?)<\/script>/);
if (!m) { console.error('no JSON-LD block found'); process.exit(1); }
const doc = JSON.parse(m[1].trim());
if (!doc['@graph'] && doc['@type']) {
console.log(JSON.stringify({ '@context': doc['@context'], '@graph': [doc] }));
} else {
console.log(JSON.stringify(doc));
}
EOF
```
```sh
# fetch + extract in one step
fetch_jsonld() { # $1 = full URL
fpx get "$1" -p homes > /tmp/homes-page.html
node /tmp/homes-jsonld.js /tmp/homes-page.html
}
```
---
## 1. Search listings
`GET /<location-slug>/[<facet-segment>/[newest/]]?price-min=<n>&price-max=<n>`
Path facets (verified live; everything except the price band is
path-based — query strings for facets other than price are stripped at
the edge):
| Filter | Path segment |
| --- | --- |
| `for_sale` + `single_family` | `/<slug>/houses-for-sale/` |
| `condo` | `/<slug>/condos-for-sale/` |
| `townhouse` | `/<slug>/townhouses-for-sale/` |
| `land` | `/<slug>/land-for-sale/` |
| `mobile` | `/<slug>/mobile-homes-for-sale/` |
| `multi_family` | `/<slug>/multi-family-for-sale/` |
| `sold` | `/<slug>/sold/` |
| `for_rent` (untyped) | `/<slug>/homes-for-rent/` |
| `for_rent` + house/condo/townhouse | `/<slug>/<type>-for-rent/` |
| `open_houses` | `/<slug>/open-houses/` |
| `new_construction` | `/new-homes/for-sale/<slug>/` (own URL root) |
| sort `newest` | append `newest/` after the facet segment |
| price band (the ONE query-string facet) | append `?price-min=<n>&price-max=<n>` (either optional, integer USD) |
`<slug>` is the free-text location lowercased/slugified (e.g.
`"Atlanta, GA"` → `atlanta-ga`, a ZIP passes through as-is).
```sh
fetch_jsonld 'https://www.homes.com/atlanta-ga/houses-for-sale/?price-min=300000&price-max=500000' > /tmp/jsonld.json
jq -r '
.["@graph"][] | select(.["@type"] == "CollectionPage")
| .mainEntity.itemListElement[]
| [ (.url // .["@id"]),
.mainEntity.address.streetAddress,
.offers.price,
.mainEntity.numberOfBedrooms,
.mainEntity.numberOfBathroomsTotal,
.mainEntity.floorSize.value
] | @tsv
' /tmp/jsonld.json
```
Property id = last non-empty path segment of `url` (strip `?query` /
`#fragmenskill-card.md
## Description: Guides agents in retrieving homes.com listings, property details, and signed-in saved homes or searches through a paired browser session using fpx. 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 agents use this skill to search US real-estate listings, resolve addresses, inspect property details and history, and access a signed-in user's saved homes or searches without the homes-mcp server. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: Accessing saved homes or searches can expose private account-specific real-estate interests. Mitigation: Confirm the user wants this access before running saved-data recipes, and avoid retaining or sharing fetched HTML or JSON unnecessarily. Risk: Address resolution can return a nearby property rather than an exact match. Mitigation: Check the resolved property's street address against the requested address before using its details. ## Reference(s): - [homes-fpx release on ClawHub](https://clawhub.ai/chrischall/skills/homes-fpx) - [homes.com request recipes](artifact/references/homes-requests.md) - [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases) ## Skill Output: **Output Type(s):** [Shell commands, Code, Guidance] **Output Format:** [Markdown with shell, JavaScript, and jq examples] **Output Parameters:** [1D] **Other Properties Related to Output:** [Offers recipes for public listing data and signed-in saved homes or searches; results depend on the paired browser session.] ## Skill Version(s): 2.1.10 (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.
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!
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
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
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/homes-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/skills/homes-fpx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:01:48.217Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-homes-fpx/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-homes-fpx/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T09:01:48.217Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/chrischall/homes-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/homes-fpx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:01:48.217Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "2.1.10",
"href": "https://clawhub.ai/chrischall/homes-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/homes-fpx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:24:30.735Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-homes-fpx/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-homes-fpx/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 2.1.10",
"description": "- Removed the sample skill card file (skill-card.md) from the repository. - No changes to functionality or documentation apart from the file removal.",
"href": "https://clawhub.ai/chrischall/homes-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/homes-fpx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:24:30.735Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
