Aether

Role
Design and build
Timeline
Oct 2024
Type
Obsidian plugin + local service
Stack
TypeScript, Python, Flask, ChromaDB, Groq

Overview

What if you could just ask your notes?

Aether is an Obsidian plugin. Hold space in any note, ask a question in plain words, and it answers from the vault, with the notes it used one click away.

Problem

Years of notes pile up, and search only finds the exact word you typed.

Solution

An ask bar that opens inside the note you’re writing and answers from the whole vault, on your own computer.

My role

Design and build, end to end: the interaction, the motion and the local service behind it.

Problem

Capturing was the easy half.

Obsidian is built on the file-over-app idea: your notes are just files on your disk. A couple of years in, the pile only ever grows, and adding to it is the easy part. How do you get anything useful back out of something this size?

Search works when you know what you’re looking for. But a list of results still leaves the reading and the stitching to you.

It needs the right word

Search finds the word you type, which is rarely the word you used at the time.

The answer is scattered

What you want is spread across months of notes, and no single one holds it.

Asking means leaving

Every tool that could answer lives in a panel or another app, away from the note.

What’s missing is a way to ask the notes a question and get an answer back.

Solution

Aether: ask your notes, and they answer.

Type the question the way you’d say it out loud. Aether reads across the whole vault and answers in a few sentences, with the notes it used listed underneath.

Ask without leaving the note

Hold space in any note and the ask bar opens on the screen you are already on.

An answer with its sources

The answer is written onto the note, with numbered citations and the notes it came from one click away.

Keep the answer in the note

Ctrl enter inserts it at the cursor as a callout, with links back to the notes it used.

Point at a passage and change it

Highlight a passage, hold space and say how to change it; ctrl enter puts the rewrite in its place.

Go deeper in chat

When one question turns into several, ctrl shift enter carries it into a chat panel that keeps the thread.

Research

What already exists, and why it didn’t fit.

People already have ways to get answers out of a vault. Each one stops short somewhere.

ToolWhat it doesWhere it falls short
Obsidian search Finds the exact words you type, fast, across every file. Returns a list of files. The reading is still yours to do.
Smart Connections Surfaces notes related to the one you’re in, by meaning, and can chat with them. Lives in a side panel. It hands you related notes, and the answer still has to be dug out of them.
Copilot for Obsidian A chat panel that can answer from the vault. A second place to work in, with a conversation to manage.
NotebookLM Answers grounded in the sources you upload, with citations. Your notes have to leave the vault and go into someone else’s product.

What they get right

Reading by meaning, and showing where an answer came from. Both went straight into Aether.

What none of them do

Answer inside the note you’re writing, without sending the vault anywhere or asking you to move.

Design decisions

The hard part was how asking should feel.

What is the most natural way to ask a question in the middle of writing? A few shapes were tried before one felt right.

A sidebar

The first experiment. A whole panel is too much to open for one question, and not a great place to start from.

A popover

Lighter, but it lands on top of the writing. The note is the context, and it should always be in view.

A bar in the note

One line at the foot of the screen, with the whole note still in view above it. Hence this design.

01Not another chat window.

The obvious shape is a chat panel in the sidebar, but a chat is a second place to be, with a thread to keep up. Aether is for a question that comes up in the middle of writing, so it has a single bar that takes one question and gives one answer.

02It opens where you already are.

Asking shouldn’t pull you out of what you’re doing, so there is nothing to open and no reason to reach for the mouse. Hold space for 400 ms in any note and the bar is there, on the screen you were already looking at. Esc puts everything back exactly as it was.

03The screen leans back to make room.

A text box needs somewhere to go, and a box laid over the note would cover what you were just writing. So the whole app tilts back three degrees on its top edge, which opens a small space at the foot of the window for the bar without covering anything. The note still scrolls while it is set back.

04A blur that fades out.

The answer is written straight onto the note, so it needs something behind it to stay readable. A solid panel did the job but looked like a slab, so the blur is progressive: strongest behind the bar and gone above the answer. It grows as the answer arrives from the bottom line up.

05The answer goes back into the note.

An answer that lives in a panel is gone when the panel closes. Ctrl enter drops it into the note as a callout, with links to the notes it came from, so it is saved in the file like everything else in the vault.

Problems and how Aether solves them

Local-first, like Obsidian itself.

Obsidian’s promise is that the notes are yours: plain files on your disk. An assistant that needs the whole vault uploaded somewhere breaks that promise, so the vault never goes anywhere.

On your computer
  • Your notesPlain files in the vault.
  • The indexA folder beside the vault.
  • Search by meaningWorked out on this machine.
  • Aether’s serviceRuns here, behind a token.
Goes out, once per question
  • Your question
  • The note you’re in
  • A few matching passages
Comes back
  • The answer
Hosted model Writes the answerIt sees only what was sent. The rest of the vault never leaves your computer.
Next Your choice of modelLocally hosted models are coming, so the answer can be written on your computer too and nothing goes out at all. Other hosted models will be selectable as well, for faster or stronger answers.

Meaning alone misses exact names.

Two searches, fused

Every question runs as a search by meaning and a keyword search, and the two rankings are merged. Names and jargon still match exactly; everything else matches by sense.

A vault changes all day.

The index follows the files

A file watcher re-indexes a note when it is created, edited, renamed or deleted, so an answer is never built on a note you removed last week.

An answer you can’t check is worth little.

Every claim links to its note

Numbered citations link to the note each sentence came from, and the exact passages the model was given can be opened under any answer.

Follow-ups lean on what was said before.

Questions are rewritten first

“What about the other one?” is turned into a standalone question before the search, so it finds the right notes.

Reflection

What building it taught me about RAG.

Aether answers by pulling the relevant passages out of the vault and handing them to a model, an approach known as RAG. Building it showed me where that works well, where it falls short, and how to design around both.

Retrieval is a freshness problem

Picking the right embedding model looked like the hard part, but keeping the index current mattered more. The notes change every day, and an answer can only be as accurate as the last index.

Stronger models raise the ceiling

As models get stronger, I can pull in more context for each question, and the answer gets better for it.

The note comes first

AI gets added to everything now, and adding it here could have felt like following everyone else. Used intentionally, though, it can make a real difference to how you work. So I designed Aether to stay a note first, with the AI as a helper that assists and nothing more.

This is a good first step, and one I want to keep improving.

© Sreehari Suresh