About ov-resources
A skill for locating and reading documents, repositories, and URLs stored in OpenViking. It recommends starting with summaries and narrowing searches before opening full files, and advises citing the source URI.
Key features
- 01Search by topic, exact text, or filename
- 02Browse resource directories
- 03Read summaries before full files
- 04Narrow searches to a resource
- 05Inspect long files around matches
- 06Cite source URIs
Use cases
- 01Find a document by subject
- 02Locate an exact error or name
- 03Explore a repository or directory
- 04Read a relevant passage in a long file
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ volcengine/ openviking --skill ov-resourcesAfter installing, type/ov-resourcesin Claude Code to confirm it loaded.
Details
From the project READMEOpenViking 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
findreturns URIs with a score. A hit on<dir>/.abstract.mdmeans the whole directory matched, not that the answer is in the abstract.readthat directory's.overview.mdto see what is inside.listthe directory, or run a scopedfind/grepinside it, to reach the specific file.readthe file. For long files,grepfirst and thenreadwithoffset/limitaround the match.
Stop as soon as you have what the task needs. Two or three targeted reads beat ten broad ones.
Tips
- If
findreturns nothing useful,list viking://resourcesto see what exists, then search inside the closest directory. - Low scores (under ~0.4) are usually noise; rephrase with the domain's
own terms rather than raising
limit. - Cite the
viking://URI of what you used so the user can open it. - To add a new resource, use
add_resourcewith the file path or URL; do not copy its text in withwrite.