← Back to Skills Marketplace
yang1997434

Fizzread

by yang1997434 · GitHub ↗ · v0.1.5
cross-platform ⚠ suspicious
362
Downloads
1
Stars
1
Active Installs
6
Versions
Install in OpenClaw
/install fizzread-skill
Description
Instant access to 100K+ nonfiction book summaries with 1-minute audio previews. Free demo key included — no signup needed. Search, browse, and listen via Fiz...
README (SKILL.md)

FizzRead — AI Book Summaries & Audio Previews

Instant access to 100K+ nonfiction book summaries with 1-minute audio previews. Free demo key included — start exploring immediately. Get daily recommendations, search by keyword, browse categories, and listen — all inside your conversation.


Setup

Built-in Demo Key: This skill includes a free demo API key so everyone can try it immediately — no signup required.

Demo key: 3272ed72f9d0b120706038f94220770b

API Key Resolution Order

When making API calls, determine the API key using this priority:

  1. Environment variable FIZZREAD_API_KEY — if set, always use it
  2. Demo key (3272ed72f9d0b120706038f94220770b) — use as fallback when no env var is set

First-time Setup Flow

On first use, check if FIZZREAD_API_KEY is set by running:

echo "$FIZZREAD_API_KEY"

If set and non-empty: Use it directly. Run a quick connectivity test with the Daily Pick endpoint and show the result.

If not set (empty): Use the demo key and show today's book. Then append this guidance:

You're using the free demo key. For your own key with higher rate limits:

  1. Visit fizzread.ai and sign up
  2. Go to Settings > API Keys > Generate
  3. Add it to your system environment to persist across sessions:

macOS / Linux — add to your ~/.bashrc or ~/.zshrc:

export FIZZREAD_API_KEY="your_key_here"

Then run source ~/.zshrc (or restart terminal).

Windows — run in PowerShell:

[System.Environment]::SetEnvironmentVariable("FIZZREAD_API_KEY", "your_key_here", "User")

Then restart terminal.

When the user provides a key manually

If a user pastes a key during conversation, run a connectivity test:

curl -s -H "Authorization: Bearer {user_provided_key}" "https://skill.fizzread.ai/v1/daily"
  • If the response contains data.title, the test passed. Remember this key for all subsequent API calls in this session. Also guide the user to save it as an environment variable (using the instructions above) so it persists across sessions.
  • On 401: "This API key appears to be invalid. Please double-check and try again."
  • On network failure: "Could not connect to FizzRead API. Please check your network connection and try again."

Important: Once a key is determined (from env var, demo, or user-provided), remember it and substitute it directly into the Authorization: Bearer header of every subsequent curl command. Do not rely on shell environment variables persisting between commands.

Base URL: https://skill.fizzread.ai/v1

All requests must include the header:

Authorization: Bearer \x3Cthe resolved API key>

Daily Pick

When the user asks for a daily book recommendation (e.g. "recommend a book", "today's book", "daily pick"):

  1. Run:

    curl -s -H "Authorization: Bearer $FIZZREAD_API_KEY" "https://skill.fizzread.ai/v1/daily"
    
  2. Parse the JSON response. All API responses wrap data in a data field (e.g. {"data": {...}}). Extract fields from data and output using this template:

    📖 Today's Pick
    
    [{title}]({app_url}) by {author}
    
    {about}
    
    ---
    Full 10-min audio free on FizzRead App 👉 {download_url}
    
    🎧 [1-min Audio Preview (English)]({audio_url})
    
    • If the user's language is not English, translate the about field to the user's language. Keep title and author in the original English.
    • If audio_url is null, omit the audio line entirely.
    • Always mark audio as "(English)" since all audio content is in English.
    • Do NOT output cover_url as a raw URL. The book cover will be shown automatically via Telegram's link preview of the app_url.

Book Search

When the user wants to search for books (e.g. "search for atomic habits", "find books about productivity"):

  1. Extract the search keyword from the user's message.

  2. URL-encode the keyword to prevent shell injection and handle special characters. Replace spaces with %20, and encode any special characters.

  3. Run:

    curl -s -H "Authorization: Bearer $FIZZREAD_API_KEY" "https://skill.fizzread.ai/v1/search?q={encoded_keyword}&limit=5"
    

    If the user explicitly asks for books with audio only, append &audio_only=true.

  4. Parse the JSON response. Extract data.results and data.total. If results is empty, tell the user no books were found and suggest trying different keywords.

  5. Output as a numbered list:

    Found {total} books for "{keyword}":
    
    1. [{title}]({app_url})  — {author}
       {about, first sentence only}
    
    2. [{title}]({app_url})  — {author}
       {about, first sentence only}
    
    ...
    
    Reply with a number to see the full summary and audio preview.
    
    ---
    Explore 100K+ book summaries on FizzRead App
    Download: {download_url from first result}
    
    • If the user's language is not English, translate each about excerpt.
    • When the user replies with a number, use the corresponding slug to call the Book Summary flow below.

Book Summary

When the user asks for a specific book's summary (e.g. by selecting from search results, or naming a book directly):

  1. Determine the book's slug. If you have it from a previous search, use it directly. Otherwise, first search for the book to find the slug.

  2. URL-encode the slug before using it in the URL.

  3. Run:

    curl -s -H "Authorization: Bearer $FIZZREAD_API_KEY" "https://skill.fizzread.ai/v1/book/{slug}"
    
  4. Parse the JSON response. Extract fields from data and output:

    📖 [{title}]({app_url})
    Author: {author}
    
    {about}
    
    ---
    Full version free on FizzRead App 👉 {download_url}
    
    🎧 [1-min Audio Preview (English)]({audio_url})
    
    • If the user's language is not English, translate the about field.
    • If audio_url is null, omit the audio line.
    • Do NOT output cover_url as a raw URL. The cover shows via Telegram link preview of app_url.

Category Recommendations

When the user asks for books by category or topic (e.g. "recommend psychology books", "what productivity books do you have"):

  1. Extract the category/topic from the user's message.

  2. First, fetch available categories:

    curl -s -H "Authorization: Bearer $FIZZREAD_API_KEY" "https://skill.fizzread.ai/v1/categories"
    
  3. Fuzzy-match the user's requested topic against the returned data[].name list. Pick the closest match. If no reasonable match exists, tell the user the available categories and ask them to pick one.

  4. URL-encode the matched category name.

  5. Fetch recommendations:

    curl -s -H "Authorization: Bearer $FIZZREAD_API_KEY" "https://skill.fizzread.ai/v1/recommend?category={encoded_category}&limit=5"
    
  6. Output as a numbered list (same format as Book Search results):

    Top books in {category} ({count} books available):
    
    1. [{title}]({app_url})  — {author}
       {about, first sentence only}
    
    ...
    
    Reply with a number to see the full summary and audio preview.
    
    ---
    Explore 100K+ book summaries on FizzRead App
    Download: {download_url from first result}
    
    • If the user's language is not English, translate each about excerpt.

Output Rules

  1. Language: Detect the user's conversation language. If not English, translate about content to the user's language. Keep book titles, author names, and audio labels in English.

  2. Audio: All audio is in English. Always label audio links with "(English)" so non-English users know what to expect.

  3. No fabrication: Only use data returned by the API. Never invent book titles, summaries, or URLs. If the API returns an error or empty result, say so honestly.

  4. CTA (Call to Action): Every response that includes book data must end with a download link to the FizzRead App. Use the download_url from the API response.

  5. Audio handling: When audio_url is null for a book, simply skip the audio section — do not mention that audio is unavailable.

  6. Cover image: NEVER output cover_url as a raw URL or text. Instead, embed app_url as a hyperlink on the book title: [{title}]({app_url}). Telegram will auto-generate a link preview card with the book cover from the page's og:image metadata. This is the only way to display covers.


Error Handling

When an API call returns an error, respond with a friendly message:

  • 401 Unauthorized: "Your FizzRead API key appears to be invalid. Please check your FIZZREAD_API_KEY and try again. Get a new key at fizzread.ai."

  • 404 Not Found: "That book wasn't found in the FizzRead library. Try searching with different keywords."

  • 429 Too Many Requests: "You've made too many requests. Please wait a moment and try again."

  • 500 / other errors: "FizzRead is temporarily unavailable. Please try again in a few minutes."

  • Network / curl failure: "Could not reach the FizzRead API. Please check your network connection and try again."

Usage Guidance
This skill appears to do what it says (call a FizzRead API using curl), but the runtime instructions around API key handling are inconsistent and could expose secrets. Before installing or using: (1) prefer setting FIZZREAD_API_KEY as an environment variable on your machine rather than pasting any private or production key into the chat; (2) avoid running commands that print secrets (the SKILL.md suggests echoing the API key — that will output the key into logs/conversation); (3) be cautious about typing/pasting any sensitive key into the conversation because the skill explicitly tells the agent to 'remember' it for the session; (4) test with the bundled demo key first; (5) if you plan to use a real key, confirm how the agent stores conversation history and whether those logs are accessible. Finally, note the documentation inconsistency (demo-key fallback vs. example curl using $FIZZREAD_API_KEY) — ask the skill author to clarify the exact key-resolution behavior and remove any instruction that prints or persists secrets to chat logs.
Capability Analysis
Type: OpenClaw Skill Name: fizzread-skill Version: 0.1.5 The FizzRead skill is a legitimate integration for accessing book summaries and audio previews via the `skill.fizzread.ai` API. It includes a hardcoded demo API key for immediate use and provides clear instructions for the agent to handle environment variables and user-provided keys. The skill demonstrates security awareness by explicitly instructing the agent to URL-encode search queries and slugs to prevent shell injection vulnerabilities during `curl` execution. No evidence of data exfiltration, malicious execution, or unauthorized persistence was found.
Capability Assessment
Purpose & Capability
Name/description (book summaries + audio previews) match the declared requirements: a single API key (FIZZREAD_API_KEY) and curl are sufficient for the described HTTP-based functionality. No unrelated services or binaries are requested.
Instruction Scope
Instructions are mostly limited to making authenticated curl requests to skill.fizzread.ai and parsing responses (in-scope). However, there are notable inconsistencies and risky instructions: (1) the SKILL.md states a fallback to a bundled demo key if the env var is unset, but most example curl commands use $FIZZREAD_API_KEY directly (which would be empty if unset), creating contradictory behavior; (2) the guide tells the agent to run `echo "$FIZZREAD_API_KEY"` which will print the secret into command output (potentially exposing it in logs/conversation); (3) it asks the agent to 'remember' user-provided keys for the session and to substitute them directly into headers — this encourages storing secrets in the agent's conversational memory, which may be logged or retained; (4) the prescribed URL-encoding guidance is simplistic (replace spaces with %20) and may give a false sense of protection against shell injection if not implemented correctly.
Install Mechanism
Instruction-only skill with no install spec and a minimal binary requirement (curl). Low install surface — nothing is downloaded or written to disk by the skill itself.
Credentials
The skill requests a single environment variable (FIZZREAD_API_KEY), which is proportionate. However, the SKILL.md encourages users to paste keys into the conversation and instructs the agent to echo and remember keys in-session — practices that increase risk of accidental leakage. The included demo key is public and fine for testing but offers no confidentiality guarantees.
Persistence & Privilege
The skill does not request always:true, has no install routine, and does not modify other skills or system-wide settings. It retains only in-session memory of user-provided keys per its instructions (not a platform-level persistent privilege), which is a design choice but should be treated carefully.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install fizzread-skill
  3. After installation, invoke the skill by name or use /fizzread-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.5
- API base URLs updated from `https://api.fizzread.ai/v1` to `https://skill.fizzread.ai/v1` throughout all command and documentation examples. - Connectivity test instructions for user-provided API keys now use the new base URL. - No other functional or output changes; only endpoint addresses have been changed.
v0.1.4
**Built-in free demo key and instant access upgrade** - Added a built-in free demo API key, allowing immediate access to 100K+ book summaries with audio, no signup needed. - Updated all core flows (Daily Pick, Search, Category) to use either the demo key or a configured custom key, with clear key resolution order. - Setup instructions now prompt users to add their own API key only for higher rate limits, and provide platform-specific environment variable instructions. - Output and CTA copy updated to reference 100K+ books and clarify demo limitations. - Existing command flows and output formats remain unchanged for compatibility.
v0.1.3
- Moved the "1-min Audio Preview" line to the end of Daily Pick and Book Summary output templates. - Adjusted output section order to show the "Full version free on FizzRead App" call-to-action above the audio preview link. - No logic or core flow changes—output formatting only.
v0.1.2
**Added support for displaying book cover images via Telegram link previews and improved output formatting.** - Book title links (`[{title}]({app_url})`) now enable Telegram to auto-show book covers via link preview; do not output `cover_url` as text. - Updated all response templates (Daily Pick, Search, Summary, Category) to use `app_url` on book titles. - Clarified output rules: never show `cover_url` as raw text; rely on `app_url` link preview for covers. - Added relevant emoji to message templates for enhanced appearance. - No code/logic changes outside of documentation—SKILL.md only.
v0.1.1
### fizzread-skill v0.1.1 - Updated API base URL from `https://api.xiai.xyz/api/skill/v1` to `https://api.fizzread.ai/v1` for all commands. - Updated sample curl commands throughout documentation to use the new endpoint. - Aligned category API response structure in documentation (from `data.categories[].name` to `data[].name`). - Clarified error handling and some user guidance text.
v0.1.0
- Initial release of the FizzRead Skill, offering access to 8,296+ nonfiction book summaries and 1-minute audio previews. - Supports daily book recommendations, keyword search, category browsing, and listening to summaries directly in chat. - Guided setup flow: prompts for and verifies API key before use. - Multilingual output: "about" summaries are translated to the user's language, audio always labeled as (English). - Strict no-fabrication policy: only outputs information provided by the FizzRead API and always includes app download links. - Full error handling for invalid keys, unavailable books, rate limits, and connectivity issues.
Metadata
Slug fizzread-skill
Version 0.1.5
License
All-time Installs 1
Active Installs 1
Total Versions 6
Frequently Asked Questions

What is Fizzread?

Instant access to 100K+ nonfiction book summaries with 1-minute audio previews. Free demo key included — no signup needed. Search, browse, and listen via Fiz... It is an AI Agent Skill for Claude Code / OpenClaw, with 362 downloads so far.

How do I install Fizzread?

Run "/install fizzread-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Fizzread free?

Yes, Fizzread is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Fizzread support?

Fizzread is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Fizzread?

It is built and maintained by yang1997434 (@yang1997434); the current version is v0.1.5.

💬 Comments