BerryShot Logo
BerryShot Documentation

BerryShot Documentation

Welcome to the official user guide for BerryShot. BerryShot is a fast, lightweight, privacy-first utility that resides silently in your macOS Menu Bar, providing advanced capture tools, native local OCR, and instant AI explanations.

1. Getting Started

BerryShot is designed exclusively for macOS Sonoma (14.0) or later. The app leverages Apple's native APIs (SwiftUI, Apple Vision OCR, and Sandbox Security) to achieve maximum performance and minimum battery impact.

Core Capabilities

  • Blazing Fast Captures: Trigger crosshair cropping instantly using customizable hotkeys. Region, full-screen, and window capture via ScreenCaptureKit.
  • Local OCR: Extract text from images without uploading to the cloud, utilizing Apple's machine learning in 0.1 seconds.
  • AI Assistants: Query Xiaomi Mimo, OpenAI, Claude, Gemini, or OpenRouter to explain code, translate languages, or rewrite content with streaming responses.
  • Live Meeting Transcription: Real-time speech-to-text from mic and system audio via Deepgram Nova or OpenAI Whisper. Generate AI meeting summaries with one click.
  • Screen Recording: HEVC 60fps recording with system audio + microphone, pause/resume, dynamic region updates, and mic mute control.
  • Cloud Storage: Upload to local directory, Google Drive, or custom API endpoints for shareable cloud links.
Figure 1.1: BerryShot Native App Information Window
About BerryShot Settings
BerryShot About Settings Interface

2. Installation Guide

To maintain standard integrity and prevent zip extraction friction, BerryShot is packaged inside a single mounted Disk Image (.dmg) file.

1

Download DMG

Click the Download link on the homepage or header to download BerryShot.dmg.

2

Mount & Drag

Double-click the downloaded file and drag the BerryShot icon to your Applications folder.

3

Grant Permissions

Open BerryShot from Applications, and allow Screen Recording permissions in System Settings.

3. General Settings

General configurations allow you to customize how the application interacts with your system, notifications, and menus.

Launch at Login: Automatically starts BerryShot in the background when your Mac turns on.

Play Sound Effects: Triggers camera shutters and success alerts upon screenshot saving.

Show Notifications: Displays transient banners showing cropped preview and action statuses.

Figure 3.1: General Configurations Window Layout
General Settings Panel
BerryShot General Settings

4. Annotations & Drawing

Once a screenshot area is selected, the custom drawing toolbar slides out. You can annotate directly onto the frame before saving or sharing.

Annotation Tools

  • Pencil Tool: Free-hand sketch outlines or doodles.
  • Shape Blocks: Draw pixel-perfect circles, ovals, and rectangles.
  • Direction Arrows: Point to UI elements to highlight details.
  • Custom Text: Type explanatory labels onto the picture.

Visual Properties

  • Stroke width: Tweak annotation lines from fine thin to bold thick.
  • Palette presets: Choose high-contrast colors (Strawberry Red, Neon Green, Royal Blue, Mustard Yellow).
  • Undo / Redo: Instantly revert any strokes with standard macOS command.

5. Scrolling Capture

Capture entire webpages, long documents, or any scrollable content in a single stitched image. BerryShot automatically scrolls through the target window, captures each frame, and stitches them together seamlessly.

πŸ“œ
Accessibility Permission Required Scroll Capture requires macOS Accessibility permission to programmatically scroll the target window. Go to System Settings β†’ Privacy & Security β†’ Accessibility and enable BerryShot.

How to Use Scrolling Capture

  1. Press your capture shortcut (default: βŒ˜β‡§2) to enter capture mode
  2. Instead of drawing a region, click on the target window you want to capture
  3. Click the Scroll Capture button on the toolbar (or press S)
  4. BerryShot will automatically scroll through the content, capturing frames at each step
  5. A progress indicator shows the current frame count and estimated completion
  6. When complete, all frames are stitched into a single tall image

Configuration Options

  • Scroll Step: Lines per scroll event (default: 8)
  • Scroll Delay: Wait time between frames (default: 0.12s)
  • Max Frames: Safety cap at 150 frames to prevent infinite capture
  • Timeout: Total operation timeout of 120 seconds

Sticky Header/Footer Stripping

  • Sticky Header Height: Configure to strip fixed navigation bars from stitched result
  • Sticky Footer Height: Configure to strip fixed footers from the final image
  • Auto-Detection: BerryShot attempts to detect overlapping content for cleaner stitching
πŸ’‘
Tip: Best Results For best results, ensure the target window is fully visible on screen and avoid interacting with it during capture. The scroll capture works best with web browsers, document viewers, and chat applications.

6. Local Offline OCR

BerryShot stands out by executing optical character recognition (OCR) completely on your local device. Utilizing Apple's core Vision Framework, the app extracts text content in less than 100 milliseconds without internet latency or privacy leaks.

πŸ›‘οΈ
Privacy First Promise Your screenshot visual content is processed directly in the CPU/Neural Engine memory space. Nothing is transmitted to external servers, protecting bank numbers, private codes, and documents.
Figure 5.1: OCR Engine Local Configurations
Local OCR Config
Local OCR Settings
Figure 5.2: Privacy Configurations Window
Privacy Panel
Privacy Settings

7. ChatGPT / Claude AI Explainer

Enhance your workflow by pairing extracted OCR text directly with Anthropic Claude or OpenAI ChatGPT models. When enabled, BerryShot sends the text along with prompt configurations to provide instant responses.

How to Set Up

  1. Open Preferences / Settings (⌘ + ,) and switch to the AI Tab.
  2. In the Provider dropdown, choose one of 5 providers:
    • Xiaomi Mimo β€” default provider, mimo-v2.5 model
    • OpenAI β€” GPT-4o, GPT-4 Turbo, etc.
    • OpenRouter β€” access to 100+ models via single API
    • Google Gemini β€” Gemini Pro, Gemini Flash
    • Anthropic Claude β€” Claude 3.5 Sonnet, Claude 3 Opus
  3. Enter your API key safely. The API key is stored securely in your macOS Keychain.
  4. Customize the Model name (e.g. mimo-v2.5, gpt-4o, claude-3-5-sonnet-20240620).
  5. Set the Output Language: English, Vietnamese, or Japanese.
  6. Click Save Key to store your credentials.
Figure 6.1: AI Integration Preference Screen
AI Settings Interface
AI Configuration Settings Window

8. Screen Recording

BerryShot includes built-in screen recording powered by ScreenCaptureKit. Record your selected region with HEVC codec, system audio, and microphone β€” all with annotation overlays preserved.

βœ“

Start Recording

Click the red Record button on the toolbar or press R. Only the selected region is captured as a video file.

βœ“

Pause & Resume

Press P or click the pause button. The timer stops and resumes seamlessly with correct timestamp offsets.

βœ“

HEVC 60fps Output

Records at 60fps using HEVC (H.265) codec at 50 Mbps for high-quality output. Supports Retina resolution via display backing scale factor.

βœ“

System Audio + Microphone

Captures both system audio (e.g., video call participants) and microphone input simultaneously. Mute/unmute mic independently during recording.

βœ“

Dynamic Region Update

Move or resize the selection rectangle during recording β€” the capture region updates in real-time without stopping the recording.

βœ“

Auto-Open in Finder

After stopping, the saved .mov file automatically opens in Finder at the configured storage directory.

9. Live Meeting Notes & Transcription

Real-time speech-to-text transcription powered by Deepgram Nova or OpenAI Whisper. BerryShot captures both your microphone and system audio simultaneously, displaying live captions in a floating window during screen recording.

πŸŽ™οΈ
Two-Source Transcription BerryShot transcribes audio from two sources simultaneously: your microphone (labeled "You") and system audio (labeled "Other"). This captures both sides of a meeting conversation.

Step 1: Choose a Transcription Provider

Open Settings (⌘ + ,) β†’ click the AI tab β†’ scroll down to the Live Transcription section.

In the Provider dropdown, choose one of:

Provider Latency Cost Note
Off (SFSpeech) N/A Free Built-in Apple Speech, English only, not real-time
Deepgram ~300ms $0.0043/min $200 free credit on signup. Best for Vietnamese
OpenAI Realtime ~200ms $0.006/min Uses Whisper model via Realtime API

Step 2: Configure API Key & Model

For Deepgram

  1. Create an account at deepgram.com (get $200 free credit)
  2. Go to API Keys in the Deepgram Console and copy your key
  3. Paste into the API Key field in BerryShot
  4. Model: leave as default nova-2 or change to nova-3
  5. Click Save Key

For OpenAI Realtime

  1. Get an API key from platform.openai.com
  2. Paste into the API Key field (format: sk-...)
  3. Model: gpt-realtime-whisper (this is the only model that supports transcription)
  4. Base URL: Leave empty to use OpenAI default, or enter a custom endpoint
  5. Click Save Key

Step 3: Set Language

In the Language dropdown, choose your preferred recognition language:

  • Auto detect β€” let the provider detect language automatically
  • πŸ‡»πŸ‡³ Vietnamese β€” optimized for Vietnamese speech (recommended for Vietnamese meetings)
  • πŸ‡ΊπŸ‡Έ English β€” optimized for English speech
  • πŸ‡―πŸ‡΅ Japanese β€” optimized for Japanese speech

Step 4: Start Live Transcription

  1. Press your capture shortcut (default: βŒ˜β‡§2) or click Capture Region in the menu bar
  2. Select the screen region you want to record
  3. Click the Record button (red circle) on the toolbar β€” this starts both screen recording and live transcription simultaneously
  4. A floating Live Meeting Notes window will appear at the bottom-right of your screen, showing real-time transcription
  5. Speak into your microphone β€” your words appear labeled as "You"
  6. System audio (e.g., other participants in a video call) appears labeled as "Other"
πŸ’‘
Tip: Microphone Permission On first use, macOS will ask for microphone access. BerryShot needs this to transcribe your voice. Go to System Settings β†’ Privacy & Security β†’ Microphone and enable BerryShot.

Step 5: Generate Meeting Minutes

  1. While recording (or after stopping), click the "Generate Meeting Minutes" button in the Live Meeting Notes window
  2. BerryShot sends the full transcript to your configured AI provider (from the Authentication section above)
  3. The AI generates a structured Markdown document with:
    • Summary β€” brief overview of the meeting
    • Key Discussion Points β€” main topics covered
    • Decisions Made β€” agreed-upon outcomes
    • Action Items β€” next steps and responsibilities
  4. The result appears in a floating AI window with streaming text β€” you can copy it with one click

Live Meeting Notes Window Features

βœ“

Real-time Streaming

Partial text appears as you speak (italic), finalized when you finish a sentence

βœ“

Two-Source Labels

Mic input = "You" (green), System audio = "Other" (blue)

βœ“

Auto-Scroll

Window automatically scrolls to show the latest transcription

βœ“

Copy Transcript

One-click copy of the full formatted transcript with timestamps

βœ“

Always on Top

Floating window stays above all other windows during your meeting

βœ“

Mic Mute Aware

Transcription pauses when you mute the microphone during recording

πŸ”„
Fallback: Apple SFSpeech If no realtime provider is configured, BerryShot falls back to Apple's built-in SFSpeechRecognizer. This works offline and is free, but only supports English and is not truly real-time (restarts every 45 seconds). For the best experience, configure Deepgram or OpenAI Realtime.

10. Screenshot History

BerryShot automatically saves your capture history using SwiftData. Browse, search, and manage all your previous screenshots directly from the app without needing to locate files manually in Finder.

History Features

βœ“

Auto-Save

Every screenshot is automatically saved to history with timestamp metadata

βœ“

SwiftData Storage

Uses Apple's modern SwiftData framework for efficient local persistence

βœ“

Quick Access

Access history from menu bar to re-copy, re-upload, or delete past captures

βœ“

Sorted by Date

History is sorted newest-first with creation timestamps for easy browsing

πŸ“Έ
Local Storage Only Screenshot history is stored entirely on your device using SwiftData. No data is sent to external servers. You can delete individual entries or clear the entire history at any time.

11. Cloud Upload Configuration

Easily share screenshots and recordings by configuring your preferred storage destination. BerryShot supports three storage providers in v1.1.2.

πŸ“

Local Directory (Default)

Saves files to ~/Library/Application Support/BerryShot/. Click "Change Directory..." to select a custom folder.

☁️

Google Drive

Enter your OAuth Access Token and Refresh Token. Files are uploaded via Google Drive API v3 and a shareable link is automatically copied to your clipboard.

πŸ”—

Custom Service API

Upload to any custom endpoint. Supports Access Token (Bearer) or API Key + Secret authentication. Configure the Endpoint URL and Callback URL to parse the returned shareable link.

Figure 9.1: Cloud Settings & Storage Configuration Screen
Cloud Settings Window
Cloud Upload Settings Screen

12. Privacy & Permissions

Because BerryShot captures your screen and audio, macOS enforces strict security access checks. You must explicitly authorize the required permissions before the app can function.

⚠

Screen Recording Permission

Required for screen capture and recording. Navigate to System Settings β†’ Privacy & Security β†’ Screen Recording, and toggle BerryShot ON.

⚠

Microphone Permission

Required for live transcription and screen recording with audio. Navigate to System Settings β†’ Privacy & Security β†’ Microphone, and toggle BerryShot ON.

πŸ›‘οΈ
Privacy First Promise BerryShot is 100% free, with no ads, no trackers, and no background data collection. All OCR and screen capture processing happens locally on your device. Data is only sent externally when you explicitly trigger Upload or AI Analysis.

13. Support & Contact

If you run into issues, have feature proposals, or require business assistance, please email our support address.

Contact Developer Team

We respond to email inquiries within 24-48 business hours.

VietQR Vietcombank donation code
Donate to support development