agentCLAWHUBUnverified

hemnet-fpx

Query hemnet.se (Swedish property portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the hemnet-mcp server — resolve locations, search for-sale and sold listings, and read listing detail via one-shot GraphQL calls through a signed-in browser tab. Use when you want Hemnet data without the MCP, in a script, or on a machine where the MCP isn't installed.

OpenClaw

Rank

62

Safety

84

Downloads

1.5k

Updated

Oct 10, 2026

Version

1.1.11

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
1.1.11release · observed Oct 9, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:hemnet-fpx
  1. Install using `clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:hemnet-fpx` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/chrischall/hemnet-fpx before using production credentials.

Contract: missing

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

Documentation

CLAWHUB

114,745 characters of source documentation, loaded on request.

Extracted files

4 files captured from the source.

SKILL.md

---
name: hemnet-fpx
description: >-
  Query hemnet.se (Swedish property portal) from a shell with the fpx CLI
  (@fetchproxy/cli) instead of running the hemnet-mcp server — resolve
  locations, search for-sale and sold listings, and read listing detail via
  one-shot GraphQL calls through a signed-in browser tab. Use when you want
  Hemnet data without the MCP, in a script, or on a machine where the MCP
  isn't installed.
---

# Hemnet via fpx (no MCP)

Hemnet fronts `www.hemnet.se` — including `/graphql` — with a Cloudflare
managed challenge that 403s any plain `curl`/Node request. `fpx` routes the
request through the user's own signed-in browser tab (the ContextMint Bridge
extension), which has already cleared the challenge, so the same anonymous
GraphQL query succeeds. No Hemnet login is needed — just a normal open tab.

This is the same data the `hemnet_*` MCP tools return (money in **SEK**
strings, areas in **m²**), reached with one CLI call instead of a running
server.

## One-time setup

```sh
npm install -g @fetchproxy/cli            # provides `fpx`
fpx profile add hemnet --domain hemnet.se # only the fetch capability is needed
fpx pair -p hemnet                        # 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 chrome zip unpacked; Safari isn't available yet, so use
Chrome for now), with an open
`www.hemnet.se` tab, and its Chrome **Site access** allowing `hemnet.se`.
Pairing persists — after the first approval every later `fpx` call reuses it.
ContextMint Bridge is the renamed fetchproxy extension (same maintainer; source at https://github.com/nullnet-app/contextmint-bridge — verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`).

## Core call

Every query is a POST of `{"query": "...", "variables": {...}}` to the
GraphQL endpoint. Send the body raw (no `--json`) so stdout is the GraphQL
JSON, ready for `jq`:

```sh
fpx post-json 'https://www.hemnet.se/graphql' @query.json -p hemnet \
  | jq '.data'
```

`@file` reads the body from a file; a literal `'{...}'` string works too but
shell-quoting the embedded query is fiddly — prefer a heredoc into a file.

Ready-to-run query bodies (autocomplete, for-sale search, listing detail,
sold search) with jq recipes are in `references/graphql-queries.md`. Exhaustive
field lists live in the repo at `src/graphql.ts` — the operations here are
compact, live-verified subsets.

## The one rule: resolve the location first

Hemnet searches take numeric **location ids**, never place names. Always
autocomplete first, take the `locationId`, then search:

```sh
printf '{"query":"query($q:String!,$l:Int!){autocompleteLocations(query:$q,limit:$l){hits{locationId fullName parentFullName}}}","variables":{"q":"Höllviken","l":3}}' > /tmp/q.json
fpx post-json 'https://www.hemnet.se/graphql' @/tmp

_meta.json

{
  "ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
  "slug": "hemnet-fpx",
  "version": "1.1.11",
  "publishedAt": 1791588386737
}

references/graphql-queries.md

# Hemnet GraphQL queries for fpx

Ready-to-run bodies for `fpx post-json 'https://www.hemnet.se/graphql' @file -p hemnet`.
Each block is the full POST body (`{"query","variables"}`). All field names
and input shapes are live-verified; the exhaustive field selections live in
the repo at `src/graphql.ts` (these are compact subsets).

Endpoint: `https://www.hemnet.se/graphql` · Method: POST · anonymous.

Write the body to a file (heredoc avoids shell-quoting the GraphQL string),
then send it:

```sh
cat > /tmp/hq.json <<'JSON'
{ "query": "…", "variables": { … } }
JSON
fpx post-json 'https://www.hemnet.se/graphql' @/tmp/hq.json -p hemnet | jq '.data'
```

Always check for GraphQL errors: `jq '.errors // empty'` (an errors array can
ride in an HTTP-200 body).

---

## 1. Resolve a location → locationId (do this first)

`variables.query` is free text; `limit` is required (`Int!`).

```json
{
  "query": "query Autocomplete($query: String!, $limit: Int!) { autocompleteLocations(query: $query, limit: $limit) { hits { locationId fullName parentFullName } } }",
  "variables": { "query": "Höllviken", "limit": 5 }
}
```

```sh
jq -r '.data.autocompleteLocations.hits[] | "\(.locationId)\t\(.fullName) — \(.parentFullName)"'
```

## 2. Search for-sale listings

`search.locationIds` is an array of strings (from step 1). Optional filters:
`priceMin`/`priceMax` (SEK), `roomsMin`/`roomsMax`, `livingAreaMin`/`livingAreaMax`
(m²), `keywords` (string), `housingFormGroups` (array of `HOUSES`, `APARTMENTS`,
`ROW_HOUSES`, `VACATION_HOMES`, `PLOTS`, `OTHERS`). `limit` is required; `sort`
is `NEWEST` or `OLDEST`.

```json
{
  "query": "query Search($search: ListingSearchForSaleInput!, $limit: Int!, $sort: ListingSearchForSaleSorting) { searchForSaleListings(search: $search, limit: $limit, sort: $sort) { total listings { id streetAddress area numberOfRooms livingArea listingHemnetUrl askingPrice { amount formatted } fee { formatted } squareMeterPrice { formatted } } } }",
  "variables": {
    "search": { "locationIds": ["898675"], "housingFormGroups": ["HOUSES"], "priceMax": 10000000 },
    "limit": 10,
    "sort": "NEWEST"
  }
}
```

```sh
jq -r '.data.searchForSaleListings | "total=\(.total)", (.listings[] | "\(.id)\t\(.askingPrice.formatted)\t\(.streetAddress)")'
```

## 3. Listing detail by id

`id` from a search card (`ID!`); `photoLimit` required (`Int!`). `listing`
returns the `PropertyListing` interface — the detail fields sit behind the
`... on ActivePropertyListing` fragment. A non-active id yields
`__typename` ≠ `ActivePropertyListing` (use the sold query in §5 instead).

```json
{
  "query": "query GetListing($id: ID!, $photoLimit: Int!) { listing(id: $id) { __typename ... on ActivePropertyListing { streetAddress area numberOfRooms livingArea legacyConstructionYear description listingHemnetUrl askingPrice { formatted } fee { formatted } runningCosts { formatted } squareMeterPrice { formatted } tenure { name } energyClassification { classification } broker { name 

skill-card.md

## Description:

Guides agents to query public Hemnet property listings and sold prices through a user-approved browser bridge and the fpx CLI.

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 resolve Swedish locations, search public for-sale and sold listings, and inspect property details without running an MCP server.

### Deployment Geography for Use:

Global

## Known Risks and Mitigations:

Risk: Installing an untrusted CLI or browser extension may expose browser activity.

Mitigation: Confirm you trust @fetchproxy/cli and ContextMint Bridge before installing; verify the extension release checksum.

Risk: Broad site access or persistent pairing can allow unintended future browser requests.

Mitigation: Limit browser site access to hemnet.se and remove the pairing when no longer needed.

Risk: A successful request may still contain GraphQL errors or too few sold listings for reliable comparisons.

Mitigation: Check the response for errors and the sold-listing count before using price summaries.

## Reference(s):

- [Hemnet GraphQL query examples](references/graphql-queries.md)
- [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases)
- [ClawHub skill release](https://clawhub.ai/chrischall/skills/hemnet-fpx)

## Skill Output:

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

**Output Format:** [Markdown instructions and GraphQL JSON responses]

**Output Parameters:** [1D]

**Other Properties Related to Output:** [Public Hemnet data only; prices in SEK and areas in m².]

## Skill Version(s):

1.1.11 (source: server-resolved ClawHub release)

## 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/hemnet-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/skills/hemnet-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:43:13.291Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:43:13.291Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.5K downloads",
      "href": "https://clawhub.ai/chrischall/hemnet-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/hemnet-fpx",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T09:43:13.291Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.1.11",
      "href": "https://clawhub.ai/chrischall/hemnet-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/hemnet-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:26:26.737Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.1.11",
      "description": "- Removed the file skill-card.md. - No user-facing changes; documentation and usage remain the same.",
      "href": "https://clawhub.ai/chrischall/hemnet-fpx",
      "sourceUrl": "https://clawhub.ai/chrischall/hemnet-fpx",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-10-09T23:26:26.737Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to hemnet-fpx and adjacent AI workflows.