# Openwiki

> Generate and browse a source-grounded markdown wiki for a git repository.

- Skill: `iii-hq/openwiki` (Agent Skill)
- Install (CLI): `npx skillmds@latest add iii-hq/openwiki`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iii-hq/openwiki/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: iii-hq (https://skillmd.com/u/iii-hq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/iii-hq/openwiki

---


# openwiki

Builds and maintains a categorized, interlinked markdown wiki for a code
repository. A model reads the source, plans an outline, writes one page per
topic with file citations, and refreshes pages from git diffs. Wiki content is
stored in state; a browser UI and JSON API are served under `/openwiki`.

## When to Use

- You want a navigable wiki that explains a repository, grounded in its actual
  source with `path:line` citations.
- An agent needs durable repo context beyond a single instructions file.
- You want the wiki to stay current as the repository changes.

## Boundaries

- Reads and clones public git repositories; it does not modify them.
- Generation quality depends on the routed model. It calls `router::complete`;
  the provider and credential live in the `llm-router` config, not here.
- Not a chatbot. It maintains structured pages rather than answering free-form
  questions.
- Cloned repositories are ephemeral working copies on local disk; the wiki
  itself lives in state.

## Functions

- `openwiki::generate { repo_url, model? }` — start a wiki build; returns
  `{ wiki_id, status }`. Poll `openwiki::status`.
- `openwiki::status { id }` — generation progress.
- `openwiki::wikis` — list generated wikis.
- `openwiki::wiki { id }` — wiki metadata.
- `openwiki::pages { id }` — page index.
- `openwiki::page { id, slug }` — a page's markdown and metadata.
- `openwiki::search { id, q }` — keyword search over a wiki.
- `openwiki::refresh { id }` — git-pull and regenerate changed pages.
- `openwiki::set-schedule { id, schedule }` — set a wiki's auto-refresh cadence
  (`off` | `3h` | `6h` | `12h` | `daily` | `weekly` | a cron string).
- `openwiki::delete { id }` — delete a wiki and all its pages.

The same operations are exposed over HTTP under `/openwiki/api/*`, and
`/openwiki` serves the browser UI.

## Reactive triggers

- Each wiki with an auto-refresh cadence gets its own `cron` trigger; when one
  fires, `openwiki::cron::refresh-due` runs an incremental refresh of every wiki
  whose interval has elapsed. Set the cadence per wiki (`openwiki::set-schedule`
  or the UI control); the config worker's `refresh_default` is the default for new
  wikis. Nothing is scheduled by default (`off`).
- `openwiki::on-config-change` reloads the default model, page-writer concurrency,
  and default refresh cadence when the `openwiki` configuration entry changes.

