Native integrations

September 20, 2026 ยท View on GitHub

Jev Kit shares one runtime and five judgment tools across hosts. Native packaging changes installation and discovery; it does not automatically intercept actions, prune context, lower reasoning effort, or enable the experimental browser loop.

Install, update, remove

./jev install --hosts claude,opencode
./jev update --source "$PWD"
~/.local/share/jev-kit/jev status
~/.local/share/jev-kit/jev uninstall --hosts claude

auto prefers native integration. The CLI reports each selected integration and any fallback reason. A missing host CLI or Muse's explicit unavailable-build response selects MCP compatibility. Other CLI failures stop the operation. --integration native requires native support; --integration mcp explicitly selects compatibility for the seven configurable hosts. Codex and Pi retain their existing native integrations in every mode. To change an already-native host back to MCP, uninstall that host, then install it with --integration mcp.

Muse support is probed in the selected user environment. The same binary can reject plugins in an empty HOME and enable them in an existing configured environment. Native setup explicitly approves the owned mcp_server capability and verifies trusted_enabled; a later manual approval revocation stops managed updates.

Managed updates preserve ownership of recorded MCP entries and Skill links. They refuse foreign entries, changed links, modified native package files, and disabled registrations. Native packages carry physical Skill files, while MCP starts the shared absolute launcher. OpenCode registers the tools directly through its JavaScript adapter and keeps a standalone Skill. Credentials remain outside packages and configuration.

The shared runtime means updates apply to all managed hosts together. Private receipts retain before-images and rollback failures. Ordinary failures attempt rollback; a crash or concurrent external edits can require manual repair. Native CLI commands can retain their own caches, trust records, or policy tables after removal. The manager removes its registrations and owned package files and does not restore old whole-file settings over unrelated changes.

Formats and evidence

Validated on macOS on 2026-09-20. These are separate acceptance layers:

HostNative mechanismCurrent evidence
Codex.codex-plugin/plugin.json, dedicated local marketplaceNative CLI lifecycle checked in an isolated environment
Claude Code 2.1.277.claude-plugin/plugin.json, relative marketplace source, .mcp.jsonReal isolated CLI lifecycle; installed manifest MCP handshake, five tools and offline call
OpenCode 1.18.31Config plugin array, bundled object export with server()Real host API discovered five tools and object schemas; direct bundled executor offline call
Muse 1.3.0-R3401.1.muse-plugin/plugin.json, explicit MCP capabilityReal project-scope A-to-B lifecycle using the configured user environment, with MCP capability approval and trusted_enabled readback; empty HOME falls back to MCP + Skill
Grok 1.0.34Root plugin.json, .mcp.json, native plugin CLIReal isolated CLI lifecycle; installed manifest MCP handshake, five tools and offline call
Gemini CLI 0.60.0gemini-extension.json, native extension CLIReal isolated CLI lifecycle; installed manifest MCP handshake, five tools and offline call
Cursor 3.20.17Physical folder at ~/.cursor/plugins/local/jev-kitPackage, lifecycle files, MCP transport and offline call verified; editor UI discovery remains unverified
VS Code 1.138.0Agent Plugins 1.0 manifest, user chat.pluginLocationsPackage/schema, settings lifecycle, MCP transport and offline call verified; Copilot UI discovery remains unverified
PiBundled native extension + SkillSDK loaded the tools; real Jev call completed

The deterministic offline call supplies an absent quote and expects quote_not_found with zero provider requests. For Claude/Gemini/Grok, the MCP test launches the command from the host-installed manifest; it does not claim a model chose to use Jev. OpenCode's public local API exposes tool discovery but no direct execution endpoint, so its executor was called separately without a model request.

The newer OpenCode V2 adapter uses ctx.tool.transform, declares the jev namespace and registers the same five operations. It has contract tests only; there is no live V2 acceptance claim. A runtime lacking the documented registrar fails explicitly rather than silently loading an empty plugin.

All nine native integrations passed configuration/inventory readback on the development Mac. The installed shared MCP runtime also completed a real Jev evidence request on synthetic text (supports, no review required). This verifies the common runtime, not model-triggered use in every host. The offline suites cover host lifecycle, ownership conflicts, rollback and runtime contracts.

status checks package hashes, registration ownership and native CLI inventory. It is not a model-usage or editor-UI check. Restart affected hosts after changes. JSONC settings are refused safely; this installer currently supports strict JSON and Grok TOML on macOS/Linux, not Windows or remote editor environments.

Sources