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:| Action | macOS | Windows/Linux |
|---|---|---|
| New Expense | Cmd + N | Ctrl + N |
| Search | Cmd + K | Ctrl + K |
| Settings | Cmd + , | Ctrl + , |
| Toggle Sidebar | Cmd + B | Ctrl + B |
| Reload | Cmd + R | Ctrl + R |
| Quit | Cmd + Q | Ctrl + Q |
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
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:Architecture
Electron vs Web
Key differences from web version:| Feature | Web | Desktop |
|---|---|---|
| Auto-updates | Browser managed | Built-in updater |
| Notifications | Browser notifications | Native OS notifications |
| File access | Limited by browser | Full file system access |
| Shortcuts | Browser shortcuts only | Global + app shortcuts |
| Offline | Service Worker | Full offline support |
| System tray | No | Yes |
Platform-Specific Features
macOS
Touch Bar Support
Touch Bar Support
MacBook Pro Touch Bar integration:
- Quick actions
- Navigation controls
- Search shortcuts
Dock Integration
Dock Integration
- Badge counts for unread items
- Dock menu with quick actions
- Bounce notifications
Menu Bar Integration
Menu Bar Integration
Windows
Taskbar Integration
Taskbar Integration
- Jump list with recent items
- Progress indicators
- Thumbnail previews
Action Center
Action Center
- Windows notification integration
- Toast notifications
- Notification settings
Start Menu
Start Menu
Linux
Desktop Entry
Desktop Entry
- .desktop file integration
- Application menu support
- MIME type associations
System Tray
System Tray
- StatusNotifierItem support
- App indicators
- System tray icon
Package Formats
Package Formats
- 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
- macOS
- Windows
- Linux
- Download
.dmgfile - Open the disk image
- Drag app to Applications folder
- Launch from Applications
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: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: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
App won't launch
App won't launch
macOS:
- Check Security & Privacy settings
- Try: Right-click > Open
- Verify app isn’t quarantined:
xattr -cr /Applications/NewExpensify.app
- Run as administrator
- Check Windows Defender settings
- Verify .NET Framework is installed
- Check executable permissions
- Install missing dependencies:
ldd NewExpensify
App crashes on startup
App crashes on startup
-
Delete app data:
- macOS:
~/Library/Application Support/NewExpensify/ - Windows:
%APPDATA%\NewExpensify\ - Linux:
~/.config/NewExpensify/
- macOS:
- Check logs for errors
- Reinstall the application
Updates not installing
Updates not installing
- Check internet connection
- Disable antivirus temporarily
- Run app as administrator (Windows)
- Clear update cache:
- macOS:
~/Library/Application Support/NewExpensify/pending-updates/ - Windows:
%LOCALAPPDATA%\NewExpensify\pending-updates\
- macOS:
Notifications not working
Notifications not working
macOS:
System Preferences > Notifications > NewExpensifyWindows:
Settings > System > Notifications > NewExpensifyLinux:
Check notification daemon is running:
Comparison: Desktop vs Web vs Mobile
| Feature | Desktop | Web | Mobile |
|---|---|---|---|
| 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
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
