OpenKnowledge

Changelog

Release notes for OpenKnowledge.

v0.87.1

Patch Changes

  • Loading placeholders are now visible on every color theme.
View on GitHub
v0.87.0

Minor Changes

  • ok start and ok clean now treat a server lock as stale once another program reuses its process ID, and ok stop and the desktop app no longer signal that program. ok stop exits 1 if it cannot confirm the process; stop 0.25.0-or-earlier servers yourself, then restart them.

Patch Changes

  • OpenKnowledge Beta now shows one Beta label in the window header instead of two.
  • OpenKnowledge Desktop's editor, note, navigator and terminal windows now apply a Content-Security-Policy and refuse to load local files from outside the app bundle, which stops scripts injected into the page from running.
  • The Files sidebar now lists files while a large project is still indexing at startup, and its loading placeholder is visible on every color theme.
  • OpenKnowledge no longer leaves stuck zsh processes behind when it checks your login shell's PATH.
  • Cancelling a Mermaid label edit with Escape now restores the label exactly as the diagram showed it. Before, the editor read the label's source text as HTML, which skipped Mermaid's sanitizer.
  • A bug report started from the toolbar's ? menu no longer captures that button's "Resources" tooltip in its screenshot. The report shortcut still captures the command palette or any menu that is open.
  • Opening a saved theme's editor in Settings, from its edit button or from Create & edit, now scrolls the editor into view and moves focus to it, without animation when reduced motion is on.
  • Dismissing the "Name your theme" dialog in Settings now returns focus to the Create new theme tile.
  • Typing a search in the command palette now selects the top result, so pressing Enter runs it without first pressing the down arrow.
  • Command palette searches now list commands whose names match before commands that match only a related term, and Enter runs the top row. Typing "check" leads with Check for updates rather than Switch worktree.
  • Skill install confirmations now open in an app dialog instead of the system prompt, a failed agent restart is reported in the agent pane instead of a toast, and retry buttons read "Try again".
  • Selecting the Editor while an empty Agents panel is opening no longer moves focus back to Agents.
  • Preserve the editor's viewport and caret when switching to Agents and back in a narrow window, and prevent position resets when navigating or typing immediately after switching editor modes or jumping to source.
  • Keep document navigation responsive when reopening a large document by avoiding repeated statistics and wiki-link resolution work.
  • Agent conversations now open the Agents panel even when the panel finishes loading after the conversation starts.
  • Stop OpenKnowledge's saved version history from growing without bound when your project's .git resolves to a directory inside the project, such as a .git.nosync symlink or a separate git directory. That directory is now kept out of every new version.
  • Status colors across the app, including update notices, banners, badges and agent thread warnings, now come from the active theme's palette, including custom themes, instead of fixed greens, ambers, reds and blues. Palette colors too faint to read are adjusted just enough to stay legible.
View on GitHub
v0.86.22

Patch Changes

  • The browser app that ok start serves now sends a Content-Security-Policy, which stops scripts injected into the page from running.
View on GitHub
v0.86.21

Patch Changes

  • The Mermaid diagram editor now has separate pickers for edge arrows, stroke, color, animation and curve, and edges are easier to click.
View on GitHub
v0.86.20

Patch Changes

  • Saving a version right after typing in the editor now includes that edit, instead of the text last saved to disk.
View on GitHub
v0.86.19

Patch Changes

  • Graph view tooltips now show document titles and link URLs as plain text, even when they contain HTML tags.
  • Translation catalogs are now compiled when the app is built, so contributors commit only the .po files.
  • Improve settled text contrast in the default light and dark interface while preserving third-party and imported palette colors.
  • Collaborator name labels now show in full above the caret, including in a table's first row, under a frozen header row, and on the first line of a paragraph or heading.
  • The desktop worktree switcher no longer starts a burst of git processes, one per branch, each time a window comes to the front.
View on GitHub
v0.86.18

Patch Changes

  • OpenKnowledge Beta now names ok-beta and ~/.ok-beta in its remaining setup, diagnostics, sign-in, embeddings and connection messages, and the bundled skills note the Beta command alongside Stable's.
  • OpenKnowledge Beta now names ok-beta, not ok, in its server-not-running and stuck-server hints, PATH setup copy, CLI help and the built-in terminal's Claude approval, and names ~/.ok-beta/secrets.yml for its search key.
  • Opening or closing the agents panel, and typing a long question in the Ask AI box, are now faster on large documents.
  • Default dark mode gives the app frame, sidebars, and editor distinct neutral shades, subtler file names and badges, and brighter header button hovers.
  • The desktop app and dev server run from source now use their own dev channel, with separate home folder, credentials, MCP entry and link scheme, so they no longer share or take over an installed app's state and projects.
  • The area behind the cards and app header is a step darker and follows your color theme, the cards cast a soft shadow with a gap at the sides and bottom, the desktop file list is now opaque, and resize grips appear only when you hover a divider.
  • The editor, its file list and document side panel now sit in one card, with the terminal and chat in their own cards. The side panel button moved to the end of the tab bar, and dragging the chat or right terminal divider keeps the side panel's width.
  • Update notices and the feedback card now float in the window's bottom-left corner, so they stay visible when the editor is hidden or the file list is collapsed.
  • A new header across the top of project windows keeps back, forward, search, the project switcher, Share, sync, settings and resources in one fixed place. The editor footer now shows the current checkout: its project folder and its branch or worktree.
  • Project windows can now hide the editor from a new Editor header button or View › Show/Hide Editor, letting chat and the terminal fill the window. Opening a document brings the editor back.
  • Project and single-file windows now have Agents and Terminal buttons at the right of the header that show whether each panel is open and toggle it with one click. They replace the right-edge chat tab, its live-agent dot and the panels' collapse arrows.
  • The @ and / menus now open when typing with a Japanese input method: after an ideographic space, on full-width @ and /, and once the input method commits the character.
  • Projects in one git repository whose folder names differ only in non-Latin letters, spaces or punctuation now keep separate version histories, and such skill files keep separate discarded-edit backups. A history two projects already shared stays with the project that created it; the other starts fresh.
  • The Linux packages are now named after the app they install: openknowledge for Stable on deb and rpm, and openknowledge-beta for Beta. Existing installs update in place and keep their terminal commands.
  • When the editor is too narrow for its split panes, it shows one pane at a time with an Editor pane selector, keeping each pane's tabs and reading position.
  • Windows narrower than 48rem show one of Editor, Agents and Terminal at a time, chosen from the header, keep the others running, and return to your full layout when widened.
  • When the file sidebar or document panel cannot fit beside the document, it opens as a full-editor cover with Back to editor and Hide, and choosing a destination in it reveals the document.
  • Choosing the same document heading again now scrolls to its destination.
  • Showing or hiding Files or the document panel now applies at every window width, so a sidebar you hid stays hidden when the window widens.
  • Single-file windows now use the shared header and editor cards, with the document panel in the editor card.
  • On macOS, the window buttons in a single-file window now sit centered in its top bar instead of below the middle.
  • Links and heading anchors in Japanese, Hindi, Thai and other scripts whose marks change a letter keep those marks, so [[ガラス]] no longer opens a page named カラス. Links the editor saved earlier without the marks, such as #カラス for ## ガラス, need the marks restored.
  • Suggested links now find page mentions in Chinese, Japanese, Thai and other text written without spaces, and report the right position when the text contains characters such as İ.
  • Converting a page to a template no longer overwrites an existing template with the same generated name; it picks the next free name such as imported-template-2. Importing under an explicit name that is already taken is refused.
  • Keep terminal text readable after changing themes while the terminal is closed.
  • Template names, doc paths in agent chat, typed or pasted links with non-Latin domains, and agent names in thread titles now work in any script, and shortened titles and previews no longer cut an emoji or character in half.
  • Tags can now use any script, including Japanese, Chinese, Korean, Cyrillic and accented Latin, in front matter and inline #tags. Existing non-ASCII tags that were hidden now appear in the tag list. Letters written directly after an inline tag name, such as #wip日本語, now extend that tag.
View on GitHub
v0.86.17

Patch Changes

  • OpenKnowledge Beta now names ok-beta and ~/.ok-beta in its remaining setup, diagnostics, sign-in, embeddings and connection messages, and the bundled skills note the Beta command alongside Stable's.
  • OpenKnowledge Beta now names ok-beta, not ok, in its server-not-running and stuck-server hints, PATH setup copy, CLI help and the built-in terminal's Claude approval, and names ~/.ok-beta/secrets.yml for its search key.
  • Opening or closing the agents panel, and typing a long question in the Ask AI box, are now faster on large documents.
  • The desktop app and dev server run from source now use their own dev channel, with separate home folder, credentials, MCP entry and link scheme, so they no longer share or take over an installed app's state and projects.
  • The @ and / menus now open when typing with a Japanese input method: after an ideographic space, on full-width @ and /, and once the input method commits the character.
  • Projects in one git repository whose folder names differ only in non-Latin letters, spaces or punctuation now keep separate version histories, and such skill files keep separate discarded-edit backups. A history two projects already shared stays with the project that created it; the other starts fresh.
  • The Linux packages are now named after the app they install: openknowledge for Stable on deb and rpm, and openknowledge-beta for Beta. Existing installs update in place and keep their terminal commands.
  • Links and heading anchors in Japanese, Hindi, Thai and other scripts whose marks change a letter keep those marks, so [[ガラス]] no longer opens a page named カラス. Links the editor saved earlier without the marks, such as #カラス for ## ガラス, need the marks restored.
  • Suggested links now find page mentions in Chinese, Japanese, Thai and other text written without spaces, and report the right position when the text contains characters such as İ.
  • Converting a page to a template no longer overwrites an existing template with the same generated name; it picks the next free name such as imported-template-2. Importing under an explicit name that is already taken is refused.
  • Template names, doc paths in agent chat, typed or pasted links with non-Latin domains, and agent names in thread titles now work in any script, and shortened titles and previews no longer cut an emoji or character in half.
  • Tags can now use any script, including Japanese, Chinese, Korean, Cyrillic and accented Latin, in front matter and inline #tags. Existing non-ASCII tags that were hidden now appear in the tag list. Letters written directly after an inline tag name, such as #wip日本語, now extend that tag.
View on GitHub
v0.86.16

Patch Changes

  • The MCP write tool now saves an asset into the folder its path names, even when the project sets an attachment folder. A bare file name still goes to the attachment folder.
  • The MCP write reply for an asset now names the path where the file was saved, including when the file was renamed or placed in the attachment folder.
View on GitHub
v0.86.15

Patch Changes

  • Starting an agent CLI from Ask AI or Fix all with fish as your login shell no longer runs commands that the sent text happens to contain.
  • Fix the window controls staying light after switching to a dark theme on Linux.
View on GitHub
v0.86.14

Patch Changes

  • Editing text beside a multi-line component inside a list item, a blockquote that is not a GitHub alert, or another component no longer re-indents that component or turns it into a parse error.
View on GitHub
v0.86.13

Patch Changes

  • Keep recreated pages open and preserve their comments when earlier file removals finish late.
View on GitHub
v0.86.12

Patch Changes

  • Show translated error messages when an imported color theme is invalid.
  • History and agent-change diffs now render images, callouts and other components instead of empty boxes.
  • Changing a Codex chat's context window while its agent is still starting, or retrying a chat whose agent failed to start, no longer leaves a second agent running. The chat's first message is sent once when its context window changes during start.
  • Agent edits made during a Git branch switch now wait up to 20 seconds for it to finish before applying. An edit whose save the switch drops within that wait returns a branch-switched error instead of reporting success.
  • Text sent to a running or newly staged agent terminal now shows control characters as labels such as <control-0003>, so they can no longer end a Codex session or act as keystrokes. When the agent supports bracketed paste, the text arrives as one paste, which may display collapsed.
View on GitHub
v0.86.11

Patch Changes

  • Bug reports now show when Linux's display server disconnected the desktop app, and when a window stopped responding before the app closed.
View on GitHub
v0.86.10

Patch Changes

  • Edits to a page re-created at a path that was renamed, moved or removed outside the app are now saved to disk, instead of being reported as saved while only kept in memory. Agent writes to a path that is still gone now fail with a doc-removed error.
View on GitHub
v0.86.9

Patch Changes

  • An agent chat whose Retry or context window change failed no longer offers Resume, which could only fail because the chat had no agent session left.
View on GitHub
v0.86.8

Patch Changes

  • Closing an agent conversation while its catalog agent is still installing no longer leaves a broken npm cache entry or starts the agent anyway.
View on GitHub
v0.86.7

Patch Changes

  • Closing an agent chat while its browser was still installing no longer leaves a broken copy that keeps later chats from getting a browser.
View on GitHub
v0.86.6

Patch Changes

  • Fix recreated documents showing old content or failing to save edits after the original file is moved externally.
View on GitHub
v0.86.5

Patch Changes

  • Toggling the sidebar or resizing the window no longer stutters on documents with many tables.
View on GitHub
v0.86.4

Patch Changes

  • On macOS and Linux, stopping, restarting or updating OpenKnowledge while it installs a catalog-managed agent no longer leaves a broken npm cache entry. Custom agent commands are not covered, and a supervisor that stops everything OpenKnowledge started, such as systemd or Docker, still stops the install.
  • A table's header row no longer jumps or slips under body rows while a fast scroll freezes it, and the first header cell stays on top when a wide table scrolls sideways.
View on GitHub
v0.86.3

Patch Changes

  • Refresh the outline when returning to a document that changed while another document was selected, or when reopening the outline after its document changed.
View on GitHub
v0.86.2

Patch Changes

  • Sidebar chevrons and tree indent guides now use the intended muted color in the default light and dark themes.
View on GitHub
v0.86.1

Patch Changes

  • Clear stale outline headings and show the moved-page message when a document leaves its previous path.
View on GitHub
v0.86.0

Minor Changes

  • The desktop app can now stop updating itself: turn off Download and install updates automatically in Settings → About & updates. Check for updates still works. Dismissing the "ready to install" card now sticks, and a failing install stops asking after a few tries.

Patch Changes

  • Agent edits to a path with no document now fail with "No document at" and suggest the likely path, instead of "Text not found" or silently creating a file. Appending or prepending to a missing path now says it created a new document.
  • History and agent-change diffs now resolve relative links and inline images against the document's folder, so links to existing pages beside it no longer show as broken.
  • Open in default app now reveals folders, app bundles, extensionless files and links whose real file has a different extension in the file manager instead of opening them. More script and installer types, such as .py, .tool and .cpl, are blocked too.
  • An agent thread's status line now says "Installing" rather than "Starting" while the agent is downloaded and installed ahead of launch.
  • Document, template, skill-body and Markdown bundle-file writes now reject unsupported control characters with actionable errors, including template writes from agents and the app. Stored bytes are not rewritten; existing templates, skills and Markdown bundle files must have these characters removed before full saves or edits.
View on GitHub
v0.85.0

Minor Changes

  • The desktop app's Settings now has a searchable About & updates page with the installed version, a Check for updates button and release notes, and the Help popover shows the version with a Check for updates action.

Patch Changes

  • A crash while saving the link or tag index cache no longer leaves a damaged cache behind.
  • Agent writes to a busy local project now answer as soon as they are saved, carrying a link-check-deferred warning when link checks were skipped. A write refused because the project is overloaded now says that nothing was saved, so it is safe to retry.
  • Typing in a Markdown file that uses Windows (CRLF) line endings no longer converts the edited lines to LF.
  • Editing a Markdown file that uses Windows (CRLF) line endings no longer duplicates the document or drops text.
  • Deleting an empty bullet in unusually indented Markdown no longer brings the bullet back.
  • The Help menu footer no longer cuts off "About & updates" or scrolls sideways when the version number is long.
  • ok init now names each user-global skill correctly in its summary and shows how to add starter content even with --no-mcp.
  • Moving many files that git does not track yet, one after another, is faster, because a rename no longer asks git about each of those files separately.
  • Renaming or moving files no longer waits for version history to save before it completes, so moving many files in a row is faster.
  • Settings… in the project navigator now opens Settings with your preferences and hotkeys instead of the integrations dialog. Use Set up OpenKnowledge integrations… to connect AI tools.
  • Settings → Git now names the GitHub host and account you are connected to, and says how to switch or sign out of a GitHub CLI account.
  • Counting skill installs on skills.sh is now off by default. Turn it on in Settings → Preferences → Count skill installs publicly; a choice you already made is kept.
  • OpenKnowledge now refuses to set up a project at the top of a drive, and the desktop app also refuses system folders. Open folder reports an error when the picker closes without a folder.
  • The setup dialog now shows the full project folder path and counts a single markdown file correctly.
  • First-launch setup no longer pre-selects connecting your AI tools, installing the discovery skill, or adding ok to your terminal; tick the ones you want. Its pointer to Settings now names the Agent connections pane.
  • ok init no longer reinstalls a built-in skill you uninstalled in Skills Studio. Name it with --skills to install it again.
  • Running open-knowledge-beta open, or opening a Markdown file from the Beta command line, now opens it in the OpenKnowledge Beta app.
  • Skills Studio now says a skill is not added to any AI tool yet instead of claiming no AI tools were detected. The title-bar build label no longer looks clickable; it shows the app version on hover and keyboard focus and announces it to screen readers.
  • The server no longer stops responding for a minute or more after startup while it reads large installed skills, which made the first MCP call time out.
  • A browser tab left open while ok is upgraded now asks you to reload, and saves your edits before it does.
  • Local telemetry now records whether the editor ran in OK Desktop, a browser tab or an AI editor's browser pane, on server HTTP spans and logs and on opt-in frontend traces. The value leaves your machine only in a bug report you send or through OpenTelemetry export you enable.
View on GitHub

Minor Changes

  • Links to files that exist but are excluded by .gitignore or .okignore now say so in the Problems pane, the Links panel, and agent write results, with the .okignore re-include hint, instead of claiming the file does not exist.
  • Links, backlinks, and the Problems pane now match documents, files, and folders whose names differ only in Unicode normalization (NFC vs NFD), and such images and files now load on Linux too. In the editor, markdown asset links now match parent folder names case-sensitively; file names stay case-insensitive.

Patch Changes

  • Links, images, and reference definitions written with an angle-bracket destination such as [René](</People/René.md>) now open the path inside the brackets instead of a literal <…> target, and still save byte-for-byte as written.
  • Cmd-click on a linked code file or extensionless file now opens it in a new app tab instead of a tab showing a 404 or an empty editor.
  • A link to an existing file with no extension, such as a Makefile, now opens the file preview on click instead of only showing the link popover, and agent write results no longer report it as a missing page.
  • Raw asset requests whose path contains #, an encoded slash, a backslash, or a ., .. or empty segment now return 404 for any file. Ignored files can no longer be reached this way, and files with a backslash in their name are no longer served on macOS or Linux.
  • Auditing a single file that has a same-named .md or .mdx sibling no longer reports links to existing images, files, and folders as missing.
  • A [[file.png]] or ![[file.png]] whose file does not exist now appears in the Problems pane and the Links panel's local files, like a missing markdown link does; an existing file, by path or by file name, does not.
  • ![[file.png]] embeds now resolve by file name anywhere in the project, including folders that hold no markdown document and names that differ only in Unicode normalization.
  • ![[folder/file.png]] embeds now show their file when the embed's letter case or Unicode normalization differs from the file's path, as [[folder/file.png]] links already do.
View on GitHub
v0.83.2

Patch Changes

  • Crash reports now attach only the crash dump from the crash that prompted them. If that dump can't be added, the report says so instead of attaching a different one.
  • Overlapping projects and previews now refuse to start rather than write the same files. Close overlapping previews before opening a project, restart existing servers after updating, and restart the parent after creating a nested project.
  • Full bug reports and ok diagnose bundle now include what the operating system recorded about the app being ended, such as memory-pressure or out-of-memory kills, hangs, and shutdowns and restarts, so unexplained exits can be diagnosed.
  • Settings no longer offers the Auto sync modes before it knows the project has a Git remote. Settings and the sync menu show the Shared default sync mode when you haven't picked your own, and Settings explains that the Shared default only reaches teammates when Config sharing is Shared.
  • When Check for updates… finds a new version but its download fails, the app now shows an error instead of staying silent, and "Checking for updates…" stays visible during the check, including in Settings.
  • Stop the app and browser tabs from rewriting the file list into their disk cache on every refresh, which could add up to hundreds of gigabytes of disk writes in busy projects.
  • The empty editor's "From template" list now says when a very large knowledge base had too many folders to list every template, and shows its count as a minimum.
View on GitHub
v0.83.1

Patch Changes

  • When a folder is opened using another spelling of its path, edits are saved, links and embeds find existing files, and diagnostic bundles mask both spellings of that path.
  • Keep explanations visible when generated-index settings updates are rejected.
  • Keep sidebar focus and scroll position steady when the open document appears during a background refresh, while highlighting its row and preparing it for entry when focus is elsewhere.
  • Edits and deletes made through MCP right after the server starts now reach disk immediately, instead of waiting minutes for the link index to finish building. Until it finishes, write results carry a link-check-deferred warning in place of link checks.
  • Keep successfully deleted items out of the sidebar and close their tabs when a later deletion fails.
  • Prevent delayed observations of earlier saves from incorrectly blocking newer document writes with a conflict.
View on GitHub
v0.83.0

Minor Changes

  • Store an access token for any git host with ok auth token --host <host> --username <username> or from Settings → Git. ok auth status reports it without contacting GitHub. While OpenKnowledge runs, sync uses a stored token ahead of credentials git saved elsewhere for that host.

Patch Changes

  • Allow editing again after resolving and staging a Git conflict, including when Git replaces the file.
View on GitHub