Nooks: Places worth revisiting
v1.0.1Personal place intelligence — save and find cafes, coworking spaces, libraries, restaurants, and other spots worth revisiting. Stores one markdown file per p...
Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
📍 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
- Search the web (name + city/area) — pre-fill Type, Price, Vibe, and Features from what's publicly known.
- Fetch the Maps link (optional — silent skip if unavailable):
- If the
find_locationtool is in your tool list, call it with<name>, <city>and use themaps_urlit returns. - Otherwise if
google_places_api_keyis set inmind/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.
- If the
- Show what you found: "Found Sightglass — specialty coffee roaster in SoMa SF, $$. Wifi confirmed, communal tables, no time limit."
- 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
- if
mind/nooks/nooksconfig.ymlhaveimages: yessearch 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
#featuresor 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
- Go to console.cloud.google.com → New Project (e.g.
nooks) - APIs & Services → Enable APIs and Services → search Places API (New) → Enable
- APIs & Services → Credentials → Create Credentials → API Key
- Restrict the key: click it → API restrictions → select Places API (New) only
- Add a billing account (card required by Google, but ID-only searches are free)
- 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
Comments
Loading comments...
