Documentation
OttO Desktop
The OttO desktop app a visual interface to your local knowledge graph.
Introduction
OttO is a local-first knowledge graph assistant. It lets you store any piece of information notes, articles, research and automatically links related ideas into a semantic graph you can explore and query.
Your data never leaves your machine. The graph lives in a local vector database powered by OttO Core. AI features work with local models via Ollama, or cloud providers like OpenAI and Groq.
Getting Started
Download OttO Desktop from the download page and install it for your platform. After launching, the app connects to OttO Core automatically on port 47821.
On first launch you will be prompted to choose an LLM provider. You can change this later from Settings.
Requirements
Projects
OttO supports multiple projects. Each project has its own isolated knowledge graph — nodes, connections, and chat history are completely separate between projects.
On first launch you will be taken to the project selection screen. Click a project to enter it, or create a new one by entering a name and pressing Create.
Once inside the app, click the project name in the top-left corner of the sidebar to open the project manager. From there you can:
- Create new projects
- Switch to a different project
- Rename an existing project
- Delete a project (the active project cannot be deleted)
Adding Knowledge
Click Add Node in the sidebar or use the keyboard shortcut ⌘N. Paste or type any text a paragraph, an article, a thought. OttO will:
- Split your text into meaningful chunks
- Generate vector embeddings for each chunk
- Store them in the local vector database
- Link semantically similar nodes automatically
Via the API
You can also add knowledge programmatically through the REST API:
POST http://localhost:47821/api/knowledge
Content-Type: application/json
{
"text": "The mitochondria is the powerhouse of the cell."
}Semantic Search
OttO finds knowledge by meaning, not keywords. Type a query in the search bar and the vector engine surfaces the most relevant nodes from your graph.
Under the hood, your query is embedded and compared against all stored embeddings using cosine similarity. Results are ranked by relevance score.
Search API
{
"results": [
{
"id": "node_abc123",
"text": "The mitochondria is the powerhouse of the cell.",
"score": 0.94
}
]
}AI Agent
The OttO agent lets you have a conversation with your knowledge graph. Ask a question and it will:
- Search your graph for relevant nodes
- Inject them as context into the LLM prompt
- Return a grounded answer that cites your own notes
Open the chat panel with ⌘K and start typing. The agent automatically pulls relevant context from the graph without you needing to specify it.
Conversation History
The agent remembers the current conversation session — each message is not sent as a fresh chat. Up to the last 12 messages (within a 16,000-character budget) are included with every request so the model can answer follow-up questions in context.
Conversation history is scoped to the active project. Switching projects or starting a new session clears the context sent to the model.
Images
You can attach images to any message. Up to 3 images per message are supported. Attach them in any of these ways:
- Click the paperclip button in the input bar
- Paste with
⌘V/Ctrl+V - Drag and drop an image onto the input area
Images are automatically downscaled before being sent to reduce token usage. Thumbnails appear above the message text in the chat.
Combine images with @node_id mentions to give the model both visual context and the relevant node text at the same time.
Web Search
Toggle web search using the globe button in the input bar. The button label shows Search on or Search off so the current state is always visible.
Web search is only available when using OpenAI or Groq as the text provider. The toggle is disabled when Ollama is selected. When the toggle is off, no search tools are sent to the model regardless of provider.
When a search is performed, the agent feed shows a performed N web searches entry so you can see when external results were used.
LLM Providers
OttO supports three LLM providers. Switch between them in Settings → Provider.
Ollama (local)
Run models entirely on your machine with no data leaving your device.
# Install Ollama, then pull a model
ollama pull llama3.2OttO will auto-detect Ollama running on localhost:11434.
OpenAI
Use GPT-4o, GPT-4o mini, or any OpenAI-compatible model. Enter your API key in Settings.
OPENAI_API_KEY=sk-...Groq
Ultra-fast inference for open models (Llama, Mixtral). Get a free API key at console.groq.com.
GROQ_API_KEY=gsk_...Mobile Pairing
Pair the OttO Mobile app to access your queue, graph, and agent from your phone. Open Settings → Connections and find the Mobile Pairing card. It shows:
- A QR code — scan it with the OttO Mobile pairing screen to connect in one step
- The address the phone will connect to; if your computer has multiple network interfaces, pick the one your phone can reach
- The pairing token — click to select and copy it for manual pairing without a camera
Both devices must be on the same local network. All traffic goes directly from the phone to your computer — nothing passes through the cloud.