Configuration and installed files

September 20, 2026 ยท View on GitHub

Installer switches

SwitchEffect
no selection switchDetect installed binaries or known config roots; install those integrations
--allConfigure all eight supported application targets
--harness NAME ...Configure only the selected targets
--dry-runShow paths/actions without writing configuration, backups, runtime, or a receipt
--home PATHUse a test/alternative user home; ignore harness environment-root overrides
--prefix PATHPlace the shared installed runtime/data in a different directory
--workspace PATHPin generated MCP server processes to one existing worktree
--opencode-api auto|v1|v2Choose the matching separately implemented plugin API
--uninstallGuardedly restore external integration files using the receipt
--no-busDo not participate in jev-bus; claim every hook this package supports, as in 0.1.0
--force-carrierTake the OpenCode transform hook even if another jev-bus package currently carries it

Detection executes only opencode --version when available to select its plugin API, with a timeout. It does not download applications. --all is explicit configuration of absent targets, not evidence that they are installed.

jev-bus registry

Coordination with another context-transforming package (see BUS.md) is recorded in ~/.jev/bus/v1/registry.json, overridable with the JEV_BUS_HOME environment variable. The installer negotiates before it plans, so --dry-run prints the resulting jev_bus block without writing anything.

The registry is additive metadata, never a file-ownership claim: install-receipt.json remains the sole record of which files this package owns. Uninstalling removes only this package's entries, and a vacated carrier slot is left empty rather than reassigned.

Default external files

TargetPaths touched
Claude Code~/.claude.json; ~/.claude/settings.json; ~/.claude/skills/jev-context/SKILL.md; ~/.claude/commands/prune.md
Codex~/.codex/config.toml; ~/.codex/hooks.json; ~/.agents/skills/jev-context/SKILL.md
Hermes~/.hermes/config.yaml; ~/.hermes/skills/jev-context/SKILL.md
OpenCodeone of ~/.config/opencode/opencode.json or opencode.jsonc; V1 plugins/jev-context.js; skills/jev-context/SKILL.md; commands/prune.md only when this package carries OpenCode on the bus
OpenClaw~/.openclaw/openclaw.json; ~/.openclaw/skills/jev-context/SKILL.md
Gemini CLI~/.gemini/settings.json; ~/.gemini/skills/jev-context/SKILL.md
Cursor~/.cursor/mcp.json; ~/.cursor/skills/jev-context/SKILL.md
Copilot CLI~/.copilot/mcp-config.json; ~/.copilot/skills/jev-context/SKILL.md

Existing /prune commands not owned by this package are retained and reported, not overwritten. A conflicting skill file is also not overwritten. V1 and V2 OpenCode registrations must not coexist; uninstall before changing API families.

The following environment overrides are read unless --home is supplied: CODEX_HOME, HERMES_HOME, OPENCLAW_STATE_DIR, CLAUDE_CONFIG_DIR, XDG_CONFIG_HOME (OpenCode). Claude's global MCP registry remains ~/.claude.json in this implementation, even with CLAUDE_CONFIG_DIR; verify custom/profile setups in the dry run. OPENCLAW_CONFIG_PATH, arbitrary named profiles, portable installs, remote containers, and per-project policy layers are not auto-discovered. Do not infer that a global entry takes precedence over an organization policy.

Installed prefix

~/.jev-context-fabric/
  runner.py
  runtime/jev_context/
  adapters/
    adapter-config.json
    bridge.mjs
    openclaw/
    opencode-v1/
    opencode-v2/
  bin/jev-context
  bin/jev-context.cmd
  config.json
  generic-mcp.json
  install-receipt.json
  backups/<transaction>/
  memory.sqlite3                 # created when the core first runs
  http-token                     # created only for the optional HTTP server

Normal runtime imports no third-party package. The extracted installer retains vendored parsers and is used for uninstall/reinstall; keep the ZIP or extracted package. The installed runtime does not depend on the extracted directory remaining at its original path.

The default CLI memory home can be overridden with JEV_CONTEXT_HOME or global --home. Generated hooks/MCP entries contain an explicit installed home, so moving it requires reinstalling/updating those entries. Use identical memory homes for cross-harness sharing.

Core flags

config.json defaults to local inference, automatic capture/injection enabled, native prune views disabled, 6,000 evidence characters, 16,000 maximum remote-state characters, a four-second network timeout, and eight protected recent messages.

python3 run.py config --disable-capture
python3 run.py config --disable-injection
python3 run.py config --enable-capture --enable-injection

Disabling capture stops automatic hook capture and native-message snapshots; supported context transforms then skip pruning. Explicit local capture and model-requested jev_capture are still deliberate capture operations. Disabling injection suppresses automatically injected evidence, not explicit retrieval. An approved prune view is independent; reset it explicitly to restore the original view.

Each CLI global option (--home, --workspace) must appear before the subcommand. Installed launchers already supply --home, but callers may pass a later global --home before the subcommand to override it deliberately.

Validation after installation

Open an actual repository in each target, call jev_status, and check workspace. Submit a nonsensitive unique test phrase and use a normal tool in a hook-enabled host. Call status again and confirm its native session/harness appears in captured sources. Retrieve the phrase and hydrate its source. On MCP-only targets, explicitly call jev_capture; automatic capture is not installed there.

For OpenCode, run the explicit plan/approval workflow in a disposable test session, inspect the next model-context transform, and verify protected user/tool/recent messages remain. doctor and file existence cannot establish that the host accepted a hook, consumed returned context, or omitted messages.

For OpenClaw, verify the local plugin is enabled and the native jev_retrieve tool is allowed. Automatic recall fails closed without finalized tool authority. For Hermes, review the first-use shell-hook approval prompt. Rejected approvals are preserved.