gitwtfhub

wtf is vague?

ic0e/vague — explained in plain English

Analysis updated 2026-05-18

0RustAudience · developerComplexity · 3/5LicenseSetup · moderate

TL;DR

A local Rust command line tool that searches your text files and images by meaning instead of keywords, using Ollama and CLIP.

Mindmap

mindmap
  root((vague))
    What it does
      Semantic file search
      Local, no cloud
    Tech stack
      Rust
      Ollama
      CLIP
    Use cases
      Find documents by meaning
      Search screenshots
    Audience
      Developers
      Power users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Find a specific document by describing its content instead of its filename

REASON 2

Search a folder of screenshots by what they show

REASON 3

Search images for embedded text like error messages using OCR

What's in the stack?

RustOllamaCLIPONNX Runtime

How it stacks up

ic0e/vague04amanrajj/netwatch0xr10t/pulsefi
Stars000
LanguageRustRustRust
Setup difficultymoderatemoderatehard
Complexity3/53/54/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Building from source needs a C++ compiler toolchain for ONNX Runtime bindings.

You can use and modify this freely, but if you run a modified version as a network service, you must share your source code under the same AGPL license.

Wtf does this do

vague is a command line tool, written in Rust, for searching your own files by meaning rather than by exact keywords, and it runs entirely on your own computer with nothing sent to the cloud. The idea is that a search like "that one legal file" should be able to find a tax document even if none of those exact words appear in it, because the tool compares the meaning of your query against the meaning of your files rather than matching text directly. It handles two kinds of files differently. Text files, including plain text, markdown, and PDFs, have their content turned into a numerical representation called an embedding using a local text embedding model named nomic-embed-text, run through Ollama. Images, including PNG, JPG, and WebP files, are embedded directly using CLIP, a model that understands the content of a picture, run locally through a library called fastembed. This means an image search like "screenshot of an error message" can find a matching picture even though the file was never tagged with those words. Text and image results are ranked together in one combined list, with their differing scoring scales normalized so they can be compared fairly. An optional flag adds OCR, meaning it extracts any readable text found inside images during indexing, so a search can also match words that appear inside a screenshot or diagram, at a small added cost of about four tenths of a second per image. Getting started means indexing a folder once, which downloads the required models to a local cache the first time, and then running search queries against that index whenever needed. The project ships prebuilt binaries for Windows, along with instructions for installing from source using Rust and the Cargo package manager on any platform, though building from source also needs a working C++ compiler toolchain because of how the underlying ONNX Runtime library is compiled. The project is still an early, work in progress release, and is licensed under the GNU Affero General Public License version 3.

Yoink these prompts

Prompt 1
Help me install vague and index a folder of my documents and screenshots.
Prompt 2
Explain the difference between how vague searches text files versus image files.
Prompt 3
Show me how to use the --ocr flag in vague to search for text inside screenshots.

Frequently asked questions

wtf is vague?

A local Rust command line tool that searches your text files and images by meaning instead of keywords, using Ollama and CLIP.

What language is vague written in?

Mainly Rust. The stack also includes Rust, Ollama, CLIP.

What license does vague use?

You can use and modify this freely, but if you run a modified version as a network service, you must share your source code under the same AGPL license.

How hard is vague to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is vague for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.