Skip to content
Back to skills

Zread

ASecurity

Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `./.zread/wiki/`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module/package explanations, or "what does this repo do"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zre...

  • 2 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 2, 2026
ai-agentsgitapidocumentation

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add shengdabai/Tony-Claude-Code-Skills --skill zread --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Zread?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Zread
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shengdabai-zread/badge)](https://www.skillsdirectory.com/skills/shengdabai-zread)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: zread
description: Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `./.zread/wiki/`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module/package explanations, or "what does this repo do"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread / zread.ai directly. Also use it proactively before diving into a large unknown repo — if `./.zread/wiki/current` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word "zread".
---

# zread skill

`zread` is a CLI that generates wiki documentation from code in the current
workspace using an LLM. Output lives under `./.zread/wiki/` in the workspace;
public repos can also be viewed at https://zread.ai.

This skill is intended for agent use. Read generated files directly from disk,
and use `--stdio` as the default mode for any zread command instead of trying
to parse the human TUI.

## On-disk layout (read these directly)

Always run `zread` from the workspace root. After a successful generation:

- `./.zread/wiki/current` — text file containing the active version id
  (e.g. `2026-03-12-010203`).
- `./.zread/wiki/versions/<id>/wiki.json` — TOC: `{id, generated_at, language,
  pages: [{slug, title, file, section, group, level}]}`.
- `./.zread/wiki/versions/<id>/<file>` — page markdown referenced by `pages[*].file`.
- `./.zread/wiki/drafts/` — in-progress generation; presence means a previous
  run did not finish. `drafts/wiki.json` exists once the catalog phase
  completed.
- `~/.zread/config.yaml` — global config (LLM provider, language, concurrency).
- `~/.zread/login.json` — presence indicates the user has logged in.

To answer questions about a codebase that already has zread output, read these
files directly with the file tools — do not invoke `zread browse`.

## Commands

| Command | Purpose | Key flags |
|---|---|---|
| `zread generate` | Generate wiki for cwd | `-y/--yes`, `--draft resume\|clear\|cancel`, `--skip-failed`, `--stdio` |
| `zread browse` | Serve docs at http://localhost:9681+ and open browser | `--generate`, `--version <id>`, `--host`, `--port`, `--stdio` |
| `zread login` | OAuth into BigModel/Z.AI to obtain an API key | `--custom`, `--model`, `--stdio` |
| `zread config` | Edit `~/.zread/config.yaml` | `--stdio` |
| `zread update` | Self-update CLI | `--stdio` |
| `zread version` | Print version | `--stdio` |

`--stdio` is supported on every command and turns the process into a JSON-line
machine protocol on stdin/stdout. See
[references/stdio-protocol.md](./references/stdio-protocol.md) for the wire
format (events, `waiting_for`, `done`, `quit`). Load it whenever zread is
invoked from another program/agent.

## Decision tree for an AI agent

1. **User wants to read existing wiki content?**
   - Check `./.zread/wiki/current`. If present, read `wiki.json` and the page
     markdown directly. No CLI invocation needed.
   - For known *public* GitHub repos, prefer the `mcp__zread__*` tools
     (`get_repo_structure`, `read_file`, `search_doc`) over running the CLI.

2. **User wants to (re)generate docs?**
   - Confirm with the user first — `generate` is long-running, calls an LLM,
     and writes files. Get explicit consent in unfamiliar directories.
   - Verify `~/.zread/login.json` exists or `~/.zread/config.yaml` has an
     `llm.api_key`. If neither, run `zread login` first.
   - If `./.zread/wiki/drafts/` exists, decide:
     - resume previous run → `zread generate --draft resume -y`
     - throw away and start fresh → `zread generate --draft clear -y`
   - Otherwise: `zread generate -y`.
   - To not block on a few failing pages: add `--skip-failed`.

3. **User wants to view docs in a browser?**
   - `zread browse` (add `--generate` to bootstrap if no wiki exists yet).

4. **User wants to script zread / consume output programmatically?**
   - Use `--stdio` and follow stdio-protocol.md. Do not screen-scrape the TUI.

## Non-interactive invocation rules

- Always pass `-y` to `generate` when running unattended; otherwise it stops
  at a catalog confirmation gate.
- Always set `--draft` explicitly when a draft may exist, so the command does
  not prompt.
- For any command run from another agent/script, use `--stdio` so output is
  parseable JSON instead of ANSI TUI frames.
- `zread` writes logs to `~/.zread/log/zread.log` — read this if a run fails
  silently.

## Safety / blast radius

- `generate` consumes LLM tokens (real cost) and can run for many minutes on
  large repos. Confirm before launching.
- `generate` writes only under `./.zread/` and does not commit anything to
  git. It is safe to delete `./.zread/wiki/drafts/` to recover from a stuck
  state.
- `update` replaces the zread binary in place and is hard to reverse — only
  run it when the user explicitly asks.
- `login` opens a browser for OAuth; do not run it in a non-interactive
  context unless the user has asked for it.

## Reference files

- [references/stdio-protocol.md](./references/stdio-protocol.md) — JSON-line
  wire protocol shared by every command's `--stdio` mode. Load when
  programmatically driving zread.

Files in this skill

  • README.md3 KB
  • SKILL.md5.4 KB
  • references/stdio-protocol.md13.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.