Skip to content

jev-shell-history

Fish-style zsh autosuggestions where Jev ranks your recent history entries as you type.

Projectprototype

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

TypeQuestionAnswers
ChoiceWhich recent history entry is the user most likely completing?—
Yes / noDoes any entry complete the input?(inferred)yes · no

How it works

  1. Type at least two characters
  2. Plugin gathers recent distinct history entries
  3. Jev ranks the candidates in the background
  4. Top match shows in grey with its score
  5. 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 ~/.zshrc

At 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

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 serverproductionTypeScript
  • Local long-term memory for coding agents with an optional Jev reranker that orders recalled memories.

    ProjectproductionTypeScript
  • Volcengine's context database for agents, with a Jev rerank client that scores candidate documents with jev-latest as relevance.

    LibraryproductionPython
  • Jev as a calibrated reranker: query plus up to 30 documents in one call, one relevance Noul per document, benchmarked on BEIR.

    ProjectbetaPython