Paperless Go is a Flutter mobile client for paperless-ngx. It connects directly to your self-hosted paperless-ngx instance so you can browse, search, scan, upload, and manage documents from iPhone, iPad, and Android devices.
- Connect to a paperless-ngx server with your base URL, username, and password.
- Browse recent uploads, review documents, and the full document library.
- Search documents and filter by tags, correspondents, and document types.
- Open documents, inspect metadata, and perform supported document actions.
- Scan paper documents on-device and upload them to your server.
- Protect app access with biometric or device-credential unlocking.
- Use the app in English, German, French, Italian, or Spanish.
- Benefit from layouts that adapt to phones and larger tablet screens.
The app signs in against your paperless-ngx API and stores the connection details locally on your device so you can reconnect quickly. It includes optional biometric protection for reopening the app after it has been in the background.
Paperless Go provides dedicated views for recent items, review items, and the main document library. Documents can be shown in list or card-based layouts depending on the screen size and view settings.
The document library supports text search, sorting, and server-backed filters. You can narrow results using paperless metadata such as tags, correspondents, and document types.
The app supports opening documents, viewing details, and running supported follow-up actions such as metadata edits, renaming, sharing, and deletion where the authenticated account has permission.
Paper documents can be scanned directly in the app, converted into a PDF on-device, and uploaded to the connected paperless-ngx server.
Users can configure server connection details, language behavior, theme mode, caching preferences, and app lock behavior from the settings screen.
- Android
- iOS
- Compact and large-screen layouts for phones and tablets
- Install the app build for your platform.
- Open the app and enter your paperless-ngx server URL.
- Sign in with the same account you use for paperless-ngx.
- Start browsing, searching, or scanning documents.
Prerequisites:
- Flutter SDK compatible with Dart
^3.9.2 - A reachable paperless-ngx server for manual testing
- Xcode for iOS builds or Android Studio / Android SDK for Android builds
Common commands:
flutter pub get
flutter run
flutter test
dart run build_runner build --delete-conflicting-outputsAndroid and iOS screenshot lanes can now run against a live demo server instead of the mock screenshot repository.
- Copy
scripts/screenshot-env.sh.exampletoscripts/screenshot-env.sh. - Set
PAPERLESS_SCREENSHOT_DATA_SOURCE=livetogether withPAPERLESS_SCREENSHOT_SERVER_URL,PAPERLESS_SCREENSHOT_USERNAME, andPAPERLESS_SCREENSHOT_PASSWORD. - Run
./scripts/android/run_fastlane.sh screenshotsfor Play Store screenshots or./scripts/ios/run_fastlane.sh screenshotsfor App Store screenshots.
To re-create only specific screenshots, pass a comma-separated screenshots: filter with the stable screenshot file names, for example ./scripts/android/run_fastlane.sh screenshots screenshots:"03-filter-sort,06-settings-screen".
The local scripts/screenshot-env.sh file is ignored by git and is sourced automatically by both Fastlane wrapper scripts.
- Flutter for the shared mobile UI
- Riverpod for application state management
- Retrofit and Dio for API communication
- Shared Preferences for local settings and credentials
- Hive for local caching
Repository docs for release workflows and store operations:
- Documentation and user help: https://github.com/iweinzierl/paperless-go/wiki
- Issue tracker: https://github.com/iweinzierl/paperless-go/issues
The current app version is defined in pubspec.yaml.