CodeAlta Desktop keeps a search index of your work on your computer: the prompts and final answers of your sessions, their notes, the plans and tasks of your projects, this user guide, the skills, the tools and the plugins. The search window finds them as you type, and agents find them with alta search. Nothing is sent anywhere.
The index is on by default and light: a few megabytes, built in the background after start, and a query takes a few milliseconds.
Press Ctrl+P and type a few words. Besides sessions, projects, files, commands and settings, the search window has three groups from the index:
alta commands, MCP servers and plugins.
Tab moves between groups, and Enter opens the selection:
| You open | What happens |
|---|---|
| A message | Its session opens at that message, as a bookmark does. |
| A note | Its session opens. |
| A plan or a task | Its file opens in the code editor. |
| A section of the guide | The Documentation tab opens at that section. |
| An MCP server or a plugin | Its Settings page opens. |
| A setting, or a page of Settings | Settings opens on its page, and the setting glows. |
Ctrl+P finds settings beside conversations and the pages of the guide.Search sessions… in a project's menu searches that project's conversations.
alta search show --full.fingerprint journal finds JournalFingerprint, read file finds read_file. The last word matches the start of a word.Search by meaning also finds what is about the same thing in other words: "where did we fix the scroll jump?" finds "the timeline jumped while scrolling", in another language too.
It needs a model that runs on your computer, so it is off until you turn it on. CodeAlta offers it once there is enough to search (ten sessions, or three days of work), at the foot of the search window when a sentence finds little, and in Settings › Search. Not now asks again in a month; Don't ask again never does.
What it takes, said before anything is downloaded:
| Model | Size | Languages | Strong at |
|---|---|---|---|
| EmbeddingGemma 2 (Google, Apache-2.0) | 304 MB | 100+ | code and prose; the default |
| Granite 97M multilingual (IBM, Apache-2.0) | 117 MB | 200+ | speed: about four times faster |
The Search canvas shows what the index holds, lets you try a query and see why each hit ranks where it does, and shows how search is used. Open it with Open Search in Settings › Search, Search index in the search window (/search_index), the Search card of the welcome page, or alta canvas open search. Each space has its own, showing what that space can see.
meaning #1), which its words alone rank far lower.words #3 · meaning #1 or ≈ meaning #1. Up/Down move, Enter opens. With no query, it lists kinds and their items.The canvas reads the index only while its tab is shown.
Settings › Personalization › Search:
| Setting | What it does |
|---|---|
| Search index | Off: nothing is indexed, the search window has no Conversations, Docs or Tools, and alta search answers unavailable. |
| Conversations | Off: sessions are left out; the guide, plans, skills and tools stay. |
| Check now | Reads every source again now. |
| Search by meaning | On or off, the model, download and indexing progress, Pause, and Delete for an unused model. Off keeps the model and vectors, so turning it on again is immediate. |
| Batches at once | How many batches are embedded in parallel: faster, more memory. |
| Kept out of search | The projects and spaces kept out, each with Include in search. |
The choices are kept in [search] of ~/.alta/config.toml:
[search]
enabled = true # the index
sessions = true # the prompts and final answers of sessions
semantic = false # search by meaning
model = "embeddinggemma-2"
parallelism = 2 # batches embedded at once, up to half the cores
excluded_projects = []
excluded_spaces = []
Exclude from search in a project's menu, and Search this space in a space's settings, keep them out: nothing is indexed, what was indexed is removed, and no result shows them to you or to agents. Their sessions can still search the guide, your skills and the tools. Include in search lets them back in at the next pass.
A repository can keep itself out for everyone with [search] enabled = false in its .alta/config.toml.
Agents of CodeAlta Desktop use the same index through alta:
alta search "why did we change the journal fingerprint" --kind message --project .
alta search "post a message on slack" --kind tool,mcp,skill
alta search "worktree cleanup" --kind doc
alta search "review a pull request" --kind script
alta search "stop renaming my sessions" --kind setting
alta search show msg:<session>/<message> --context 2
alta search load mcp:slack/post_message
alta search status
ref, a snippet, how it was found (words, meaning or both), and next: the command that uses it, such as alta skill activate … or alta documentation read ….--kind setting finds the settings of CodeAlta by what they do; next reads one with alta settings get, and alta settings open shows it to you in Settings.--kind script finds the scripts of the library by their name, their description and when to use them.--include-current.alta search reindex --kind mcp lists every enabled server once.alta search load gives the session the MCP tools it found, without the rest of their server, for the same turn and later. It is refused while you review the session's commands.| What | Where |
|---|---|
| The index | search.sqlite3 in ~/.alta/data/ (~/.alta/dev/data/ for the developer instance) |
| The models | ~/.alta/cache/search/models/ |
| The ONNX Runtime | ~/.alta/cache/runtime/sherpa-onnx/, shared with speech to prompt |
The index is derived from your sessions and files: deleting it loses nothing, and the next start rebuilds it.