Skip to main content

JevCompass

A compass choosing a path among developer tools and skills

Give Codex a map of the tools and skills it already has.

A useful skill can be buried in your setup. JevCompass discovers installed candidates locally, narrows them with a reviewed catalog, and offers a short suggestion when a task has a clear match. It works with Codex Desktop and CLI hooks, without replacing your agent or gating everyday commands.

  • Start fast: try explicit advice from the terminal before installing any hooks.
  • Keep control: suggestions never run tools, grant permissions, or override required checks.
  • Choose your privacy level: local advice works without a key; optional Jev ranking sees only coarse candidate metadata through OpenRouter.

Get started · See real output · Understand the boundary · Check the evidence · Contribute

Quick start

Requirements: Python 3.11 or newer, pipx, and a Codex installation with hooks enabled. Install the published package on PyPI:

pipx install jevcompass
jevcompass recommend --category review --domain python

To install from source instead, clone this repository and run pipx install . from the checkout. For a reproducible version, use pipx install jevcompass==0.1.14. The latest source on main may contain unreleased changes.

The recommendation is environment-dependent: it can show local advice, an unranked shortlist, or no recommendation. The manual command uses explicit category/domain metadata and never takes a task prompt.

To enable automatic advice, first inspect what would change, then install:

jevcompass install --dry-run
jevcompass install
jevcompass doctor

What changes: jevcompass install backs up an existing Codex hooks.json and registers two advisory hooks. Review and trust the registrations in Codex's /hooks screen, then start a fresh session. The default config is under ~/.codex; set CODEX_HOME to use a different Codex home. A successful doctor check confirms local registration, not that Codex loaded or delivered advice.

Verify advice in a fresh session

After jevcompass install, inspect the two registrations in Codex /hooks, trust them if prompted, and start a new Desktop or CLI session. For a focused check, give Codex a substantive task such as planning a small Python package and ask it to report any JevCompass advice ID and suggested IDs from its initial context before its first tool call. An absent ID means that session did not receive advice; doctor and local hook metrics alone cannot prove delivery. The advisor may intentionally stay silent when only a generic shell command is available.

If your Codex host does not load either hook, run jevcompass doctor --json to distinguish registration from recent invocation, and use the explicit jevcompass recommend --category project-setup --domain python command while investigating. Never treat a manual result as proof that a hook delivered context to an agent.

60-second demo

After the quick start, ask about setting up a Python project:

jevcompass recommend --category project-setup --domain python

For example, on a Linux checkout with OPENROUTER_API_KEY unset, the CLI returned this local shortlist (excerpt):

Local unranked fallback; Jev did not select these candidates.
- tool `exec_command`: Codex built-in exec_command for bounded local shell commands
- local command `git`: Inspect repository changes and history
- skill `create-plan`: Create an implementation plan grounded in repository context
- skill `python-packaging`: Build and distribute a Python package

Your shortlist depends on the tools and skills actually installed. An unranked fallback is not a Jev choice. jevcompass install --dry-run previews the two hook registrations without writing them; after installation, trust them in Codex /hooks and start a fresh session. With an OpenRouter key, an eligible task can ask Jev to rank safe metadata and may incur provider charges. Evidence and current limits distinguish hook delivery from measured benefit.

How it works

  • Prompt hook: UserPromptSubmit classifies an eligible prompt locally, then checks reviewed candidates discovered on the machine. Explicit Codex Desktop/CLI hook or skill setup can point to the installed openai-docs skill; routine prompts and unavailable skills can remain silent.
  • Subagent hook: SubagentStart can suggest role-level candidates for Codex's built-in explorer and worker roles. That event does not include the subagent's task text.
  • Optional spawn advice: jevcompass install --spawn-advice adds a narrowly matched PreToolUse hook for agent creation only (Agent, spawn_agent, or collaborationspawn_agent). It locally classifies readable child task text or a descriptive task_name, then sends only coarse metadata and reviewed candidate descriptions to Jev. It never gates a spawn, shell, Git, Helm, or network command. If neither field provides a clear category or no useful candidates exist, it stays silent. A normal reinstall preserves the opt-in; jevcompass install --disable-spawn-advice removes it. Review and trust the updated hook in /hooks, then start a fresh session. This is experimental and disabled by default; verify the child sees an advice ID before its first tool before relying on it.
  • Manual mode: jevcompass recommend --category CATEGORY --domain DOMAIN [--role ROLE] requests advice using explicit metadata. Use jevcompass recommend --help for accepted values.
  • Uncertainty: Local fallback advice is labeled unranked. If there is no useful candidate, JevCompass can stay silent. A configured MCP server is not assumed to be callable in the active session.
  • Control: Advice does not run tools or skills, change permissions, block commands, or replace project instructions and required checks.

For setup diagnostics, run jevcompass doctor; use jevcompass --version to identify the installed command and jevcompass doctor --json for structured output. The optional --test-jev flag sends one synthetic, billed request.

Privacy

Prompt classification and candidate discovery happen locally. When optional Jev ranking is used, JevCompass sends an allowlisted category, domain, role, criteria, and generic descriptions of reviewed candidates to OpenRouter's Decisions API. It does not send the raw prompt, source code, diffs, repository paths, memory contents, or private skill descriptions in that request. OpenRouter receives the API key in the HTTPS authorization header.

Local metrics contain event/category/outcome/timing and a short advice ID; they do not record the prompt, model response, paths, or memory content. Local cache entries contain selection metadata. As with any external service, review OpenRouter's terms and data handling before enabling remote ranking.

Remote ranking is optional. Without a key or a reliable Jev response, JevCompass can use a small local shortlist when useful; otherwise it can stay silent. Network errors and timeouts do not block the Codex task.

Compatibility

  • Python 3.11+
  • Linux: local runtime and CLI checks have been performed.
  • macOS: targeted, but runtime behavior has not been verified.
  • Windows: not a verified target.
  • Codex Desktop and CLI: the default installation registers UserPromptSubmit and SubagentStart; optional agent-spawn advice adds only a narrowly matched PreToolUse hook. Host delivery is version-, trust-, and session-dependent. Fresh Desktop prompt delivery and broad subagent coverage remain unverified.

JevCompass does not infer Codex Plan UI mode. Check /hooks and start a fresh session after installation or a Codex upgrade.

What has been verified

Evidence is deliberately limited to the environments tested:

  • A fresh isolated Codex CLI 0.155.1 smoke using the published v0.1.12 wheel received openai-docs advice before its first tool, with a matching local hook ID. Additional synthetic CLI pairs confirmed remote Jev advice IDs before the first tool. The published v0.1.13 wheel adds bounded skill use/skip conditions; these checks do not prove broad coverage or effectiveness.
  • The initial four blinded synthetic CLI pairs tied on task quality. Later focused pairs had mixed results, including one baseline win and one treatment win; no repeatable speed or quality improvement has been demonstrated.
  • One native Desktop explorer child reported an advice ID before its first tool in a correlated smoke test. Other subagent probes were inconclusive, and fresh Desktop prompt delivery has not been confirmed.
  • The published v0.1.14 package is available on PyPI and was installed with pipx from the registry in an isolated Python 3.11 profile: the default installation registered two hooks, no PreToolUse gate, and doctor passed. The repository's later changes are not yet part of that package.
  • The v0.1.14 source includes the changes from PR #40 (respect installed skill MCP prerequisites), PR #41 (C05 equal-environment comparison tied on blind scores), and PR #42 (opt-in agent-spawn advice). The spawn check was an isolated CLI source-checkout run: the child saw an advice ID before its first tool using the descriptive task title because the host message was encoded. The v0.1.14 wheel also passed an isolated pipx install and clean synthetic CLI delivery check: the child's context contained a spawn advice ID before its first tool, though it did not repeat the ID before that tool. Desktop and macOS remain unverified, and no outcome benefit has been demonstrated. The default install remains two advisory hooks; routine commands are not gated.
  • macOS runtime behavior and broad usefulness remain unverified.

These checks do not establish that recommendations improve outcomes. If you test JevCompass, please share a reproducible example of advice that helped—or a case where silence was the right result.

Soon available

More host validation, narrower coding recommendations, and a measured 20-case comparison are tracked in the roadmap. These are planned work, not shipped capabilities or proven productivity gains.

Contribute

Issues and pull requests are welcome. Helpful contributions include reproducible compatibility reports, careful documentation fixes, and synthetic tests that preserve the privacy boundary. Please do not post credentials, raw prompts, private code, or unredacted logs.

License

JevCompass is licensed under the Apache License 2.0. Copyright 2026 Toni Nowak.

Release files for jevcompass 0.1.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jevcompass 0.1.15
File Size Uploaded
jevcompass-0.1.15.tar.gz 37.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jevcompass 0.1.15
File Interpreter ABI Platform
jevcompass-0.1.15-py3-none-any.whl Python 3 none any Details

Total release size: 75.1 kB

Release files / jevcompass-0.1.15.tar.gz

Download URL jevcompass-0.1.15.tar.gz
Size 37.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7b008e4583a9b0aa9e8995b89813ae941a0d66a9b11da50b8895db3f350a3ca9
BLAKE2b-256 checksum
How to use checksums
e8d6d61001ac3ef8b4b4fc3932094fbaebe90b2d0e3c6e1c6371aaf8ff077015
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / jevcompass-0.1.15-py3-none-any.whl

Download URL jevcompass-0.1.15-py3-none-any.whl
Size 37.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e364bb3530b35ac4447a76595e388803133bcb9c7a3e540ec439879582d2941a
BLAKE2b-256 checksum
How to use checksums
a87cb940997a0a007b2516a6c45c48d3b8941b8c398081f2317828de911ac2c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.16

2 release files

This release

0.1.15 This release

2 release files

0.1.14

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page