Skip to content
cccskills
FreePublished on GitHubEnglish overview

ReadIt

Listen to an article, file, pasted text, or the agent’s latest response read aloud in the DA’s Fish Audio voice. The continuous playback starts within seconds and can be paused, resumed, stopped, or checked for status.

OriginalShow the original description

Reads content aloud in the DA's Fish Audio voice (an article, a file, pasted text, or what the DA just wrote) as one continuous read that starts within seconds and can be paused or stopped. USE WHEN read it to me, read this to me, read that aloud, read it, ri, /ri, play this, say this out loud, listen to this, read the article, read your write-up, stop reading, pause the read, resume the read. NOT FOR spoken tutorials (Teach), narrated video essays (the video-essay skill), one-line status notifications (the voice endpoint), or the phone and text lines.

danielmiessler/LifeOS19,635 stars(GitHub 19,635 + cccskills 0)

Run score Not tested

See how to install

Good for

  • Listening to an article while away from the screen
  • Hearing the agent’s latest write-up aloud
  • Pausing or resuming an ongoing read
  • Stopping spoken playback

Overview

What it does

ReadIt reads an article, file, pasted text, or the agent’s latest response aloud in the DA’s Fish Audio voice. For long text, playback can begin within seconds once the first audio segment is ready, while the remaining segments are synthesized during playback. It reads the content as speech rather than summarizing it. You can pause, resume, or stop a running reading, and check its status. Starting a new reading stops the previous one.

When it helps

Use it when you want to listen to an article or response without keeping your eyes on the screen, or hear text while traveling or doing other work. Its playback controls are useful when you need to pause and continue a long reading. It is not intended for spoken lessons, narrated video essays, or short notification audio.

Example requests

  • “Read this text aloud.”
  • “Read this article to me.”
  • “Pause,” “resume,” or “stop reading.”

Notes

First-time use requires a Fish Audio account, an API key, and a voice profile. Playback uses macOS afplay. The skill does not read aloud in a headless environment or when terminal identity information is unavailable.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Document check

AI checked the SKILL.md for operations that need care and for setup requirements. The score comes only from actually running the skill (hands-on test).

SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIt states the key is never printed or placed in a URL and headless runs skip playback.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt requires a Fish Audio account, API key, voice profile, and macOS playback.

Not counted in the score. Rated by AI (OpenAI Codex) as of Oct 28, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (4)

  • SKILL.md5.3 KB
  • Intents/Read.md2.7 KB
  • Setup.md3.5 KB
  • Tools/ReadIt.ts18.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

ReadIt

One command turns content into the DA's voice reading it. The read starts within a few seconds regardless of length: the first chunk synthesizes, a detached player starts, and the rest synthesizes while earlier chunks play. stop, pause, resume, and status act on the running read.

Ideal State

  • The principal hears the requested content in the DA's voice within seconds, whatever its length, and the running read answers stop, pause, resume and status.
  • What plays is a faithful spoken version of the requested piece: not a summary, and not raw markup read out.
  • Nothing else speaks over the read, and a headless channel never speaks at all.

Intent Routing

IntentTriggerFile
Read"read it to me", "ri", "/ri", "read this", "read your write-up", a URL or file to readIntents/Read.md
Control"stop", "pause", "resume", "where are you in the read"Intents/Read.md § Control

References

FileRead when
Setup.mdfirst-time setup: the Fish Audio account and key, the voice profile, and a read-only check

Tool contract

bun ~/.claude/skills/ReadIt/Tools/ReadIt.ts read --file <path> [--title "<title>"] [--voice <profile>]
bun ~/.claude/skills/ReadIt/Tools/ReadIt.ts read --text "<short text>"
bun ~/.claude/skills/ReadIt/Tools/ReadIt.ts stop | pause | resume | status
  • Voice: LIFEOS_CONFIG.toml [da.voices.reader] when it has a fish_reference_id, else [da.voices.main]. --voice <name> picks any [da.voices.<name>] profile that has a fish_reference_id; --voice principal uses the voice id in FISH_PRINCIPAL_VOICE_ID. Speech goes through LIFEOS/TOOLS/FishTTS.ts (Fish Audio, Drama 3 model).
  • Key: FISH_API_KEY in the env file. Never printed, never in a URL.
  • Pronunciations: LIFEOS/USER/PRINCIPAL/PRONUNCIATIONS.json, through the one LifeOS pass (LIFEOS/TOOLS/Pronounce.ts) that FishTTS runs on every chunk, homographs like "live" included.
  • Audio and state: ~/Library/Caches/LifeOS/ReadIt/<run>/ (tmpdir on other platforms). Playback is macOS afplay.
  • A headless channel (LIFEOS_NOTIFICATION_CHANNEL=headless, or no terminal identity) prints skipped: headless and exits 0. Scheduled jobs never speak.

Data & Config

User customizations live at <configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/ReadIt/ (configRoot is $CLAUDE_CONFIG_DIR when set, else ~/.claude). When it exists, its PREFERENCES.md, configurations and resources override the defaults; otherwise the defaults stand.

First-time setup (the Fish Audio key and voice, macOS playback) is in Setup.md.

Gotchas

  • This skill sends no /notify voice line. The read itself is the voice; a notification would queue in front of it and delay the start.
  • The tool strips markdown as a backstop, but a raw article is not a script. Stripped, tables read as comma lists, headers become bare fragments, and acronyms get spelled out letter by letter.
  • A new read stops the running one. There is no queue.
  • Chunks are capped at 2,400 characters and split at paragraph, then sentence, boundaries. A single-paragraph wall of text still works; it just splits by sentence.
  • Pace is the profile's fish_speed (0.5 to 2.0), sent to Fish as prosody speed. Unset means 1.0. Fish accepts at most 2,500 characters per request, which is why chunks stay under 2,400. Drama 3 tags such as [sigh] and <emphasis> pass through to the voice.
  • Source tree only: On hosts with a low open-file limit, bun test from the repo root can fail with EMFILE. In the source tree, run this skill's test path instead: bun test ./skills/ReadIt/Tools/ReadIt.test.ts. Tests do not ship in the public release.

Examples

Example 1: read what I just wrote

User: "ri"  (after the DA produced a write-up)
→ Read intent: authors a spoken script from the write-up (no tables, no URLs, no headers), writes it to a temp file
→ `ReadIt.ts read --file <tmp> --title "<subject>"`
→ Reply: title, chunk count, estimated minutes; audio is already playing

Example 2: read a URL

User: "/ri https://example.com/some-article"
→ Fetches the article, authors a spoken script of its prose, reads it

Example 3: control

User: "pause"  /  "ok keep going"  /  "stop reading"
→ `ReadIt.ts pause`  /  `resume`  /  `stop`

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

AnnualReports

FreeSummary

Find and fetch vendor cybersecurity reports, then compare their findings on topics such as ransomware, breaches, cloud security, and AI. Analyses identify the reports consulted and cite each figure by vendor, year, and report, including where sources disagree.

  • Find reports in a cybersecurity topic area
  • Fetch a specific vendor report
  • Compare ransomware findings across reports
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Compare a component's own design needs with the goals of the larger system through three structured passes. The result identifies conflicts, recommends an appropriate scope, and assesses whether the proposed design fits the whole.

  • Choosing between a service, a library, and inline code
  • Comparing feature requests with product goals
  • Checking how new components fit an existing system
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Aphorisms

FreeSummary

Find quotes that fit a text’s themes, with attribution and a short reason for each suggestion. Add sourced quotes, research thinkers, and organize a quote collection by theme and usage history to avoid repetition.

  • Finding a fitting quote for a newsletter
  • Saving sourced quotes without duplicates
  • Researching a thinker’s quotes by theme
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

Art

FreeSummary

Create blog illustrations, technical diagrams, comparisons, comics, and icons through workflows tailored to each format. The skill guides composition, color, and model selection, then stages generated images for review before they are used in a project.

  • Creating blog header illustrations
  • Explaining a system with a technical diagram
  • Visualizing comparisons and timelines
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArtDirection

FreeSummary

Assess the visual quality of images, films, slides, and site captures against a brief and craft criteria. Two vision judges score the work and rank defects, guiding bounded revision; delivery is gated on a passing critique, with human calibration labels recorded separately.

  • Reviewing a render and listing the most important visual defects
  • Iterating on a film or slide deck until it meets a defined bar
  • Checking whether an image reads as professional
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

ArXiv

FreeSummary

Find arXiv papers by topic, research category, or paper ID. Retrieve titles, authors, abstracts, and links, check new submissions, and add AlphaXiv's AI-generated overviews when available to help decide which papers to read.

  • Checking new AI and machine learning papers
  • Finding papers on a specific research topic
  • Looking up a paper by its ID or arXiv URL
danielmiessler/LifeOS19.6KUpdated Oct 28, 2026

See all skills by danielmiessler

Report a problem with this skill