Install
openclaw skills install garss-studio-rss-apiUse when an AI agent needs to read, refresh, summarize, or inspect RSS news from this GARSS Studio project through its backend API. Covers login with access code, Bearer token usage, reader item endpoints, subscription lookup, and the single-port API constraint.
openclaw skills install garss-studio-rss-apiProject repository: https://github.com/zhaoolee/garss.
Use this skill when the user asks an AI agent to get RSS news from this project, summarize subscribed RSS articles, inspect GARSS Studio subscriptions, refresh a feed, or work with this project's backend API.
http://127.0.0.1:25173 in local dev unless the user gives another base URL.Use these steps when the user asks for live GARSS data and http://127.0.0.1:25173/api/health is not reachable.
cd path/to/garss/garss-studio
If the repository is not present, clone https://github.com/zhaoolee/garss first, then enter garss-studio.
cp .env.example .env
Skip this if .env already exists.
docker compose -f docker-compose.dev.yml up --build -d
Development mode exposes only one public port: http://127.0.0.1:25173. The backend and RSSHub services stay behind the frontend gateway. The dev compose defaults SCHEDULER_ENABLED=false, so startup should not trigger a full automatic RSS refresh.
curl -sS http://127.0.0.1:25173/api/health
The browser entry is http://127.0.0.1:25173/reader?pw=banana.
curl -sS -X POST "$BASE_URL/api/auth/login" \
-H 'Content-Type: application/json' \
-d '{"accessCode":"banana"}'
token from the JSON response.Authorization: Bearer <token>
If the user gives a URL containing ?pw=..., use that value as accessCode.
For the user's subscribed RSS news, call:
curl -sS "$BASE_URL/api/reader/items" \
-H "Authorization: Bearer $TOKEN"
This returns aggregated articles across enabled subscriptions, normally sorted newest first by the backend/frontend contract. Use ?refresh=true only when the user asks to force refresh, because it will fetch real upstream RSS sources and update cache.
For one source:
GET /api/subscriptions to find the subscription id.GET /api/reader/subscriptions/{id}.?refresh=true only for a forced refresh.Reader items normally include fields such as title, link, publishedAt, subscriptionId, subscriptionName, author/content fields, and optional HTML. When summarizing:
publishedAt descending if needed.subscriptionName when useful.link.errors array if present.For endpoint details, read references/api.md only when needed.
The running backend also exposes:
/api/docs/api/openapi.json