§ · ØXYGEN

Download

MIT Rust backend Tauri 2

Øxygen

A desktop chat app for Ollama models that keeps everything — conversations, files, settings — on your own computer.

No account. No cloud. No telemetry. No exceptions.

Platforms
Linux · macOS · Windows
Requires
Ollama, on 127.0.0.1
Account
None

Manifesto

Your AI. Your machine. Your rules.

Open it, type, get your answer, close it. The model runs on your hardware, the database is a file in your home directory, and there is nothing to log out of because there was never anything to log into.

§ 01

Features

What it does

~/features [11]
  • Chat Streaming replies from any Ollama model, with reasoning shown separately for models that think out loud.
  • Files and photos Drop in PDFs, Word, PowerPoint, Excel, OpenDocument, code or plain text and it reads them. Images go to vision models.
  • Library Keep documents you return to often; attach them to any conversation in one click.
  • Search by meaning Finds the right passage in your files and history even when you do not recall the exact words.
  • Web search Off by default. When you turn it on, only your search terms leave the machine — never your conversation.
  • Deep search Splits a question into sub-questions, gathers evidence from your files and the web, checks what is missing, then answers with citations.
  • Voice Speak instead of typing, transcribed by a local Whisper — the recording is deleted the moment it is transcribed.
  • Pictures Generate images through a local Stable Diffusion server. Your prompt never leaves the machine.
  • Nine languages The whole interface, not only the chat. All nine are listed near the foot of this page.
  • Accessibility Three contrast levels, reduced motion, larger text, bolder text, wider letter spacing, focus outlines.
  • Your data Turn off storage entirely, set a retention window, export everything to JSON or Markdown, delete it all in one click.

§ 02

Step 1

Install Ollama

Øxygen does not ship a model and never downloads one behind your back. Get Ollama from ollama.com, then pull at least one chat model.

ollama pull llama3.2

That is the only requirement. Everything else is optional, and the app tells you in plain language what each extra model is for.

§ 03

Step 2

Run Øxygen

Prebuilt bundles for Linux, macOS and Windows are in the next section. Open one, and Øxygen talks to the Ollama you just installed over loopback. If you would rather compile it yourself, the build is four commands and they are at the foot of this page.

Download for Linux AppImage · runs on any distribution

§ 04

Downloads

Every download

~/releases/latest [5]

The last file lists the SHA-256 of every other one. Run sha256sum -c SHA256SUMS.txt next to what you downloaded and it will tell you whether you have the same bytes the build produced.

Unsigned

Nothing in the release pipeline signs or notarizes these bundles. macOS will say it cannot verify the developer and Windows SmartScreen will say it protected your PC. A certificate costs money and identifies a legal person; what this project has instead is a checksum on every release and the whole source tree in the open.

§ 05

Models

Optional models, and what each one is for

The app carries this same list under Settings and then Setup, with live install status and a copy-ready command for anything missing.

Model Pull What it does for you
Chat llama3.2 Answers you. The only model Øxygen genuinely cannot work without.
Small chat gemma3:1b A fast fallback if you have little memory to spare.
Embeddings nomic-embed-text Makes your files, history and web results searchable by meaning rather than exact words.
Vision llava Reads photos, screenshots and scanned pages you attach.
Reasoning deepseek-r1:8b Works a problem out step by step, shown in a collapsible panel.

Also

Two features need a separate program, because Ollama does not provide them. Voice needs whisper.cpp with a ggml model, or pip install openai-whisper. Pictures need Stable Diffusion WebUI running with --api, or ComfyUI. Both run locally, both are opt-in, and neither is required to chat.

§ 06

Data

Where your data lives

One folder. On Linux:

~/.local/share/app.oxygen.desktop/
├── oxygen.db        SQLite: chats, messages, settings, search index
├── attachments/     files you sent in conversations
├── library/         files you saved for reuse
├── generated/       pictures you generated
└── exports/         anything you exported

Linux

~/.local/share/app.oxygen.desktop

macOS

~/Library/Application Support/app.oxygen.desktop

Windows

%APPDATA%\app.oxygen.desktop

Settings and then Data controls holds an Open data folder button that takes you straight there. Back it up by copying the folder. Delete everything by deleting the folder. There is no other copy anywhere.

Not protected

There is deliberately no login, so the database is a plain file readable by your operating system user: anyone who can read your home directory can read your chats. Full-disk encryption and your account controls are the right layer for that, and Øxygen does not pretend to be it.

§ 07

Network

What talks to the network

Being specific matters more than a promise, so here is the complete list.

What talks to the network

Destination

Your local Ollama (127.0.0.1:11434)

When

Every message

What is sent

Your prompt and the conversation history

Destination

Your local image server (127.0.0.1:7860)

When

Only if you enable pictures

What is sent

Your image description

Destination

A search engine you choose

When

Only if you enable web search and press the search button on a message

What is sent

Your search terms only — never the conversation

That is it. No analytics, no crash reporting, no update pings, no accounts, no usage statistics. The web search provider defaults to DuckDuckGo; point it at your own SearXNG instance if you want even that under your control.

The page you are reading is held to the same rule: every byte of guhhammer.dev comes from its own origin, which is why a list of what either of them reaches out to still fits in a table this short.

§ 08

Languages

Nine languages, all of the interface

  • English
  • Português (Brasil)
  • Español
  • Français
  • Deutsch
  • Italiano
  • Русский
  • 简体中文
  • 日本語

Adding one is genuinely a one-file change: copy src/i18n/en.ts, translate the values, and add a line to src/i18n/index.ts. Missing keys fall back to English, so a partial translation is still worth sending.

§ 09

Source

Build it yourself

The bundles above are what this produces on a clean runner, under the same file names, which is what keeps a local build and a released build the same thing.

git clone https://github.com/guhhammer/oxygen
cd oxygen
pnpm install
pnpm tauri build          # or: pnpm tauri dev

Prerequisites: Rust 1.77 or newer, Node 18 or newer, and pnpm. On Debian or Ubuntu you also need the WebKit stack:

sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev \
                 librsvg2-dev build-essential curl file patchelf

Optional but recommended: poppler-utils for PDF text and ffmpeg for voice.

MIT — use it, fork it, sell it, embed it. Third-party components are credited in NOTICE.md. · Source on GitHub · All releases · Security notes · Contributing

Øxygen is not affiliated with Ollama, Meta, Google, DeepSeek, or any model provider.