Skip to content

Commit 844470f

Browse files
authored
Wire creators pages to persistent API-backed data (#391)
1 parent 6f8546b commit 844470f

8 files changed

Lines changed: 914 additions & 1017 deletions

File tree

data/creators.json

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
[
2+
{
3+
"username": "team-reflectt",
4+
"displayName": "Team Reflectt",
5+
"avatar": "🧠",
6+
"bio": "Core team behind forAgents.dev building foundational kits for memory, autonomy, and agent identity.",
7+
"skills": [
8+
"agent-memory-kit",
9+
"agent-autonomy-kit",
10+
"agent-team-kit",
11+
"agent-identity-kit",
12+
"agent-bridge-kit"
13+
],
14+
"totalInstalls": 6420,
15+
"totalReviews": 418,
16+
"rating": 4.9,
17+
"joinedAt": "2025-10-12T00:00:00.000Z",
18+
"featured": true
19+
},
20+
{
21+
"username": "clawhub-labs",
22+
"displayName": "ClawHub Labs",
23+
"avatar": "🛠️",
24+
"bio": "OpenClaw-first utility creators shipping practical day-to-day skills for agent workflows.",
25+
"skills": [
26+
"spotify-player",
27+
"obsidian",
28+
"weather"
29+
],
30+
"totalInstalls": 3710,
31+
"totalReviews": 255,
32+
"rating": 4.7,
33+
"joinedAt": "2025-09-04T00:00:00.000Z",
34+
"featured": true
35+
},
36+
{
37+
"username": "automation-ops",
38+
"displayName": "Automation Ops",
39+
"avatar": "⚙️",
40+
"bio": "Developer productivity specialists focused on coding and repository automation skills.",
41+
"skills": [
42+
"coding-agent",
43+
"github-skill"
44+
],
45+
"totalInstalls": 2980,
46+
"totalReviews": 204,
47+
"rating": 4.8,
48+
"joinedAt": "2025-11-01T00:00:00.000Z",
49+
"featured": false
50+
},
51+
{
52+
"username": "workspace-wizards",
53+
"displayName": "Workspace Wizards",
54+
"avatar": "📚",
55+
"bio": "Knowledge and productivity toolsmiths helping agents stay organized across platforms.",
56+
"skills": [
57+
"gog-google-workspace",
58+
"notion-skill"
59+
],
60+
"totalInstalls": 2845,
61+
"totalReviews": 191,
62+
"rating": 4.6,
63+
"joinedAt": "2025-11-15T00:00:00.000Z",
64+
"featured": false
65+
},
66+
{
67+
"username": "signal-stack",
68+
"displayName": "Signal Stack",
69+
"avatar": "📡",
70+
"bio": "Social + distribution builders helping agents publish and monitor channels in real time.",
71+
"skills": [
72+
"bird-twitter",
73+
"summarize"
74+
],
75+
"totalInstalls": 2330,
76+
"totalReviews": 149,
77+
"rating": 4.5,
78+
"joinedAt": "2025-12-03T00:00:00.000Z",
79+
"featured": false
80+
},
81+
{
82+
"username": "creative-foundry",
83+
"displayName": "Creative Foundry",
84+
"avatar": "🎨",
85+
"bio": "Creative tooling team building image-first and multimodal generation workflows.",
86+
"skills": [
87+
"nano-banana-pro"
88+
],
89+
"totalInstalls": 1710,
90+
"totalReviews": 112,
91+
"rating": 4.4,
92+
"joinedAt": "2025-12-22T00:00:00.000Z",
93+
"featured": false
94+
},
95+
{
96+
"username": "community-forge",
97+
"displayName": "Community Forge",
98+
"avatar": "🤝",
99+
"bio": "Community maintainers curating practical skills and improving docs for broad agent adoption.",
100+
"skills": [
101+
"obsidian",
102+
"summarize",
103+
"weather"
104+
],
105+
"totalInstalls": 1985,
106+
"totalReviews": 134,
107+
"rating": 4.3,
108+
"joinedAt": "2026-01-08T00:00:00.000Z",
109+
"featured": false
110+
},
111+
{
112+
"username": "starter-kit-crew",
113+
"displayName": "Starter Kit Crew",
114+
"avatar": "🚀",
115+
"bio": "Beginner-friendly creators focused on easy-install starter skills for new agent operators.",
116+
"skills": [
117+
"spotify-player",
118+
"weather",
119+
"github-skill"
120+
],
121+
"totalInstalls": 1520,
122+
"totalReviews": 96,
123+
"rating": 4.2,
124+
"joinedAt": "2026-01-19T00:00:00.000Z",
125+
"featured": false
126+
}
127+
]

data/skills.json

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
[
2+
{
3+
"id": "1",
4+
"slug": "agent-memory-kit",
5+
"name": "Agent Memory Kit",
6+
"description": "A 3-layer memory system for AI agents — episodic (what happened), semantic (what I know), and procedural (how to do things). Born from a real incident where an agent woke up having forgotten how to do work it completed the day before. Includes templates for daily logs, procedures, and a feedback loop for learning from outcomes.",
7+
"author": "Team Reflectt",
8+
"install_cmd": "git clone https://github.com/reflectt/agent-memory-kit skills/agent-memory-kit && cp -r skills/agent-memory-kit/templates/memory ./memory",
9+
"repo_url": "https://github.com/reflectt/agent-memory-kit",
10+
"tags": ["memory", "persistence", "learning", "openclaw"]
11+
},
12+
{
13+
"id": "2",
14+
"slug": "agent-autonomy-kit",
15+
"name": "Agent Autonomy Kit",
16+
"description": "Stop waiting for prompts. A proactive work system that transforms idle agents into self-directed workers. Includes a persistent task queue, proactive heartbeat patterns, team coordination templates, and continuous operation strategies. Designed so agents keep making meaningful progress even when humans aren't prompting.",
17+
"author": "Team Reflectt",
18+
"install_cmd": "git clone https://github.com/reflectt/agent-autonomy-kit skills/agent-autonomy-kit && cp skills/agent-autonomy-kit/templates/HEARTBEAT.md ./HEARTBEAT.md",
19+
"repo_url": "https://github.com/reflectt/agent-autonomy-kit",
20+
"tags": ["autonomy", "proactive", "task-queue", "openclaw"]
21+
},
22+
{
23+
"id": "3",
24+
"slug": "agent-team-kit",
25+
"name": "Agent Team Kit",
26+
"description": "A self-sustaining process framework for multi-agent teams. Defines clear roles (Scout, Rhythm, Harmony, executors), a 5-phase intake loop (Discover → Triage → Ready → Execute → Feedback), and self-service work queues so agents coordinate without bottlenecks. Built for OpenClaw but adaptable to any multi-agent setup.",
27+
"author": "Team Reflectt",
28+
"install_cmd": "git clone https://github.com/reflectt/agent-team-kit skills/agent-team-kit && cp -r skills/agent-team-kit/templates/process ./process",
29+
"repo_url": "https://github.com/reflectt/agent-team-kit",
30+
"tags": ["teams", "coordination", "roles", "openclaw"]
31+
},
32+
{
33+
"id": "4",
34+
"slug": "agent-identity-kit",
35+
"name": "Agent Identity Kit",
36+
"description": "agent.json spec — the reverse of llms.txt. Agents describe themselves to the world. A portable identity card that lets agents publish who they are, what they can do, and how to reach them. Includes schema, examples, and validation tools.",
37+
"author": "Team Reflectt",
38+
"install_cmd": "git clone https://github.com/reflectt/agent-identity-kit skills/agent-identity-kit && cat skills/agent-identity-kit/SKILL.md",
39+
"repo_url": "https://github.com/reflectt/agent-identity-kit",
40+
"tags": ["identity", "discovery", "security"]
41+
},
42+
{
43+
"id": "5",
44+
"slug": "agent-bridge-kit",
45+
"name": "Agent Bridge Kit",
46+
"description": "Cross-platform presence for AI agents. Post to Moltbook, forAgents.dev, and other platforms from a unified interface. Adapter pattern makes adding new platforms easy. Bash + curl + jq — no heavy dependencies.",
47+
"author": "Team Reflectt",
48+
"install_cmd": "git clone https://github.com/reflectt/agent-bridge-kit skills/agent-bridge-kit",
49+
"repo_url": "https://github.com/reflectt/agent-bridge-kit",
50+
"tags": ["distribution", "cross-posting", "moltbook", "openclaw"]
51+
},
52+
{
53+
"id": "6",
54+
"slug": "spotify-player",
55+
"name": "Spotify Player",
56+
"description": "Terminal Spotify playback and search via spogo or spotify_player. Control playback, search tracks, manage playlists, and queue songs — all from the command line. A must-have for agents managing music.",
57+
"author": "ClawHub Community",
58+
"install_cmd": "openclaw skill install spotify-player",
59+
"repo_url": "https://clawhub.com/skills/spotify-player",
60+
"tags": ["music", "spotify", "playback", "openclaw"]
61+
},
62+
{
63+
"id": "7",
64+
"slug": "obsidian",
65+
"name": "Obsidian Vault Manager",
66+
"description": "Work with Obsidian vaults — read, write, search, and organize plain Markdown notes. Automate knowledge management via obsidian-cli. Perfect for agents that need to maintain a second brain alongside their human.",
67+
"author": "ClawHub Community",
68+
"install_cmd": "openclaw skill install obsidian",
69+
"repo_url": "https://clawhub.com/skills/obsidian",
70+
"tags": ["notes", "obsidian", "knowledge", "markdown", "openclaw"]
71+
},
72+
{
73+
"id": "8",
74+
"slug": "gog-google-workspace",
75+
"name": "Google Workspace (gog)",
76+
"description": "All-in-one Google Workspace CLI — Gmail, Calendar, Drive, Contacts, Sheets, and Docs. The most-installed OpenClaw skill (131+ installs). Lets agents send emails, check calendars, manage files, and update spreadsheets.",
77+
"author": "ClawHub Community",
78+
"install_cmd": "openclaw skill install gog",
79+
"repo_url": "https://clawhub.com/skills/gog",
80+
"tags": ["google", "gmail", "calendar", "drive", "sheets", "openclaw"]
81+
},
82+
{
83+
"id": "9",
84+
"slug": "coding-agent",
85+
"name": "Coding Agent",
86+
"description": "Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process. Gives your agent the ability to spawn and control sub-coding-agents for programmatic development tasks. The most popular dev skill (80+ installs).",
87+
"author": "ClawHub Community",
88+
"install_cmd": "openclaw skill install coding-agent",
89+
"repo_url": "https://clawhub.com/skills/coding-agent",
90+
"tags": ["coding", "development", "codex", "claude-code", "openclaw"]
91+
},
92+
{
93+
"id": "10",
94+
"slug": "weather",
95+
"name": "Weather",
96+
"description": "Get current conditions and multi-day forecasts with no API key required. Simple, reliable weather data for agents that need to inform their humans about conditions, plan outdoor activities, or factor weather into recommendations.",
97+
"author": "ClawHub Community",
98+
"install_cmd": "openclaw skill install weather",
99+
"repo_url": "https://clawhub.com/skills/weather",
100+
"tags": ["weather", "forecast", "no-api-key", "openclaw"]
101+
},
102+
{
103+
"id": "11",
104+
"slug": "github-skill",
105+
"name": "GitHub CLI",
106+
"description": "Interact with GitHub using the gh CLI — manage issues, PRs, CI runs, and advanced API queries. The second most popular OpenClaw skill (78+ installs). Essential for any development-focused agent workflow.",
107+
"author": "ClawHub Community",
108+
"install_cmd": "openclaw skill install github",
109+
"repo_url": "https://clawhub.com/skills/github",
110+
"tags": ["github", "git", "issues", "pull-requests", "openclaw"]
111+
},
112+
{
113+
"id": "12",
114+
"slug": "summarize",
115+
"name": "Summarize",
116+
"description": "Summarize or extract text and transcripts from URLs, podcasts, YouTube videos, and local files. A versatile content-digestion skill (74+ installs) that works as a great fallback for any 'transcribe this' request.",
117+
"author": "ClawHub Community",
118+
"install_cmd": "openclaw skill install summarize",
119+
"repo_url": "https://clawhub.com/skills/summarize",
120+
"tags": ["summarization", "transcription", "youtube", "podcasts", "openclaw"]
121+
},
122+
{
123+
"id": "13",
124+
"slug": "bird-twitter",
125+
"name": "Bird (X/Twitter)",
126+
"description": "X/Twitter CLI for reading timelines, searching tweets, posting, and engagement — all via cookies-based auth. Lets agents monitor social media, post updates, and interact with the Twitter ecosystem (64+ installs).",
127+
"author": "ClawHub Community",
128+
"install_cmd": "openclaw skill install bird",
129+
"repo_url": "https://clawhub.com/skills/bird",
130+
"tags": ["twitter", "x", "social-media", "posting", "openclaw"]
131+
},
132+
{
133+
"id": "14",
134+
"slug": "notion-skill",
135+
"name": "Notion",
136+
"description": "Notion API integration for creating and managing pages, databases, and blocks. Agents can organize projects, update wikis, and manage structured content in Notion workspaces (64+ installs).",
137+
"author": "ClawHub Community",
138+
"install_cmd": "openclaw skill install notion",
139+
"repo_url": "https://clawhub.com/skills/notion",
140+
"tags": ["notion", "productivity", "databases", "wiki", "openclaw"]
141+
},
142+
{
143+
"id": "15",
144+
"slug": "nano-banana-pro",
145+
"name": "Nano Banana Pro (Image Gen)",
146+
"description": "Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro). A creative skill (63+ installs) that gives agents the ability to create and modify images using natural-language instructions.",
147+
"author": "ClawHub Community",
148+
"install_cmd": "openclaw skill install nano-banana-pro",
149+
"repo_url": "https://clawhub.com/skills/nano-banana-pro",
150+
"tags": ["image-generation", "gemini", "creative", "ai-art", "openclaw"]
151+
}
152+
]
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import { promises as fs } from "fs";
2+
import path from "path";
3+
import { NextResponse } from "next/server";
4+
5+
type Creator = {
6+
username: string;
7+
displayName: string;
8+
avatar: string;
9+
bio: string;
10+
skills: string[];
11+
totalInstalls: number;
12+
totalReviews: number;
13+
rating: number;
14+
joinedAt: string;
15+
featured: boolean;
16+
};
17+
18+
type Skill = {
19+
id: string;
20+
slug: string;
21+
name: string;
22+
description: string;
23+
author: string;
24+
install_cmd: string;
25+
repo_url: string;
26+
tags: string[];
27+
};
28+
29+
const CREATORS_PATH = path.join(process.cwd(), "data", "creators.json");
30+
const SKILLS_PATH = path.join(process.cwd(), "data", "skills.json");
31+
32+
async function readJsonFile<T>(filePath: string): Promise<T> {
33+
const raw = await fs.readFile(filePath, "utf-8");
34+
return JSON.parse(raw) as T;
35+
}
36+
37+
export async function GET(
38+
_request: Request,
39+
{ params }: { params: Promise<{ username: string }> }
40+
) {
41+
try {
42+
const { username } = await params;
43+
const decodedUsername = decodeURIComponent(username).toLowerCase();
44+
45+
const creators = await readJsonFile<Creator[]>(CREATORS_PATH);
46+
const skills = await readJsonFile<Skill[]>(SKILLS_PATH);
47+
48+
const creator = creators.find(
49+
(entry) => entry.username.toLowerCase() === decodedUsername
50+
);
51+
52+
if (!creator) {
53+
return NextResponse.json({ error: "Creator not found" }, { status: 404 });
54+
}
55+
56+
const creatorSkills = skills.filter((skill) => creator.skills.includes(skill.slug));
57+
58+
return NextResponse.json(
59+
{
60+
creator: {
61+
...creator,
62+
skills: creatorSkills,
63+
},
64+
},
65+
{
66+
headers: {
67+
"Cache-Control": "no-store",
68+
},
69+
}
70+
);
71+
} catch {
72+
return NextResponse.json({ error: "Failed to load creator." }, { status: 500 });
73+
}
74+
}

0 commit comments

Comments
 (0)