jev-shell-history
Fish-style zsh autosuggestions where Jev ranks your recent history entries as you type.
Overview
jev-shell-history adds fish-style autosuggestions to zsh. As you type, it takes your last 100 distinct history entries and asks Jev which one you are most likely completing; the best match appears in grey after the cursor with its score, and you accept it with the right arrow, Ctrl-E or End. Accepting a suggestion fills it in but does not run it. There are two modes: a prefix mode when entries literally start with the typed text, and a replace mode when none do, so typing a description such as last 5 commits can surface git log --oneline -5.
The plugin hooks zle line redraws, kills any in-flight request on each change, and runs a TypeScript CLI in the background so the prompt never blocks; results apply only if the buffer is unchanged. Settings control history size, minimum characters, fuzzy-mode probability thresholds, highlighting, whether scores are shown, and an optional debug log of every request and response. It needs zsh 5.9+, Node 22+ and a TypeSafe API key, and makes one request per keystroke.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which recent history entry is the user most likely completing? | — |
| Yes / no | Does any entry complete the input?(inferred) | yes · no |
How it works
- Type at least two characters
- Plugin gathers recent distinct history entries
- Jev ranks the candidates in the background
- Top match shows in grey with its score
- Press right arrow or End to accept
Strengths
- Matches by meaning, not just prefix
- Prompt never blocks
- Configurable thresholds and display
Caveats
- One API request per keystroke
- Sends history entries to the API
- Requires Node 22 and an API key
Getting started
Clone into ~/.zsh/jev-shell-history, run npm install, export TYPESAFE_API_KEY and source the plugin in ~/.zshrcAt a glance
- Type
- Project
- Status
- prototype
- Language
- TypeScript
- Runtime
- zsh plugin with Node CLI
- Has code
- yes
Use cases and integrations
How curated lists describe it
Fish-style zsh autosuggestions: Jev ranks recent history as you type
AnotiaWang/awesome-decision-modelsFish-style Zsh history suggestion tool ranked by Jev, ordering candidate commands from local history based on context.
logicrw/awesome-jev-projectsFish-style zsh history autosuggestions ranked by Jev (TypeSafe).
wh000wh000/awesome-jev-liveRanks existing zsh history entries for inline completion; accepting a suggestion does not execute it.
cobanov/awesome-jevFish-style zsh history autosuggestions ranked by Jev (TypeSafe).
hellogumbo/awesome-jevFish-style zsh autosuggestions, ranked by Jev from your recent history.
MrJev/awesome-jev
Frequently asked questions
What does Jev decide?
Which recent history entry you are most likely trying to type.
Does accepting a suggestion run it?
No. It only fills the command line.
Will it slow down my shell?
Requests run in the background and stale results are discarded, so the prompt does not block.
Related projects
Developer preview adding Jev candidate reranking to the Rime (Squirrel) Chinese input method on macOS with a Ctrl tap.
Projectprototype- Jev Search★ 534
Plain-language web search where a decision model like Jev picks query, sources and time range, then ranks Search1API results.
AppproductionTypeScript MCP server over Apple developer docs and WWDC transcripts that uses hybrid search, then Jev relevance scores to rank results.
MCP serverproductionTypeScriptLocal long-term memory for coding agents with an optional Jev reranker that orders recalled memories.
ProjectproductionTypeScriptVolcengine's context database for agents, with a Jev rerank client that scores candidate documents with jev-latest as relevance.
LibraryproductionPython- jev-rerank★ 17
Jev as a calibrated reranker: query plus up to 30 documents in one call, one relevance Noul per document, benchmarked on BEIR.
ProjectbetaPython