# OpenKnowledge

WYSIWYG markdown knowledge-base editor that ships a 21-tool MCP server and skills for coding agents.

OpenKnowledge from Inkeep is a desktop and local-web markdown editor for LLM wikis, specs, and notes over any folder of .md files. Its installer wires an MCP server and skills into Claude Code, Codex, Cursor, and other harnesses; the server exposes search, link-graph, lint, history, and polymorphic write/edit/move tools with git-backed versioning.

Alternative to: Notion, Confluence

- Capabilities: adaptable, operable
- Vertical: notes-knowledge
- Shape: business-app
- Form factor: desktop
- Execution model: hybrid
- Provenance: unknown (recorded, never ranked)
- Repo: https://github.com/inkeep/open-knowledge (GPL-3.0), 3964 stars, last commit 2026-09-03
- Last activity: 2026-09-03
- Page: apps/inkeep--open-knowledge.html
- JSON: apps/inkeep--open-knowledge.json

## Use it when

- you keep specs and a team wiki as markdown in git and want agents to search, lint, and edit them with history
- you want an Obsidian-like editor that installs its own MCP and skills into Claude Code and Codex

## Gotchas

- GPL-3.0
- Semantic search sends content to the embeddings provider; off by default
- Every MCP call takes a cwd; a globally registered server needs it unless the client advertises one root
- Web app needs Node.js 24+ and git

## Editions

- Free: Free, open source
  - source: https://github.com/inkeep/open-knowledge
  - binary: https://openknowledge.ai/download
  - installable: npm install -g @inkeep/open-knowledge && ok init

## Adaptable: make it yours

Effort: config-only (15 things to edit)

Three YAML layers: ./.ok/config.yml (committed), ~/.ok/global.yml (user), ./.ok/local/config.yml (machine). Keys cover content.dir, contentRules, validation, appearance, autoSync, server, editor, agents.autoApproveOkTools, search.semantic. Env overrides are OK_* (OK_BIND, OK_EXTERNAL_URL, OK_ALLOW_EXTERNAL, OK_MCP_AUTOSTART, OK_EMBEDDINGS_API_KEY). Skills are SKILL.md bundles under .agents/skills/. The repo .env.example only sets VITE_PORT and OTEL_* for development.

- Env vars: OK_BIND, OK_EXTERNAL_URL, OK_ALLOW_EXTERNAL, OK_LANG, OK_LOG_LEVEL, OK_OPEN_BROWSER, OK_MCP_AUTOSTART, OK_EMBEDDINGS_API_KEY, VITE_PORT, OTEL_SDK_DISABLED
- Config files: .ok/config.yml, ~/.ok/global.yml, .ok/local/config.yml, ~/.ok/secrets.yml
- Prompt files: .agents/skills/*/SKILL.md
- Accounts you'll need: GitHub (optional, for team sync); OpenAI or a self-hosted embeddings endpoint (optional, semantic search)

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://openknowledge.ai/docs/reference/mcp (published by the builder, local).

### Reach (partial coverage)

- Read and search the knowledge base: reachable. exec (fs-direct reads with backlinks) and search (BM25 plus optional semantic)
- Create, edit, move, and delete documents, folders, and assets: reachable. write, edit, delete, move tools polymorphic over document, folder, template, skill, asset
- Wiki-link graph and backlinks: reachable. links tool with backlinks, forward, dead, orphans, hubs, suggest
- Content rules and lint: reachable. lint and audit tools; lint fix: true auto-fixes
- Version history, checkpoints, and restore: reachable. history, checkpoint, restore_version
- Manage and import agent skills: reachable. skills, install, import tools
- Git and GitHub sync, conflict resolution: reachable. conflicts and resolve_conflict; auto-sync itself is configured in autoSync.* config
- Team share links: reachable. share_link tool
- Resolve comment annotations: undetermined. exec returns unresolved comments; no explicit resolve tool seen in the reference
- In-app AI chat and slides: not reachable. human UI features; no MCP tool

## Code stack

- Languages: TypeScript
- Frameworks: Electron, Vite, Hocuspocus
- Package manager: npm
- Database: none
- Hosting target: local

## Model stack

- Providers: OpenAI-compatible embeddings (OpenAI, Ollama, vLLM, LM Studio)
- Models: text-embedding-3-small
- Keys you need (names only): OK_EMBEDDINGS_API_KEY
- Prompts live in: .agents/skills/
- Tools: exec, search, links, lint, audit, history, skills, config, palette, preview_url, share_link, write, edit, delete, move, install, import, checkpoint, restore_version, conflicts, resolve_conflict

## Skills

bundled: Server ships skill packs (knowledge base, codebase wiki, entity vault, plain notes) and a Claude Code plugin that agents install to use the knowledge store.
- Paths: packages/server/assets/skills/*/SKILL.md, packages/server/assets/skills/packs/*/SKILL.md, packages/plugin/.claude-plugin/plugin.json

## Evidence and confidence

- formFactor: README: desktop app for macOS, Windows, Linux; also a local web UI from the CLI (confidence 0.85)
- executionModel: agent integrations and opt-in embeddings; editor works without a model (confidence 0.75)
- operability: docs/content/reference/mcp.mdx in the repo, 21 tools, published by Inkeep (confidence 0.95)
- effort: openknowledge.ai/docs/reference/configuration: YAML config layers and OK_* env vars (confidence 0.85)
- editions: README: 'Private, local, and free'; no paid edition found in docs (confidence 0.75)
- active: pushedAt 2026-09-03; Show HN 2026-06-25 with 381 points
- provenance: AGENTS.md present; no statement on how it was written (confidence 0.3)
- reach:  (confidence 0.9)

## Open questions

- Does Inkeep sell a hosted or team edition of OpenKnowledge, or only its separate Inkeep products?
- Which providers and keys does the in-app AI chat use?
- Is 'official' or 'native' the better level given agents are a first-class co-editor?

## Sources

- https://github.com/inkeep/open-knowledge (sourcing:notes-knowledge:community)
- https://openknowledge.ai/docs/reference/mcp (analysis)
- https://openknowledge.ai/docs/reference/configuration (analysis)
