# Ov Resources

Search and read documents, repos, URLs, and other resources stored in OpenViking under...

- Repository: https://github.com/volcengine/OpenViking (41301 stars)
- Category: Design
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add volcengine/OpenViking --skill ov-resources -g -a claude-code -y`
Codex: `npx skills add volcengine/OpenViking --skill ov-resources -g -a codex -y`
Cursor: `npx skills add volcengine/OpenViking --skill ov-resources -g -a cursor -y`
Gemini CLI: `npx skills add volcengine/OpenViking --skill ov-resources -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add volcengine/OpenViking`

## Description

Search and read documents, repos, URLs, and other resources stored in OpenViking under viking://resources/. Use whenever the user asks about docs, specs, codebases, papers, or notes that were added to OpenViking ("check the docs", "what does our design doc say", "find it in OpenViking"), or when a task needs reference material this session does not have. Covers picking between find, grep, glob, and list, and drilling from a hit down to the exact file.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OpenViking Resources

Resources are documents a user added to OpenViking (files, repos, URLs).
They live in a file tree under `viking://resources/` (and sometimes
`viking://user/<id>/resources/` for user-private ones). Each directory has two
summaries next to its files:

- `.abstract.md`, one paragraph: what the directory holds (L0)
- `.overview.md`, a structured overview of its contents (L1)

Read summaries first and open full files last. The summaries exist so you can
decide where to look without reading everything.

## Pick the tool

| You know… | Use |
|---|---|
| roughly what it is about | `find(query, target_uri="viking://resources")` |
| an exact word, name, or error string | `grep(uri, pattern=[...])` |
| a file name or extension | `glob(pattern, uri)` e.g. `**/*.pdf` |
| where it is | `list(uri)` and `read(uris)` |

Default to `find`. Scope it with `target_uri` as soon as you know which
resource you are in, narrower scopes give better hits. Use `search` instead
of `find` only when the question is vague and needs intent analysis.

## Drill down

1. `find` returns URIs with a score. A hit on `<dir>/.abstract.md` means the
   whole directory matched, not that the answer is in the abstract.
2. `read` that directory's `.overview.md` to see what is inside.
3. `list` the directory, or run a scoped `find`/`grep` inside it, to reach the
   specific file.
4. `read` the file. For long files, `grep` first and then `read` with
   `offset`/`limit` around the match.

Stop as soon as you have what the task needs. Two or three targeted reads
beat ten broad ones.

## Tips

The rest: https://github.com/volcengine/OpenViking/blob/HEAD/agent-plugins/skills/ov-resources/SKILL.md
