Read when the user asks what OpenKnowledge is, wants to install it on a repository, wants to open or preview a single markdown file that is not part of an OpenKnowledge project, wants to share an OpenKnowledge project with collaborators, or asks how `ok init` / `ok cowork` / OK Desktop set up a project. Do NOT load to perform OpenKnowledge reads/writes — the runtime guidance for editing markdown inside an initialized OK project ships as a separate project-local skill at `.claude/skills/open-knowledge/` whenever `ok init` runs.
npx skills add https://github.com/inkeep/open-knowledge --skill open-knowledge-discovery
OpenKnowledge (OK) is a markdown-CRDT collaboration platform. It turns a
directory of .md / .mdx files into a live, multi-writer knowledge base:
agents and humans edit the same documents in real time, every change is
attributed, and a browser preview renders edits as they land.
This skill covers discovery, install, and opening OpenKnowledge files —
including single files that are not part of a project (see *Opening a file
outside a project* below). It does not carry the in-project read/write
runtime contract (the STOP rules for native file tools, the grounding and
linking rules, the MCP routing table) — that ships separately as the
project-local skill installed by ok init (see *Working inside a project*
below).
Run ok init from the repository root:
npx @inkeep/open-knowledge init
# or, after a global install:
npm install -g @inkeep/open-knowledge
ok init
ok init is the one setup verb. It:
.ok/ directory (project config — content.dir defaults to .);Cursor, Codex) — skip with --no-mcp;
.claude/skills/open-knowledge/and .cursor/skills/open-knowledge/ so agents working in this repo get the
full read/write contract;
.git/.Re-run ok init any time to refresh wiring and skills to the installed CLI
version.
An OK project travels with its repository. To share one:
.ok/ directory and the project-local.claude/skills/open-knowledge/ (and .cursor/skills/open-knowledge/)
directories along with your .md content.
ok init once — that registers theMCP server on their machine and refreshes the project skill.
ok start (or open the project in OKDesktop).
Collaboration is real-time once two writers have the project open against the
same content directory.
ok cowork — Claude Chat & Coworkok init's editor wiring does not reach Claude Chat or Cowork — those read a
separate Skills list inside the Claude Desktop App. Run ok cowork to
build openknowledge.skill and open Claude Desktop so the user can upload it
(Customize → Skills → + → Create skill → Upload skill).
OK Desktop is the standalone macOS app (@inkeep/open-knowledge-desktop). It
bundles its own CLI, opens a project as an editor + preview window, and keeps
the project's MCP wiring and skills current on every launch. Download DMGs
from the releases page.
OpenKnowledge can open a single markdown file that is not part of an OK
project — a loose .md / .mdx, **or a file that lives inside a regular
repo/folder which was never ok init'd**. It opens in a throwaway session (a
temp project in the OS temp dir — your repo is never touched, no .ok/ is
written into it) with the same live preview you get inside a project.
Never run ok init just to view or open a file. ok init turns a repo
into a shared OpenKnowledge project; it is not a prerequisite for opening one
file. Opening a file needs no project, no .ok/, and no server already
running — each path below boots the session itself.
When asked to open or preview such a file, **decide by the viewing surface you
actually have** — check the tool, not the host name. Only open a browser when
you genuinely have one; never pop a browser tab on a host that has none.
is the default: call the preview_url MCP tool with file set to the
absolute path (it finds, or boots on demand, the session and returns a full
url), then immediately open that url in your in-app browser. "Open it"
means navigate your browser — don't just print the URL and stop. This is also
the only way to view it in a browser when the OK Desktop app is installed
(ok open prefers the Desktop app). Get the URL from preview_url only —
never hunt for it via ok ps / ok status / ok ui / ok start or a guessed
port.
ok open /abs/path/to/file.md: it opens the Desktop app when installed, else a
browser, and boots the session itself. Don't force a browser tab the user
didn't ask for; ok open is the right default here. If ok isn't on PATH,
npx @inkeep/open-knowledge open /abs/path/to/file.md does the same.
If the OK MCP server isn't wired into this host there is no preview_url to
call — use the ok open path above. Don't reconstruct what preview_url does
by hand (spawning ok mcp yourself, scraping ports from ok ps).
The path must be absolute (a file outside a project has no cwd to anchor a
relative path). Re-opening the same file lands on the same session. Never
construct or guess the URL — use the one preview_url returns.
Do not use this skill to perform OpenKnowledge reads or writes. The
runtime contract — STOP rules for native file tools on in-scope markdown, the
preview-attach handshake, grounding and linking rules, the MCP tool routing
table — lives in a separate project-local skill installed at
.claude/skills/open-knowledge/SKILL.md whenever ok init runs.
If the user is editing markdown inside a project that has a .ok/ directory
and this discovery skill is the only OpenKnowledge skill loaded, the
project-local skill is missing (the repo was never ok init'd, or the skill
directory was not committed). Advise the user to run ok init to install it.
ok --help for the full command list.Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
Take inkeep/open-knowledge-discovery from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm, npx.
Without those the skill loads but fails at the first command.