Search public Bluesky posts and read public account feeds through the no-login Bluesky AppView API, tuned for New Zealand situational awareness: keyword and phrase search with recency sort, author feeds for official NZ accounts, and machine-readable post output. Use when the task involves scanning public social media for emerging NZ events, weather or hazard impacts, community reports, or monitoring a public Bluesky account. Read-only; no authentication required.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add thecolab-ai/.skills --skill bluesky-nz --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bluesky Nz?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/thecolab-ai-bluesky-nz)More formats (shields.io, HTML) on the badges page.
---
name: bluesky-nz
description: "Search public Bluesky posts and read public account feeds through the no-login Bluesky AppView API, tuned for New Zealand situational awareness: keyword and phrase search with recency sort, author feeds for official NZ accounts, and machine-readable post output. Use when the task involves scanning public social media for emerging NZ events, weather or hazard impacts, community reports, or monitoring a public Bluesky account. Read-only; no authentication required."
license: MIT
compatibility: "Requires Python 3.10+ and network access for live data"
metadata:
thecolab.category: "emergency"
thecolab.source_owner: "Bluesky Social (public AppView)"
thecolab.source_type: "community"
thecolab.auth: "none"
thecolab.access_mode: "public-api"
thecolab.data_class: "public"
thecolab.writes: "false"
thecolab.browser: "false"
thecolab.risk: "low"
thecolab.cache_ttl: "24h"
thecolab.schema_version: "1"
thecolab.skill_type: "public-api"
thecolab.pack: "nz-public-data"
thecolab.source_url: "https://api.bsky.app/xrpc/app.bsky.feed.searchPosts"
thecolab.allowed_domains: "api.bsky.app,bsky.app"
thecolab.last_verified: "2026-07-22"
thecolab.health: "healthy"
thecolab.maintainer: "@adam91holt"
---
# Bluesky NZ
## Goal
Search public Bluesky posts and read public account feeds through the keyless
AppView API — a public social signal channel for detecting emerging NZ events
(weather impacts, outages, community reports) and monitoring official accounts.
## Use this when
- A task needs to scan public social media for emerging NZ incident reports
- A task needs recent public posts from a specific Bluesky account
- A workflow needs machine-readable public post data with engagement counts
## Do not use this for
- Posting, liking, following, DMs, or anything requiring a session
- Private/protected content (only public posts are visible)
- Treating crowd posts as verified fact — corroborate against official sources
## Commands
```bash
python3 skills/bluesky-nz/scripts/cli.py search "wellington south coast waves" --limit 20 --json
python3 skills/bluesky-nz/scripts/cli.py search "state of emergency" --since 2026-07-21 --lang en
python3 skills/bluesky-nz/scripts/cli.py feed metservice.com --limit 10
python3 skills/bluesky-nz/scripts/cli.py profile some-account.bsky.social
```
- `search QUERY [--sort latest|top] [--since ISO] [--lang CODE] [--limit N] [--json]` — public post search
- `feed HANDLE [--limit N] [--json]` — recent public posts from one account (replies excluded)
- `profile HANDLE [--json]` — public profile summary
## Notes
- **Craft NZ-specific queries.** Generic terms collide with overseas places —
"wellington weather" surfaces Wellington, Ohio. Add NZ anchors: suburb names,
"NZ", "Aotearoa", agency names.
- **Verify handles before trusting an account.** Handles are self-registered:
`metservice.bsky.social` is a band, not the weather service. Run `profile`
and check the description/domain handle. A handle on the organisation's own
domain, such as `metservice.com`, is domain-verified.
- Crowd posts are unverified by definition; the JSON output carries this warning.
- Timestamps are UTC as published. Post URLs link to the public web app.
## Resources
- CLI entrypoint: `scripts/cli.py`
- Contract test: `scripts/test_contract.py`; smoke test: `scripts/smoke_test.py`
- Endpoint behaviour and rate-limit notes: `references/source-notes.md`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!