v0.27.0
Released Jul 8, 2026. Part of the OpenKnowledge changelog.
Minor Changes
- First-class support for the Pi coding agent (pi.dev), at parity with OpenCode. Pi has no MCP support, so
ok initnow drops a managed, dependency-free bridge extension at.pi/extensions/open-knowledge.ts— it launches OpenKnowledge's MCP server through the same resilient launcher every other editor gets and registers each OpenKnowledge tool as a native Pi tool under anok_prefix (so OK'sedit/writenever shadow Pi's built-ins). The OpenKnowledge project skill lands in.pi/skills/open-knowledge/, which Pi scans natively; both are trust-gated by Pi's folder-trust prompt, refreshed idempotently on re-init, healed by the repair/reclaim sweeps, and removed byok deinit/ok uninstall. Pi also joins the docked-terminal launch registry (pi '<prompt>') and skill install targets, and gets an integrations docs page. - Settings → User gains an "AI tools & CLI" section — the first-launch "Connect your AI tools to OpenKnowledge" dialog is now a persistent, stateful surface in the desktop app's settings. Every global component is listed with a checkbox reflecting its live installed state, and clicking installs or uninstalls that one component: the per-editor
open-knowledgeMCP entries (Claude Code, Claude Desktop, Cursor, Codex, OpenCode, OpenClaw), theokshell-PATH shim, and the user-global Agent Skills (open-knowledge-discovery,open-knowledge-write-skill). Removal follows the same guest discipline as install: only entries OpenKnowledge recognizably wrote are deleted (customized/forked entries are reported and left byte-unchanged), PATH removal strips only the managed rc block and records a declined consent so startup self-heal never re-appends it, and skill removal records the per-bundle decision every install actor honors.
Patch Changes
Keep the first-launch "Added ok to your PATH" notification clear of the MCP consent dialog. It now anchors bottom-left instead of covering the dialog's Add/Skip buttons, and toasts once again render above modal overlays so notifications from in-dialog forms stay visible and dismissible.
Deleted docs now stay deleted. Two long-standing gaps let a deleted or renamed-away markdown file silently re-materialize on disk with its old content:
- Deleting or renaming through the app, the HTTP API, or the MCP
deletetool could race a pending autosave — the store fired after the file was removed and rewrote it at the old path (externalrmwas already protected; the in-app paths were not). Every teardown path now marks the doc as no-longer-tracking-disk before connections close, so late stores are suppressed instead of resurrecting the file. - Deletions did not survive a server restart: every anti-resurrection
guard was in-memory, so a browser tab (or any client) still holding the
doc's cached state would be admitted after a restart and re-create the
file — including files deleted while the server was stopped. Removals
are now journaled durably under
.ok/local/, reloaded at boot, and files that vanished during downtime are detected and tombstoned at the next start. Rename redirects for stale tabs also survive restarts now.
Re-creating a doc on purpose (new file at the same path,
create-page, agent writes) keeps working exactly as before.- Deleting or renaming through the app, the HTTP API, or the MCP
Add Files sidebar keyboard shortcuts for duplicating and deleting files and folders, including copy/paste duplication.
Add the editor's footer fade to the folder view while the Ask AI composer is open. The folder list now dissolves softly into the background just above the composer instead of meeting a hard edge, matching the fade already shown in the document editor. The fade only appears when the Ask AI composer is visible.
Restore two extension-normalization behaviors that regressed when the file tree began preserving exact
.md/.mdxdocument identities.- Share-receive miss detection again recognizes an extension-bearing armed navigation against the resolver's extension-stripped missing target, so a moved or deleted shared doc renders the honest miss panel instead of falling into create-mode at the shared path.
- An extension-only file rename (same base name,
foo.mdtofoo.mdx) once more performs the on-disk move without recording a phantom rename-history entry, since the two paths refer to the same logical document.
Redesign the "What gets created" preview in the Initialize dialog so it's easier to read at a glance. The preview now groups what a starter pack scaffolds into clear Folders, Files, and Skill sections, each row showing the item's name and a one-line description of what it's for. The old collapsible file tree (which also exposed internal
.ok/paths) is gone — the sections carry the same information more legibly. Hovering or focusing a folder's template count now reveals the names of the templates it installs.