Skip to main content
Glama
README.md
# repowiki

repowiki gives a command line and a local MCP server for DeepWiki,
the service that writes documentation wikis for public GitHub
repositories. Point it at a repository in `owner/repo` form and it can
list the topics DeepWiki has written for that project, hand back the
full documentation text, or answer a plain-language question about
the codebase using DeepWiki's own index and models.

The answers come from DeepWiki's public hosted service, which is free
and needs no account or API key. repowiki is the local half: it speaks
the documented protocol to that service and presents the same three
tools over stdio, so any MCP client can use them without a remote
transport setup.

## Install

```bash
npx @reneturcios/repowiki structure facebook/react
```

Or run the container image:

```bash
docker run -i ghcr.io/cloudcorprecords/repowiki
```

The container defaults to the MCP server (see below). Pass CLI
arguments to use it as a CLI instead.

## CLI

```bash
# List the documentation topics for a repository
repowiki structure facebook/react

# Print the full documentation text
repowiki contents facebook/react

# Ask a question about the repository
repowiki ask facebook/react "How is state managed?"

repowiki --version
```

Exit codes: `0` on success, `1` when the upstream service reports an
error or cannot be reached, `2` for usage errors. Repository names
must be in `owner/repo` form; anything else is rejected before a
request is made.

## MCP server

One bin serves both faces. The `mcp` subcommand starts a stdio MCP
server:

```bash
npx -y @reneturcios/repowiki mcp
```

MCP client configuration:

```json
{
  "mcpServers": {
    "repowiki": {
      "command": "npx",
      "args": ["-y", "@reneturcios/repowiki", "mcp"]
    }
  }
}
```

### Tools

| Tool | Input | What it returns |
| --- | --- | --- |
| `read_wiki_structure` | `repoName` (string, required, `owner/repo`) | The list of documentation topics DeepWiki has for the repository. |
| `read_wiki_contents` | `repoName` (string, required, `owner/repo`) | The full documentation text for the repository. |
| `ask_question` | `repoName` (string, required), `question` (string, required) | An answer about the repository, grounded in DeepWiki's index of its code and documentation. |

Behind the scenes each call is forwarded to DeepWiki's hosted MCP
endpoint (`https://mcp.deepwiki.com/mcp`) as a JSON-RPC `tools/call`
request; responses arrive as plain JSON or as a Server-Sent Events
stream and are reduced to their result text. No credentials are sent:
the public service requires none. Private repositories are out of
scope, matching the upstream's public-only access.

## Development

```bash
npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx
```

## License

MIT — see `LICENSE`.