v0.29.0
Released Jul 10, 2026. Part of the OpenKnowledge changelog.
Minor Changes
First-class support for Google Antigravity — the agentic IDE and the
agyterminal agent (the Gemini CLI's successor).ok initnow registers the OpenKnowledge MCP server for Antigravity, writing the standardmcpServersentry (the same resilient launcher every other editor gets) into Antigravity's single user-global config at~/.gemini/config/mcp_config.json, shared by the IDE andagyalike. Antigravity has no project-scoped MCP config, so — like Claude Desktop and OpenClaw — it registers once at user scope, gated on the~/.gemini/home existing so a config is never written for a tool that isn't installed. It also appears in the macOS desktop app's consent dialog and is healed by the startup repair/reclaim sweeps.Antigravity also joins the docked-terminal launch registry: the OpenKnowledge desktop app's "Open in Antigravity" action launches
agy '<prompt>'in the docked terminal, scoped to the current doc, folder, or project. The row appears only whenagyis detected on yourPATH. A new integrations docs page covers MCP setup and theagyCLI.Built-in terminal now auto-approves OpenKnowledge's own tools for agents it launches, so the read/write loop runs without a per-call approval wall. Claude gets an allow-list (OK's MCP tools + the
ok opencommand) with a deny-list that keepsdelete/move/share_link/installprompting; Codex gets its per-serverapprovemode. Other shell commands, non-OK file edits, and other MCP servers stay gated as before. Applied per launch (nothing written to your CLI config files). Toggle in Settings → Terminal ("Let agents use OpenKnowledge without asking",agents.autoApproveOkTools), on by default, per machine. When Codex is installed but OpenKnowledge isn't configured for it, the toggle says so instead of letting Codex quietly keep asking.
Patch Changes
Fix "clone to a new folder" (Open shared document) failing with
Use of "EDITOR" is not permitted without enabling allowUnsafeEditorfor anyone who hasEDITORorGIT_EDITORset in their environment — i.e. most developers.ok cloneruns git as the user with the user's own environment, and simple-git 3.36 refuses to run when it sees an editor env var present (it checks presence, not value) unless explicitly told the env is trusted. The clone path already opted into the sibling PAGER / SSH / askpass flags for the same reason; this adds the missingallowUnsafeEditoropt-in. A clone never launches an editor, so honoring the env is safe.Also hardens the background sync path: the server's
git mergenow runs withGIT_MERGE_AUTOEDIT=no, so a merge commit can never launch an editor and hang the TTY-less sync process.Fix the
writeandeditMCP tools failing with a schema-conversion error on constrained-decoding hosts like LM Studio (Error resolving ref #/definitions/__schema0). Theirfrontmatterfield advertised a recursive JSON Schema ($ref: "#/definitions/__schema0"); LM Studio — and some function-calling APIs like Gemini — can't resolve an intra-schema$refin a tool definition and reject the whole tool. Claude and most MCP clients resolve it leniently, so this only surfaced on local-inference hosts.The
frontmattervalue now advertises a flat,$ref-free JSON Schema (scalar | array | object | null), while a runtime refinement re-applies the exact recursive validation — so accepted/rejected inputs are unchanged for every client and every write path (nestednullis still rejected, deep nesting and heterogeneous arrays still accepted). Added a test that compiles every tool's input and output schema and fails if any emits a$ref, so this can't silently regress.Keyboard shortcuts for staging a selection into an AI CLI in the terminal, plus new terminal tabs:
- ⌘J (Show/Hide Terminal): with text selected in the editor, ⌘J stages that selection into an AI CLI's input in the terminal — not submitted, so you can add context and press Enter yourself. If the active tab is already running a CLI (claude/codex/…), the passage goes into its prompt (no screen wipe); otherwise a new CLI tab opens and the passage is staged into it. With no selection, ⌘J toggles the terminal as before.
- ⇧⌘J: opens a new terminal tab. With text selected, it opens a new CLI tab with the passage staged into its input; with no selection, it starts a new chat with your preferred CLI.
The passage is grounded the same way the "Ask AI" selection button does (doc reference + text). Nothing is auto-run — the selection is staged for you to review, extend, and send. Brings AI-in-terminal keyboard parity with Cursor/Zed/VS Code.
Add LM Studio as a supported AI tool.
ok initand the desktop consent dialog now register the OpenKnowledge MCP server into LM Studio'smcp.json, so a locally-hosted model in LM Studio's chat can read, search, and write your knowledge base through OK's tools — fully local inference, nothing leaves your machine.LM Studio is an MCP host that follows Cursor's
mcp.jsonnotation, so the entry is the same resilient stdio launcher every other editor gets. It's user-global only (no project-scoped config, like Claude Desktop). OpenKnowledge probes both the documented~/.lmstudio/mcp.jsonand the location LM Studio actually uses on macOS (~/.cache/lm-studio/mcp.json, per lmstudio-ai/lmstudio-bug-tracker#1371) and writes wherever LM Studio already keeps its config.