GEIST AI

Overview

Geist AI. AI that meets you where you work.

Geist is a native Mac AI assistant designed to make AI accessible from anywhere on the computer without forcing users to leave their current workflow.

Instead of treating AI as another destination users have to visit, Geist was designed as a system-wide companion that can be summoned when needed.

Role: Product / UI/UX Designer & Engineer
Platform: macOS
Focus: AI interaction, productivity, contextual computing
Technologies: Figma, Miro, LLMs, Python, Go, Machine Learning
Project: Clete

The Challenge

AI is powerful. The interaction model is not.

Today’s AI assistants generally follow the same pattern:

Stop working → Open AI → Explain context → Ask question → Copy answer → Return to work

That creates unnecessary friction.

If you’re writing an email and need help, you leave your email.

If you’re debugging code, you leave your development environment.

If you’re researching something, you leave your browser.

If you’re looking at something on your screen and want to ask AI about it, you often have to take a screenshot, upload it, and explain what you’re looking at.

The question

What if AI didn’t require you to leave your workflow?

That question became the foundation for Geist.

Product Philosophy

Geist was built around several core principles.

  • AI should live where you work: AI shouldn’t be a destination. It should be available wherever the user already is.
  • AI should see what you see: Users shouldn’t have to repeatedly explain visual context that already exists on their screen.
  • Users shouldn’t be locked into one model: Different models have different strengths.Users should be able to choose the right model for the task.
  • AI should adapt to the user: Different tasks require different ways of thinking. An AI assistant should be adaptable rather than one-size-fits-all.
  • Memory should be a choice: Users should have control over whether information carries across conversations.

These principles became the foundation for the product experience.

Understanding the user

Geist is designed primarily for people who use AI as part of their actual work, rather than occasionally asking a chatbot a question.

Potential users include:

  • Developers
  • Designers
  • Researchers
  • Writers
  • Analysts
  • Students
  • Knowledge workers
  • Creatives

The common thread isn’t their profession.

It’s their workflow.

They frequently move between applications and need information, explanation, generation, analysis, or feedback without breaking concentration.

Core user need

“Help me with what I’m doing without making me stop doing it.”

experience principles

From the product philosophy, I established several experience principles.

01 — Instant

The distance between thought and AI should be as small as possible.

Keyboard shortcut → AI

Rather than:

Open browser → Find AI → Open conversation → Ask

02 — Contextual

The AI should understand the user’s current context whenever possible.

What I’m looking at → What I can ask about

03 — Flexible

Users shouldn’t have to choose a single AI provider for everything.

One interface → Multiple models

04 — Personal

AI should adapt to different workflows.

One user → Multiple skills/personas

05 — Controlled

Powerful context and memory features should remain under the user’s control.

More context doesn’t have to mean less privacy.

Information Architecture

The product contains several interconnected capabilities:

The challenge was keeping these powerful capabilities accessible without making the interface feel complicated.

The core interaction

The central interaction is intentionally simple:

Summon → Ask → Continue

Instead of requiring users to navigate to an AI application:

Option + /

Geist appears

User asks a question

Geist responds

User returns to their work

This became one of the most important interaction patterns in the product.

Designing the ai interface

The AI interface needed to balance two opposing goals:

Powerful enough for advanced users

Users should be able to:

  • Choose models
  • Use custom skills
  • Provide screen context
  • Reference previous conversations
  • Control memory

Simple enough for everyone

A user shouldn’t need to understand:

  • LLM providers
  • Context windows
  • RAG
  • Tokens
  • Model architectures
  • AI parameters

The interface therefore needed to expose capabilities without exposing unnecessary complexity.

Context-Aware AI

One of Geist’s most important UX concepts is screen awareness.

Traditional AI interaction:

“Here’s a screenshot. Here’s what I’m looking at. Here’s what I need help with.”

Geist’s intended interaction:

Select what you’re looking at → Ask

The user can capture:

  • Their full screen
  • A selected region

This changes the interaction from:

Explain → Upload → Ask

to:

Point → Ask

That’s a significant reduction in interaction friction.

multi-modal experience

Another major product decision was avoiding dependence on a single AI model.

Different models can be better suited to different tasks.

For example:

Coding → Model A

Writing → Model B

Research → Model C

Instead of requiring users to maintain multiple subscriptions and switch between browser tabs, Geist brings those models into one experience.

UX challenge

The interface needs to expose model selection without making the user think about technical implementation.

The experience becomes:

Select model → Continue conversation

rather than:

Choose provider → Open provider → Start new conversation

Skills & Personas

One of the more interesting personalization concepts was custom AI skills.

Instead of having one fixed assistant personality, users can create specialized ways for Geist to behave.

For example:

Code Reviewer

Direct, technical, focused on bugs and maintainability.

Editor

Focused on clarity, structure, and writing quality.

Analyst

Rigorous, analytical, and evidence-oriented.

The important UX concept here is that the user isn’t just choosing a model.

They’re choosing how they want AI to work with them.

memory

Memory introduces an important tension:

Personalization vs. control

Remembering preferences can make AI more useful.

But users don’t always want previous context to follow them into a new conversation.

Geist therefore treats memory as a user-controlled capability.

Memory ON

“Remember how I like to work.”

Memory OFF

“Treat this conversation as a clean slate.”

This creates a simple mental model:

The user decides what persists.

Interaction Design

Because Geist is designed to remain accessible while users work in other applications, interactions need to feel lightweight.

The product should:

  • Appear quickly
  • Require minimal navigation
  • Preserve the user’s workflow
  • Clearly communicate context
  • Make dismissal effortless
  • Avoid unnecessary modal complexity

The interface should feel like something that appears when summoned and disappears when finished, rather than another application demanding attention.

This connects directly to the product’s name:

Geist — a presence that is always there, waiting to be summoned.

The experience in one flow

Early draft of what user flow will look like. This flow communicates the entire product philosophy.

What makes GEIST DIFFERENT

The differentiation isn’t simply:

“It’s another AI chatbot.”

It’s the interaction model.

Traditional AI

User → AI

The user leaves their workflow to interact with AI.

Geist

AI → User

The AI comes into the user’s workflow.

That distinction is the core of the product.

Reflection

Working on Geist pushed me to think about AI interfaces differently.

The challenge wasn’t simply designing a better chatbot.

It was thinking about when AI should appear, how much context it should receive, how much control the user should have, and how AI can become part of an existing workflow without becoming another source of distraction.

The project reinforced an important design principle for me:

The best interface isn’t always the one with the most features. It’s the one that removes the most friction between a user and what they’re trying to accomplish.

Geist made me especially interested in designing products where technology adapts to the user’s workflow instead of asking the user to adapt to the technology.