Skip to content

jfind

find(1) with a semantic --like predicate: ordinary filters run locally and Jev judges whether each remaining file matches a description.

Demobeta

Overview

jfind is a command-line file search tool that works like Unix find with one extra predicate, --like, which matches files by what they are rather than by name. You can describe 'unit tests for the payment module' or 'the config that sets up logging' and get results ranked by confidence. Each candidate becomes a yes/no question to Jev, which returns a calibrated probability.

Everything else, including walking the tree, -name, -type, -maxdepth, -newer and .gitignore handling, runs locally, so only files that pass the ordinary filters are sent for a semantic check, by name or optionally with content. Output composes with xargs, fzf and pipelines via -print0. The README documents exactly what is sent to the API and the cost, and compares jfind with find, fd and ripgrep. It is distributed on PyPI as jfind-cli and needs Python 3.13+ and a TypeSafe key. It suits developers who know what a file is for but not what it is called.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this file match the description (e.g. handles user authentication)?—

How it works

  1. Walk the tree and apply local filters (name, type, depth, gitignore)
  2. Send each remaining file's name or content with the description to Jev
  3. Rank files by probability
  4. Print results or pipe them to other tools

Strengths

  • Only pre-filtered files are sent, limiting cost
  • Familiar find-style interface
  • Pipeline-friendly output

Caveats

  • File names or contents are sent to the hosted API
  • Requires Python 3.13+ and a key
  • Large trees can still mean many calls

Getting started

uv tool install jfind-cli, export TYPESAFE_API_KEY, then jfind . --like "unit tests for the payment module".

At a glance

Type
Demo
Status
beta
Language
Python
Runtime
CLI
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

  • Find files by describing them in plain English: find(1) with a semantic --like predicate, answered by TypeSafe.ai's jev model.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Whether each candidate file matches your plain-English description.

What gets sent to the API?

Only files that pass your local filters, by name or with content if you ask; the README details this.

Does it replace ripgrep?

No, it is for finding files by purpose; exact matches are still better with grep tools.

Related projects

  • Semantic grep that asks Jev a yes/no about every function for questions no regex can express, with cost reporting.

    Projectbeta
  • Deterministic code-graph context for coding agents on Postgres, AGE and pgvector, with optional Jev or local re-selection of symbols.

    MCP serverbetaPython
  • Claude Code plugin that adds Jev as an independent judge for review findings, debugging hypotheses, design options and search hits.

    Pluginbeta
  • Retrieval layer for Codex that finds evidence locally, optionally ranks sanitized excerpts with Jev, and returns bounded, cited evidence.

    Projectbeta
  • CLI and Claude Code plugin that reads each commit diff and counts capabilities gained, fixes and upkeep using narrow model judgments.

    PluginbetaTypeScript
  • DeepSeek Harness jev_search tool that runs ripgrep, scores every hit line with Jev, and returns only the top rows above a cut.

    PluginbetaJavaScript