A macOS image viewer with AI-powered image descriptions.
- Image Library: Browse images from one or more local folders with sidebar navigation and search
- AI Descriptions: Generate detailed descriptions of images using LLMs (Ollama / OpenAI)
- AI Explanations: Get deeper contextual explanations about images
- Markdown Rendering: Full CommonMark/GFM support with text selection and copy
- Zoom & Pan: Zoom into images and pan around at high zoom levels
- Crop: Crop regions of interest with drag selection
- Export: Export cropped or full images as PNG or JPEG
- Caching: Local SQLite cache for descriptions and explanations
- macOS 14.0+
- Xcode 15+ (for building from source)
- Homebrew (for dependencies)
Download the latest .dmg from the releases page and drag See.app to your Applications folder.
-
Install the cmark-gfm library:
brew install cmark-gfm
-
Open the project in Xcode and build:
open See.xcodeproj
-
Or build from the command line:
xcodebuild -project See.xcodeproj -scheme See -configuration Debug build
bash scripts/create-dmg.shThe DMG will be created in dist/See.dmg with all dependencies bundled.
Open Settings from the menu bar to configure:
- Provider: Choose between Ollama (local) or OpenAI (compatible APIs)
- Ollama: Base URL (default
http://localhost:11434) and model name (defaultllava) - OpenAI: Base URL, API key, and model name
- Prompt: Customize the default description prompt
- Click Add Folder in the sidebar to add image directories
- Select an image from the sidebar or navigation
- Click Describe to generate an AI description
- Click Explain to get a deeper explanation (requires a description first)
- Use the description controls to:
- Regenerate the description
- Adjust font size
- Show/hide the description panel
| Shortcut | Action |
|---|---|
Left/Right Arrow (numeric pad) |
Navigate previous/next image |
+ / - |
Zoom in / out |
Cmd+0 |
Reset zoom |
Sources/See/
ContentView.swift - Main UI, image viewer, description overlay
ImageLibraryStore.swift - Image library state management
ImageCache.swift - SQLite cache for descriptions/explanations
ImageDescriber.swift - LLM API integration (Ollama/OpenAI)
LLMSettings.swift - Settings model and API client
ImageItem.swift - Image metadata (URL, size, pixel dimensions)
ImageViewApp.swift - App entry point
SettingsView.swift - Settings UI
CMarkWrapper.swift - cmark-gfm bindings for markdown rendering
ImageCache.swift - NSCache for image pixel sizes
- cmark-gfm — CommonMark/GFM markdown library
- SQLite.swift — SQLite database for caching
MIT.
