- Tools & AI
- Delivered
Ami
I built Ami for my mother. It organises her PDFs, books, notes and personal records, searches them on her own computer, and shows the original page behind every AI-assisted answer.
- My role
- Solo product designer and developer
- Built with
- Python, FAISS, local storage, Codex SDK bridge, HTML/CSS/JS
- Platform
- Browser-based app packaged for macOS
- Result
- Running on my mother's MacBook as a portable app with its own data folder
The problem
My mother had articles, books, photos, lab documents and notes spread across different places. The first job was organising that so she could find evidence without juggling several tools.
The library and search index stay on her device. AI summarises the selected passages and suggests follow-up questions, while the source pages stay visible so she can check them.
Constraints that shaped it
- The interface had to be comfortable for a non-technical user.
- Documents and the search index needed to remain on the device for privacy and offline access.
- Answers needed visible links to source pages and careful wording when evidence was incomplete.
- Installation, startup, and shutdown had to work without developer support.
What it does
Ami manages a private library, classifies imports, renders PDF page previews, saves settings and answer history, and sends only the selected evidence to Codex through a local bridge.
- Imports PDF, EPUB, TXT, Markdown, and short notes into a searchable local library.
- Finds relevant passages, shows page previews, and sends only the selected evidence to the AI.
- Stores personal notes and medical files separately while allowing them to be referenced when needed.
- Provides saved chats, document previews, suggested next steps, and optional reference images.
- Packages the app and its data folder together for portable macOS use.
Testing on her MacBook
Installing it on my mother's MacBook exposed start-up and shutdown problems that never appeared on my development machine. I simplified relaunching and shutting down the background service:
- A second launch detects the running server and reopens the interface instead of causing a port conflict.
- Browser heartbeat and shutdown signals close the background service after the Ami tab is closed.
- Ami.app contains the application; AmiData contains the library, search index, and personal records.
- Testing on my mother's MacBook exposed startup and shutdown problems that did not appear during development.
Outcome
Ami runs on my mother's MacBook as a portable app with local document search, page-level evidence, saved conversations, and a data folder she can move or back up on its own. I handled the product design, retrieval, storage, interface, packaging, debugging and deployment.