Nooks: Places worth revisiting

Data & APIs

Personal place intelligence — save and find cafes, coworking spaces, libraries, restaurants, and other spots worth revisiting. Stores one markdown file per place in nooks/<city>/. Use when saving a new place, looking up a spot, or asking "where should I work/eat/meet in [city]?".

Install

openclaw skills install nooks

📍 Nooks — local place intelligence

Data

Base path is relative to workspace root or document root. On first use, create it: mkdir -p mind/nooks/. Nooks uses a mind/nooks/ folder in your workspace.

Files live in mind/nooks/<city>/. City folders use short lowercase slugs: hk, sf, sg, london, bkk. Create on first use: mkdir -p mind/nooks/<city>/.

mind/
└── nooks/
    ├── nooksconfig.yml   ← config file, make one if it is not there yet
    ├── hk/
    │   ├── blue-bottle-central.md
    │   └── amber-lan-kwai-fong.md
    └── sf/
        └── sightglass-soma.md

File names: <place-slug>.md. Include neighborhood when the same place has multiple locations: blue-bottle-central.md vs blue-bottle-admiralty.md.


Place File

# Place Name

Type: cafe / coworking / library / park / restaurant / bar / museum / church / etc.
Area: station/neighborhood
Maps: https://maps.app.goo.gl/...
Price: $ / $$ / $$$ / $$$$
Image: `../assets/slug-that-make-sense` only if adding an image.
Vibe: quiet / moderate / buzzy
Good for: focus, calls, client meetings, leisure
Features: #wifi #charging #outdoor #healthy-food #coffee #24h #ac #3dprinter

## Notes

4 Apr 2026: upper floor is quieter, fills up fast after 10am

Field guidance:

Maps: if a Google Places API key is configured, fetch automatically (see Google Places API). Otherwise paste the share link from Google Maps mobile (maps.app.goo.gl/...) or leave blank. Good for: your standing assessment of what this place suits. Comma-separated. Update if your opinion changes. Notes: dated personal log. Observations, tips, surprises, things that shift over time. Format: 4 Apr 2026: ... Features: use standard tags so grep works: #wifi #charging #outdoor #food #coffee #quiet #24h #reservations #alcohol #coworking

Good for vs Notes — the distinction: Good for is the verdict; Notes is the evidence. One is a label, the other is a log.


Saving a Place

  1. Search the web (name + city/area) — pre-fill Type, Price, Vibe, and Features from what's publicly known.
  2. Fetch the Maps link (optional — silent skip if unavailable):
    • If the find_location tool is in your tool list, call it with <name>, <city> and use the maps_url it returns.
    • Otherwise if google_places_api_key is set in mind/nooks/nooksconfig.yml, call Places API Text Search yourself (IDs only, free):
      POST https://places.googleapis.com/v1/places:searchText
      Headers: X-Goog-Api-Key: <key>, X-Goog-FieldMask: places.id
      Body: { "textQuery": "<place name>, <city>" }
      → https://www.google.com/maps/place/?q=place_id:<id>
      
    • Otherwise leave the Maps field blank and don't mention it. Do not ask the human to install a key or paste a share link.
  3. Show what you found: "Found Sightglass — specialty coffee roaster in SoMa SF, $$. Wifi confirmed, communal tables, no time limit."
  4. Ask as a group (skip anything already answered):
    • What's it good for? — focus, calls, meetings, catch-up, date, leisure?
    • Vibe? — quiet / moderate / buzzy (if unclear from search)
    • Features to correct? — confirm or fix what you found
    • Any notes? — first impressions, tips, things to remember
  5. if mind/nooks/nooksconfig.yml have images: yes search for an image of palace interor and add to Image: feild.

Finding Places

Use grep with expanded terms. Search city folder or all of mind/nooks/ cross-city.

# Quiet wifi spots in HK
grep -rl "#quiet" mind/nooks/hk/ | xargs grep -l "#wifi"

# Focus-friendly places in SF
grep -ril "focus\|deep.work\|laptop\|coworking" mind/nooks/sf/

# All cafes across cities
grep -ril "Type:.*cafe" mind/nooks/

# Charging spots anywhere
grep -rl "#charging" mind/nooks/

Always read the full file after grepping — the matched line is a signal, not the full picture.

Keyword expansion — always broaden the query:

  • "work / focus" → focus\|deep.work\|laptop\|coworking\|quiet
  • "meeting / call" → meeting\|client\|calls\|zoom
  • "coffee" → cafe\|coffee\|espresso\|specialty
  • "chill / relax" → leisure\|chill\|relax\|casual\|catch.up

If local results are thin and Haah skill is installed, suggest dispatching to a circle.


Core Behavior

  • User mentions a place → check if a file exists, offer to create or update
  • User asks "where can I work/eat in [city]?" → search mind/nooks/<city>/ first
  • User shares a Maps link → offer to save the place
  • User mentions visiting somewhere in passing → ask if worth saving
  • User adds an observation ("terrible wifi there") → append a dated note to the file

Examples:

  • "Had a great session at Sightglass" → ask if anything worth logging, update if so
  • "We should go back to Amber" → check if saved, offer to create if not
  • "That place had no charging" → update #features or add a note

Save places as they come up naturally. Enrich over time. Don't wait for a data entry session.


Heartbeat or cron

Ask your human if they want to add Nooks: check to HEARTBEAT.md. If there is no HEARTBEAT.md, suggest to create a cron job every 30 minutes to execute Nooks: check.

On every heartbeat, check a random nook file. Surface something worth knowing:

  • "You haven't been to Sightglass in a while — still your go-to for focus in SF?"
  • "Common Ground has no Maps link yet — worth adding?"
  • "Amber only has one note — anything new from your last visit?"

If nothing worth mentioning, skip.


Google Places API (DIY setup — skip if you already have a find_location tool)

If your host runtime provides a built-in find_location tool (managed agents do), nothing to set up — the tool handles it. These instructions are for self-hosted Claude Code / Cursor / etc. users who want Maps links fetched automatically.

The Maps link field can be populated automatically using the Google Places API. It's free for this use case (ID-only lookups have no monthly cap).

Setup

  1. Go to console.cloud.google.comNew Project (e.g. nooks)
  2. APIs & ServicesEnable APIs and Services → search Places API (New) → Enable
  3. APIs & ServicesCredentialsCreate CredentialsAPI Key
  4. Restrict the key: click it → API restrictions → select Places API (New) only
  5. Add a billing account (card required by Google, but ID-only searches are free)
  6. Save the key to mind/nooks/nooksconfig.yml (at the root of your nooks folder):
google_places_api_key: YOUR_KEY_HERE

Once configured, Maps links are fetched automatically when saving a place — no manual copy-paste needed.


Updating

To update this skill to the latest version, fetch the new SKILL.md from GitHub and replace this file:

https://raw.githubusercontent.com/haah-ing/nooks-skill/main/SKILL.md

What NOT to Suggest

  • Syncing with Google Maps saved places — different purpose, keep separate
  • Crowd-sourced ratings or reviews — Nooks is personal signal, not Yelp
  • Opening hours in the file — always goes stale, check Google Maps
  • Automated "you're near X" alerts — too intrusive