jev-router.nvim
Neovim intent router: Jev classifies an AI command as read file, edit code, run command or general question and dispatches it.
Overview
jev-router.nvim is an intent router for Neovim. It sends the user's prompt as state to Jev through OpenRouter's Decisions API, asks one choice question about intent, and routes to one of four handlers: read_file, edit_code, run_command or general_question. A confidence threshold (default 0.6) marks uncertain routes, with configurable callbacks.
The read_file route is native: a follow-up Jev Choice over candidate files (open buffers plus git ls-files) resolves which file the prompt refers to and opens it in a split, falling back to a picker when confidence is low or the API is unavailable. The run_command route asks a chat model to generate a single shell command, which you preview, edit and confirm before it runs in a terminal split. It needs Neovim 0.10+, curl and an OpenRouter key, with no external Lua dependencies.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | intent: what does this command want? | read_file · edit_code · run_command · general_question |
| Choice | Which candidate file does the prompt refer to? | — |
How it works
- Run :JevAsk with a prompt
- Jev classifies the intent
- Below the confidence threshold, notify as uncertain
- Dispatch to the matching handler (e.g. open file or confirm a command)
Strengths
- Semantic file opening without exact names
- User confirmation before running commands
- No Lua dependencies
Caveats
- run_command uses a separate chat model
- Requires an OpenRouter key
- Prompts are sent to external services
Getting started
With lazy.nvim, add { "Mawfyy/jev-router.nvim", opts = { confidence_threshold = 0.6 } } and set OPENROUTER_API_KEY.At a glance
- Type
- Service
- Status
- prototype
- Language
- Lua
- Runtime
- Neovim plugin
- Has code
- yes
Use cases and integrations
How curated lists describe it
An intent router for Neovim that classifies AI commands with Jev (TypeSafe's System One model) via the OpenRouter Decisions API, then routes execution to the matching handler.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
The intent of a typed command and, for read_file, which file is meant.
Does it run commands automatically?
No. Generated commands are previewed for you to edit and confirm.
Which API does it use?
OpenRouter's Decisions API.
Related projects
Open-source AI email assistant; listed as using Jev as an optional classifier for email intent and triage.
ProjectproductionTypeScriptHermes Desktop plugin where Jev maps misspelled, shortened or meaning-based slash commands to real ones at ≥0.85 confidence.
PluginbetaJavaScriptCLI wrapper that, on an unknown subcommand, asks Jev which documented subcommand you meant by intent rather than spelling.
CLIprototypeGoNative macOS launcher and window manager that optionally uses Jev to match loose natural-language commands to known actions.
DemobetaSwiftAbleton Live controller where a one-sentence command in English or Japanese is turned into mixer, transport, clip and device actions.
ProjectbetaLocal-first desktop and Android attention workbench that extracts deadlines from WeChat and campus notices; Jev optional.
Projectbeta