Docs

Ixos searches the files on your computer by keywords and meaning. It is one program, ixos, used three ways: the desktop app, the terminal, and AI agents over MCP. All three share the same settings, models and records.

Install

One installer. The small bootstrap executable from the releases page installs the shared CLI/engine, MCP and agent skill, verifies both models, and includes desktop by default. Windows and Linux on x86-64 and macOS on Apple silicon and Intel are supported.

Agent installation. These scripts download and verify the same binary installer. No Rust or Node is needed. They add ixos to your user PATH and verify the models from Hugging Face.

Windows, PowerShell
& ([scriptblock]::Create((irm https://github.com/Thunderboltdy-10/ixos/releases/latest/download/install-cli.ps1)))
macOS and Linux
curl -fsSL https://github.com/Thunderboltdy-10/ixos/releases/latest/download/install-cli.sh | sh

For CLI/MCP/skill only, append -NoDesktop on Windows, or use sh -s -- --no-desktop after the pipe on macOS/Linux. Open a new terminal after installation. Published engine and desktop releases are required for these links.

ixos update updates the CLI/MCP/skill; ixos update --desktop includes desktop. CLI and MCP suggest available updates, while desktop applies compatible engine and signed app updates on launch/login and restarts. Custom engine overrides are preserved.

After setup, everything works offline. Keyword search, grep and read never need a model. To install without a network, see setup and model.

How Ixos ranks

Every search runs two rankings and averages them.

PartHow it works
KeywordsBM25 over the full text of each file, including its path (k1 = 1.2, b = 0.75). Small spelling mistakes are corrected; names, paths, numbers and quoted text are left alone.
MeaningModel2Vec static embeddings on the CPU. Code files keep up to eight passages of at most 1,800 characters; documents keep one vector for the whole text.
CandidatesThe top 100 files by keywords together with the top 100 by meaning whose similarity is above 0.25.
ScoreHalf the cosine similarity plus half the keyword score divided by the best keyword score.
PassageWithin the chosen file, the passage closest to the query is picked, then its strongest keyword line anchors the excerpt.

Scores order the results; they are not probabilities. A query that is an exact identifier only matches files that contain it. Choose a mode with --mode:

ModeUsesNeeds a model
hybridKeywords and meaning. The default.Yes
lexicalKeywords only.No
semanticMeaning only.Yes

The two profiles use different models:

ProfileForModel
codeSource files in any language. The default.ixos-code
documentsPDFs, Word and other Office files, notes and text.ixos-documents

Quick search

Press Ctrl Space anywhere to open the quick search over whatever you are working in. Keyword results appear as you type; meaning is added a moment later and the list re-orders. The selected result shows its best passage beside the list. The shortcut can be changed in Settings.

The app lives in the tray. Closing a window hides it, so the next search starts warm, unless you turn off Keep running when closed.

Search window

The main window shows the full list on the left and the file on the right, scrolled to the passage, with your query highlighted. Three menus sit in the search bar:

MenuChoices
Search inAll folders, or one of the folders you chose in Settings.
Search forAutomatic, Code or Documents. Automatic picks from what the folders contain.
Remember filesSaved keeps a small record on each file so the next search is fast. Fresh writes nothing.

Settings

SettingWhat it does
FoldersThe only places Ixos reads. Nothing is chosen until you add a folder.
What you searchAutomatic, Code or Documents.
Remember filesWhether to keep records on files between searches.
Results to showHow many files each search returns.
Quick search shortcutCtrl + Space by default. Click and press a new combination.
Keep running when closedLeaves Ixos in the tray when its window closes.
Start with WindowsStarts Ixos in the tray when you sign in.
Saved recordsHow many records Ixos keeps in each folder, and a button to remove them.
ModelsDownload status for both models, with a retry if setup failed.
AI agentsThe commands that give Claude Code or Codex the same search.
Recent searchesA short local list, which you can clear.

Shortcuts

KeysAction
Ctrl SpaceOpen quick search
↑ ↓Move through results
EnterOpen the file
Ctrl EnterShow the file in its folder (⌘ Enter on macOS)
EscClear the search, or close quick search when it is empty

grep

Finds exact text or a regular expression. It follows the same ignore rules as search and needs no model.

Terminal
ixos grep "source_hash" --dir crates/ixos-core --fixed
OptionDefaultWhat it does
--dir.Folder to search.
-F, --fixedTreat the pattern as plain text.
-i, --ignore-caseIgnore letter case.
--context2Lines around each hit.
--limit10Number of files.
--jsonStructured output.

read

Prints lines from a file. PDFs and Office files are read as their extracted text, so line numbers refer to that text rather than pages.

Terminal
ixos read src/source.rs --dir crates/ixos-core --start 1 --lines 30
OptionDefaultWhat it does
--start1First line.
--lines40How many lines to print.
--endLast line, inclusive, instead of --lines.
--expected-source-hashRefuse if the file changed. See source hashes.
--charactersRead part of one very long line.
--character-offset0Where that part starts.
--jsonStructured output.

cache

Shows or removes the records Ixos keeps. Removing them is safe; Ixos rebuilds them on the next search. Only Ixos metadata is touched, never the files themselves.

Terminal
ixos cache stats --dir . ixos cache clear --dir . ixos cache clear --dir . --yes ixos cache clear --all --yes
CommandWhat it does
cache statsFiles with records, bytes used, entries in the fallback cache and records from older versions.
cache clearLists what would be removed. Nothing changes without --yes.
cache clear --yesRemoves the records under --dir, which defaults to the current folder.
cache clear --all --yesRemoves records in every configured folder and the whole fallback cache.

config

Shows the shared settings, or changes one. The desktop app reads the same file.

Terminal
ixos config ixos config limit 5 ixos config cache false ixos config locations '["/home/me/projects", "/home/me/notes"]'

The keys are listed under settings file.

setup and model

ixos setup downloads both models from pinned Hugging Face revisions, checks their SHA-256 hashes and installs the agent skill. A failed download leaves nothing half installed; run it again once you are online.

Terminal
ixos setup ixos setup --skip-models ixos model install documents ixos model list

Without a network, copy the three files of each model from ixos-code and ixos-documents into a folder, then install from it:

Terminal
ixos model install code --from ./ixos-code ixos model install documents --from ./ixos-documents

If you skip setup, the first search that needs meaning downloads the model it needs.

doctor

Loads the model, checks that the cache can be written, and runs a small search.

Terminal
ixos doctor --dir . --profile code

Claude Code and Codex

ixos mcp starts an MCP server over stdio that gives an agent three tools: search, grep and read. Register it once per project, with the project's full path:

Claude Code
claude mcp add --transport stdio ixos -- ixos mcp --dir /your/project --profile code
Codex
codex mcp add ixos -- ixos mcp --dir /your/project --profile code

Other MCP clients take the same command in their settings file:

JSON
{ "mcpServers": { "ixos": { "command": "ixos", "args": ["mcp", "--dir", "/your/project", "--profile", "code"] } } }

If ixos is not on your path, use its full path. Quote Windows paths that contain spaces. Reload the agent afterwards and check the tools with a real call. ixos setup also installs a short skill for Claude Code and Codex that explains when each tool helps; it does not register the server.

Tools

ToolUse it forArguments
searchFinding code or documents from a description.query, dir, profile, mode, limit, context, evidence, view
grepExact names, text or regular expressions.pattern, dir, fixed, ignore_case, limit, context, view
readLines from a known file, a whole function, or several ranges at once.path, dir, start, lines | end, within, body, expected_source_hash, characters, character_offset, requests, max_bytes, view

Only query, pattern or path (or requests) is required; the rest default to the server's folder and settings. Line ranges are inclusive. view is json by default; numbered returns compact source with line numbers and groups grep hits by file.

read
{ "path": "ixos-core/src/cloud.rs", "within": "should_skip_cloud_file", "view": "numbered" }

within reads a whole function by name, including its doc comment. Owner::name picks a method. Add "body": true to start at the body. If the name is defined more than once, the answer lists each definition instead of guessing.

Function evidence

For code, search can return the functions in each top file that best match the query, next to the usual passage. File ranking does not change.

search
{ "query": "invalidate cached source after file changes", "evidence": "functions", "limit": 5, "view": "numbered" }
ValueReturns
noneOne passage per file. The default.
passagesAnother distinct passage per file, without parsing.
functionsFor the top three files, the closest functions with their names and exact line extents. Files that cannot be parsed fall back to passages.

With evidence on, matches replaces snippet; its first entry is the usual passage. Each match has lines, text, and when known a symbol with the definition's extent. Evidence applies to the code profile with a model; keyword search and documents return their normal passage.

Batched reads

read accepts up to eight ranges in one call through requests. Each can carry an id, and results come back in the same order.

read
{ "requests": [ { "id": "definition", "path": "src/cache.rs", "start": 20, "end": 55 }, { "id": "caller", "path": "src/main.rs", "start": 80, "lines": 12 } ], "max_bytes": 12000 }

The byte budget is split equally between the requests. A request that fails returns its own error and the others still run. dir, view and max_bytes apply to the whole call.

Source hashes

Search and read return a source_hash for each file. Pass it back as expected_source_hash and the read is refused if the file changed since, so an agent never acts on old line numbers.

read
{ "path": "src/cache.rs", "start": 20, "end": 55, "expected_source_hash": "<source_hash from the search>" }

When a read is cut short, continue from next_start_line. For one very long line, set characters and move character_offset forward using next_character_offset.

Settings file

The command, the agent server and the desktop app share one file, ixos/settings.toml, in your system's configuration folder.

SystemSettingsModels
Windows%APPDATA%\ixos\settings.toml%LOCALAPPDATA%\ixos\models
macOS~/Library/Application Support/ixos/settings.toml~/Library/Application Support/ixos/models
Linux~/.config/ixos/settings.toml~/.local/share/ixos/models
KeyDefaultMeaning
locations[]Folders the desktop app searches.
profilecodecode or documents.
limit10Files per search, 1 to 10,000.
context2Lines around each passage, up to 100.
cachetrueKeep records between searches.
model_dirthe models folder aboveWhere models are installed.

Pass --config path/to/settings.toml to any command to use another file.

Environment variables

VariableEffect
IXOS_HOMEKeeps settings, models and the fallback cache in config, data and cache under one folder. Useful for a portable or test setup.
IXOS_SKILL_HOMEInstalls the agent skill under this folder instead of your home folder.
IXOS_MODEL_PATHLoads a model from this folder, like --model-path.
IXOS_ENGINE_PATHMakes the desktop app use this ixos executable.
IXOS_RUNTIME_FROMMakes the desktop app install its engine from this folder instead of downloading it.

Records and cache

With Remember files on, Ixos saves one small record in each file's own metadata: an alternate data stream named :ixos on Windows and the extended attribute user.ixos on macOS and Linux. Where a drive cannot hold metadata, the record goes in one database in the application cache instead. The file's contents and modified time are never changed.

A record stays valid while the file and the model are the same. Change the file and only that file is read again.

FieldBytes
IXOS magic4
Format version1
Model fingerprint32
Source fingerprint32
Dimensions2
Passage count1
Each passage: byte and line range, scale28
Each passage: int8 vectordimensions
Checksum, xxh38
ProfileDimensionsPassagesRecord size
code2561 to 8364 B to 2,352 B
documents5121620 B

Output and size limits

LimitValue
Answer size6,000 bytes by default. Passages are shortened first, then fewer files are returned.
read with max_bytes128 to 24,000 bytes
One file16 MiB
All extracted text in one search256 MiB
Batched reads8 per call

Ixos reads text, PDF and Office files. Scanned pages without a text layer are skipped, as are symbolic links, files your ignore rules exclude, and cloud files that have not been downloaded.

Retrieval benchmarks

Two public sets: 260 descriptions of functions from 26 repository families in RepoQA, and all 300 test claims in SciFact over 5,183 papers. Every method returns 10 files with 2 lines of context under the same 6,000-byte limit.

SetMethodnDCG@10MRR@10File found in top 10
RepoQAIxos0.69370.621292.3%
RepoQABM250.60660.532684.2%
RepoQAripgrep, ranked0.44690.361472.3%
SciFactIxos0.69500.666580.7%
SciFactBM250.66450.634277.6%
SciFactripgrep, ranked0.53610.517262.7%

These sets were also looked at during development, so read them as a check rather than a fresh test. RepoQA descriptions are generated, and neither set measures PDF extraction or whether an agent finishes its task. Per-query results and the commands to reproduce them are in the repository.

Speed

260 searches through the agent server, one per RepoQA description, on a Ryzen 7 5800X with the folders already read once.

Median95th percentileFastestSlowestMemory
27 ms56 ms9.8 ms99.4 ms95 MB

The first search in a new folder reads every file. One check on 9,892 files (65 MB) took 2,873 ms from a fresh process, including loading the model, and 573 ms for the second search in a running server.

Agent studies

On the RepoQA set, Ixos put the right file in the top ten for 240 of 260 descriptions. The passage it showed overlapped the function being described for 101 of them; with function evidence on, 171 did.

That makes the right code easier to reach. It is not the same as an agent doing better work: in controlled runs, agents using Ixos were not reliably more correct and did not reliably use less context than agents using ordinary tools. The full write-up has the details.