---
title: "Map · Geniuz Wiki"
url: https://geniuz.life/wiki/
---

# Map

The parts of Geniuz and how they connect. There is no server: each part opens the same files, and everything stays on your computer.

## Surfaces

The ways in, for you and for your AI.

### Dashboard

The desktop app. Browse, keep and find across your folders, pin the ones you use most, and change your shortcuts.

#### Guardrail

A window stays with the folder it shows, so a draft can't land somewhere else.

#### Calls

-   [Folders](#folders) lists, switches and pins
-   [Library](#library) app commands

#### Source

[`desktop/dashboard`](https://github.com/jackccrawford/Geniuz/tree/main/desktop/dashboard)

### Menubar

The folder in use, a way to switch, and your recent memories, always one click away. A tray menu on Windows and Linux.

#### Guardrail

The Mac menubar only ever reads your memories.

#### Calls

-   [CLI](#cli) asks which folder is in use
-   [Store](#store) read-only SQL

#### Source

[`desktop/Geniuz`](https://github.com/jackccrawford/Geniuz/tree/main/desktop/Geniuz), [`src/tray.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/tray.rs)

### MCP

How your AI reaches Geniuz: `keep`, `recall` and `folders`, plus guidance on when to use them.

#### Guardrail

A wrong folder name is an error, never a different folder.

#### Calls

-   [Folders](#folders) finds the folder for each call
-   [Library](#library) tool calls

#### Source

[`src/mcp.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/mcp.rs)

### CLI

Every command, for people, scripts and agents.

#### Guardrail

`capture` refuses files that are not prose unless you pass `--force`.

#### Calls

-   [Folders](#folders) finds the folder for each command
-   [Library](#library) all commands

#### Called by

-   [Menubar](#menubar) asks which folder is in use

#### Source

[`src/cli.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/cli.rs), [`src/main.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/main.rs)

### Terminal UI

Browse and compose in a terminal.

#### Guardrail

Refuses to start without a real terminal.

#### Calls

-   [Library](#library) browse and compose

#### Source

[`src/tui.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/tui.rs)

## Core

Where memories are kept and found.

### Folders

Finds, moves, pins and archives folders, and decides which one a command uses.

#### Guardrail

A duplicate is refused, and nothing is ever deleted.

#### Calls

-   [Store](#store) reads identity without changing anything

#### Called by

-   [Dashboard](#dashboard) lists, switches and pins
-   [MCP](#mcp) finds the folder for each call
-   [CLI](#cli) finds the folder for each command

#### Source

[`src/folders.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/folders.rs)

### Library

Reads, writes and every kind of search.

#### Guardrail

An ambiguous ID prefix is an error, never a guess.

#### Calls

-   [Store](#store) transactional writes
-   [Embedding](#embedding) embeds text

#### Called by

-   [Dashboard](#dashboard) app commands
-   [MCP](#mcp) tool calls
-   [CLI](#cli) all commands
-   [Terminal UI](#terminal-ui) browse and compose

#### Source

[`src/db.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/db.rs), [`src/dig.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/dig.rs), [`src/window.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/window.rs)

### Store

One SQLite file per folder. Tables: `memories`, `memory_embeddings`, `embedding_meta`, `_meta`. View: `memory_chains`.

#### Guardrail

Triggers refuse update, delete and replace on memories.

#### Called by

-   [Menubar](#menubar) read-only SQL
-   [Folders](#folders) reads identity without changing anything
-   [Library](#library) transactional writes

#### Source

[`schema/schema.sql`](https://github.com/jackccrawford/Geniuz/blob/main/schema/schema.sql)

### Embedding

Turns text into numbers that capture its meaning, with ONNX or Ollama.

#### Guardrail

Rejects stored embeddings of the wrong size when reading them.

#### Calls

-   [Embed helper](#embed-helper) socket first
-   [Hugging Face](#hugging-face) model download
-   [Ollama](#ollama) as a fallback

#### Called by

-   [Library](#library) embeds text

#### Source

[`src/embedding.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/embedding.rs)

### Embed helper

Keeps the model ready between calls.

#### Guardrail

Local socket only. Exits after five idle minutes.

#### Called by

-   [Embedding](#embedding) socket first

#### Source

[`src/embed_server.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/embed_server.rs), [`src/embed_client.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/embed_client.rs)

## Outside

Reached only when needed, and never with your memories by default.

### Hugging Face

Where the model is downloaded from.

#### Guardrail

Once, then local.

#### Called by

-   [Embedding](#embedding) model download

#### Source

[`src/embedding.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/embedding.rs)

### Ollama

A second way to embed, by default on your own machine.

#### Guardrail

Used only if the built-in model fails to load.

#### Called by

-   [Embedding](#embedding) as a fallback

#### Source

[`src/embedding.rs`](https://github.com/jackccrawford/Geniuz/blob/main/src/embedding.rs)
