Skip to main content
New Expensify provides native desktop applications for macOS, Windows, and Linux, offering the same features as the web version with additional desktop integration.

Overview

The desktop applications are built using Electron, wrapping the web application with native desktop features.
The desktop apps provide the same functionality as the web version at new.expensify.com with added desktop integration features.

Supported Platforms

macOS

macOS 10.13 (High Sierra) or laterIntel and Apple Silicon (M1/M2) support

Windows

Windows 10 or later64-bit architecture

Linux

Ubuntu 18.04+, Debian 10+, Fedora 32+AppImage, .deb, and .rpm packages

Desktop Features

Native Integration

System Tray / Menu Bar

  • Quick access to New Expensify from system tray
  • Show/hide main window
  • Notification badges for unread messages
  • Quick actions menu

Keyboard Shortcuts

Global and app-specific keyboard shortcuts:
ActionmacOSWindows/Linux
New ExpenseCmd + NCtrl + N
SearchCmd + KCtrl + K
SettingsCmd + ,Ctrl + ,
Toggle SidebarCmd + BCtrl + B
ReloadCmd + RCtrl + R
QuitCmd + QCtrl + Q
View all keyboard shortcuts by pressing Cmd + / (macOS) or Ctrl + / (Windows/Linux).

Native Menus

Platform-native menu bars with:
  • File operations
  • Edit commands (copy, paste, undo)
  • View options
  • Window management
  • Help and documentation

File System Access

  • Direct file system access for receipt uploads
  • Drag-and-drop file support
  • Native file picker dialogs
  • Download manager integration

Auto-Update

Desktop apps automatically check for and install updates:
  • Background update checks
  • Automatic download of new versions
  • Update notifications
  • Seamless update installation
Updates are typically released alongside web updates and installed on next app restart.

Offline Support

Full offline functionality identical to mobile apps:
  • Create and edit expenses offline
  • View cached data
  • Automatic sync when online
  • Queue-based request handling
See Offline Mode for details on offline architecture.

Multi-Window Support

  • Open multiple workspaces in separate windows
  • Picture-in-picture mode for chats
  • Window state persistence
  • Cross-window navigation

Native Notifications

Operating system-native notifications:
  • Desktop notification center integration
  • Action buttons in notifications
  • Sound and badge support
  • Do Not Disturb mode respect

Development

Building Desktop Apps

The desktop applications are built from the web bundle:
# Build web assets
npm run build

# The desktop app wraps the web build
# Electron configuration in desktop/ directory

Architecture

Desktop App Architecture:

┌─────────────────────────────────┐
│      Electron Main Process      │
│  (Native APIs, System Access)   │
└───────────┬─────────────────────┘

            │ IPC Communication

┌───────────▼─────────────────────┐
│    Electron Renderer Process    │
│     (React Web Application)     │
└─────────────────────────────────┘

Electron vs Web

Key differences from web version:
FeatureWebDesktop
Auto-updatesBrowser managedBuilt-in updater
NotificationsBrowser notificationsNative OS notifications
File accessLimited by browserFull file system access
ShortcutsBrowser shortcuts onlyGlobal + app shortcuts
OfflineService WorkerFull offline support
System trayNoYes

Platform-Specific Features

macOS

MacBook Pro Touch Bar integration:
  • Quick actions
  • Navigation controls
  • Search shortcuts
  • Badge counts for unread items
  • Dock menu with quick actions
  • Bounce notifications

Windows

  • Jump list with recent items
  • Progress indicators
  • Thumbnail previews
  • Windows notification integration
  • Toast notifications
  • Notification settings
  • Pin to Start
  • Live Tiles (Windows 10)
  • Quick actions

Linux

  • .desktop file integration
  • Application menu support
  • MIME type associations
  • StatusNotifierItem support
  • App indicators
  • System tray icon
  • AppImage (universal)
  • .deb (Debian/Ubuntu)
  • .rpm (Fedora/RHEL)
  • Snap (optional)

Distribution

Download Locations

Official Website

Download for all platforms

GitHub Releases

Direct download links

Installation

  1. Download .dmg file
  2. Open the disk image
  3. Drag app to Applications folder
  4. Launch from Applications
Note: First launch may require right-click > Open if from unidentified developer

Configuration

Settings Location

Desktop app settings are stored in:
  • macOS: ~/Library/Application Support/NewExpensify/
  • Windows: %APPDATA%\NewExpensify\
  • Linux: ~/.config/NewExpensify/

Data Storage

Local data is stored using the same Onyx storage as mobile:
  • SQLite database for structured data
  • Local cache for images and attachments
  • Persistent offline queue

Custom URLs

The desktop app can be configured to use custom API endpoints for development:
// In Electron main process
const apiUrl = process.env.EXPENSIFY_API_URL || 'https://www.expensify.com';

Debugging

Developer Tools

Open Chrome DevTools in desktop app:
  • macOS: Cmd + Option + I
  • Windows/Linux: Ctrl + Shift + I

Console Logs

View application logs:
  • macOS: ~/Library/Logs/NewExpensify/
  • Windows: %USERPROFILE%\AppData\Roaming\NewExpensify\logs\
  • Linux: ~/.config/NewExpensify/logs/

Debug Mode

Run in debug mode:
# macOS/Linux
DEBUG=* /Applications/NewExpensify.app/Contents/MacOS/NewExpensify

# Windows
set DEBUG=*
NewExpensify.exe

Security

Code Signing

Desktop apps are signed with platform certificates:
  • macOS: Apple Developer ID Application
  • Windows: Authenticode certificate
  • Linux: GPG signature (AppImage)

Permissions

Required system permissions:
  • Camera: For receipt scanning (optional)
  • Microphone: For video calls (optional)
  • File System: For receipt uploads
  • Notifications: For desktop notifications

Auto-Update Security

Updates are verified before installation:
  • Signature verification
  • HTTPS-only update checks
  • Integrity hash validation

Troubleshooting

macOS:
  • Check Security & Privacy settings
  • Try: Right-click > Open
  • Verify app isn’t quarantined: xattr -cr /Applications/NewExpensify.app
Windows:
  • Run as administrator
  • Check Windows Defender settings
  • Verify .NET Framework is installed
Linux:
  • Check executable permissions
  • Install missing dependencies: ldd NewExpensify
  1. Delete app data:
    • macOS: ~/Library/Application Support/NewExpensify/
    • Windows: %APPDATA%\NewExpensify\
    • Linux: ~/.config/NewExpensify/
  2. Check logs for errors
  3. Reinstall the application
  1. Check internet connection
  2. Disable antivirus temporarily
  3. Run app as administrator (Windows)
  4. Clear update cache:
    • macOS: ~/Library/Application Support/NewExpensify/pending-updates/
    • Windows: %LOCALAPPDATA%\NewExpensify\pending-updates\
macOS: System Preferences > Notifications > NewExpensifyWindows: Settings > System > Notifications > NewExpensifyLinux: Check notification daemon is running:
ps aux | grep notification

Comparison: Desktop vs Web vs Mobile

FeatureDesktopWebMobile
Offline Mode✓ Full✓ Service Worker✓ Full
Auto-Updates✓ Built-in✓ Automatic✓ Store/APK
Keyboard Shortcuts✓ Global✓ Limited
Receipt Scanning✓ Upload✓ Upload✓ Camera
System Tray
Push Notifications✓ Native✓ Browser✓ Native
File System✓ Full✗ Limited✗ Limited
Multi-Window✓ Tabs

Performance

Resource Usage

Typical resource consumption:
  • Memory: 150-300 MB
  • CPU: < 5% idle, 10-20% active
  • Disk: ~200 MB installed

Optimization Tips

1

Close Unused Windows

Each window consumes additional memory
2

Clear Cache Periodically

Settings > Clear Cache to free disk space
3

Disable Unnecessary Features

Turn off animations if performance is slow
4

Keep Updated

Latest versions include performance improvements

Next Steps

Offline Mode

Learn about offline functionality

Keyboard Shortcuts

Master productivity shortcuts

iOS App

Mobile experience on iOS

Android App

Mobile experience on Android

Build docs developers (and LLMs) love