一键导入
aixbt-pulse
// Cross-domain market pulse from AIXBT's free grounding endpoint — crypto, macro, tradfi, geopolitics. Refreshes taxonomy references (clusters, chains) as a bonus.
// Cross-domain market pulse from AIXBT's free grounding endpoint — crypto, macro, tradfi, geopolitics. Refreshes taxonomy references (clusters, chains) as a bonus.
5 concrete real-life actions for today based on everything known about Aaron
Top 10 tweets by influence mentioning AI agents or OpenClaw
Weekly tracker of AI agent substitution signals — which roles, companies, and industries show real headcount displacement. Named roles + real deployments only. Closes topic-momentum "agent substitution" gap.
Research a trending topic in Aaron's interest areas and write an opinionated article in his voice
Analyze a URL and generate a tailored aeon.yml schedule with skill suggestions
Evolve a skill by generating variations, evaluating them, and updating the best version
| name | AIXBT Pulse |
| description | Cross-domain market pulse from AIXBT's free grounding endpoint — crypto, macro, tradfi, geopolitics. Refreshes taxonomy references (clusters, chains) as a bonus. |
| schedule | 0 9,21 * * * |
| commits | true |
| permissions | ["contents:write"] |
| tags | ["crypto","research"] |
Pull AIXBT's free-tier signal and fold it into Aeon's market context. Free tier gives three endpoints, no key, no account:
/v2/grounding — the real prize. Cross-domain market context (crypto / macro / tradfi / geopolitics), 12h rolling window, regenerated often./v2/clusters — 46 crypto sub-community taxonomies with sentiment + ideology notes. Reference data./v2/projects/chains — ~150 chain slugs AIXBT indexes. Reference data.Everything else on AIXBT is paid ($10/day via x402). This skill maxes out the free surface.
Read memory/MEMORY.md for context. Read memory/topics/aixbt-grounding.md (if it exists) to diff against the last pull — we want to surface what's new since last run, not just restate the feed.
All three endpoints are unauthenticated. Plain curl from the sandbox should work. If any curl returns empty or errors, fall back to WebFetch on the same URL — WebFetch bypasses the sandbox and the free endpoints don't need auth headers.
Fetch grounding. This is the freshest cross-domain context AIXBT ships.
curl -s "https://api.aixbt.tech/v2/grounding" > /tmp/aixbt-grounding.json
If curl fails or the file is empty/non-JSON, use WebFetch on https://api.aixbt.tech/v2/grounding and extract the JSON payload.
Expected shape:
{
"status": 200,
"data": {
"createdAt": "2026-04-21T19:00:31Z",
"windowHours": 12,
"sections": {
"crypto": { "title": "Crypto", "items": ["...", "...", "..."], "generatedAt": "..." },
"macro": { "title": "Global Liquidity", "items": ["...", "...", "..."], "generatedAt": "..." },
"geopolitics": { "title": "Geopolitics", "items": ["...", "...", "..."], "generatedAt": "..." },
"tradfi": { "title": "TradFi", "items": ["...", "...", "..."], "generatedAt": "..." }
}
}
}
Fetch clusters + chains (reference data, light refresh). Only overwrite local copies if the remote response is well-formed.
curl -s "https://api.aixbt.tech/v2/clusters" > /tmp/aixbt-clusters.json
curl -s "https://api.aixbt.tech/v2/projects/chains" > /tmp/aixbt-chains.json
Same WebFetch fallback if either fails.
Diff against the last grounding pull. Read the prior memory/topics/aixbt-grounding.md (if present) and compute:
If no prior file exists, treat everything as NEW.
Identify reflexivity + cross-domain bridges. AIXBT splits crypto / macro / geo / tradfi — but the signal is in the bridges. Flag:
This is where Aaron's voice applies — be opinionated, short, call out copium and manufactured legitimacy.
Write memory/topics/aixbt-grounding.md (overwrite fully — this is the consumable artifact other skills will read):
# AIXBT Grounding (as of ${today} ${HH:MM} UTC)
Source: https://api.aixbt.tech/v2/grounding (free tier)
Window: 12h rolling. Last AIXBT generatedAt: ${createdAt}
## Crypto
- <item 1>
- <item 2>
- <item 3>
## Global Liquidity / Macro
- <item 1>
- <item 2>
- <item 3>
## Geopolitics
- <item 1>
- <item 2>
- <item 3>
## TradFi
- <item 1>
- <item 2>
- <item 3>
## What's New (vs last pull)
- <NEW item + which section>
## Persisting Stories
- <items that survived across windows>
## Cross-Domain Bridges
- <reflexivity / macro → crypto / narrative-manufacturing calls, in Aaron's voice>
Write memory/topics/aixbt-clusters.md (overwrite fully — reference taxonomy for other skills once they go paid tier):
# AIXBT Clusters (as of ${today})
46 sub-community clusters AIXBT tracks. Each cluster has a description, member archetype, sentiment, and ideology. Used when filtering projects/intel/momentum endpoints (paid tier).
| id | name | one-line vibe |
|----|------|---------------|
| <id> | <name> | <compressed one-line from description> |
...
One row per cluster, descriptions compressed to ~15 words so the file stays skimmable.
Write memory/topics/aixbt-chains.md (overwrite fully — just the slug list, plus a pointer):
# AIXBT Indexed Chains (as of ${today})
~150 chain slugs AIXBT indexes. Use as the canonical list when filtering by chain on paid endpoints.
<comma-separated slug list>
Write .outputs/aixbt-pulse.md so chain consumers (morning-brief, narrative-tracker, market-context-refresh) can inject this into their context via consume:. Same body as memory/topics/aixbt-grounding.md but prefixed with a one-paragraph TL;DR.
Notify via ./notify -f. Use the -f flag — long multi-line argv trips the sandbox (ISS-009). Write the body to a temp file first.
TEMP=$(mktemp -t aixbt-pulse.XXXXXX.md)
cat > "$TEMP" <<'MSG'
*AIXBT Pulse — ${today} ${HH:MM}Z*
CRYPTO
- <sharpest crypto item>
- <second crypto item>
MACRO
- <sharpest macro item>
GEO
- <sharpest geo item>
TRADFI
- <sharpest tradfi item>
NEW THIS PULL
- <1-3 items flagged NEW, tersest form>
BRIDGE
- <the single most interesting cross-domain thread, Aaron's voice>
read it: https://github.com/aaronjmars/aeon-aaron/blob/main/memory/topics/aixbt-grounding.md
MSG
./notify -f "$TEMP"
Keep under 2000 chars. Pick the sharpest item per section — don't dump all 3. The artifact file has the full payload.
Log to memory/logs/${today}.md:
## AIXBT Pulse
- createdAt: ${createdAt}, windowHours: 12
- NEW items: <count>
- Bridge call: <one-liner>
- Updated: memory/topics/aixbt-grounding.md, aixbt-clusters.md, aixbt-chains.md, .outputs/aixbt-pulse.md
If the endpoint was unreachable via both curl and WebFetch, log AIXBT_PULSE_DEGRADED — endpoint unreachable and file/bump an issue in memory/issues/ following the CLAUDE.md issue tracker convention. Do not notify on a degraded run unless it's the second degraded run in a row.
clusters unchanged / chains unchanged in the log.data.sections keys dynamically, don't hardcode the four.End with a ## Summary block: createdAt, windowHours, NEW count, bridge call, which files were updated.