SkillAgentSearch skills...

Makeacopy

MakeACopy is an open-source document scanner app for Android that allows you to digitize paper documents with OCR functionality. The app is designed to be privacy-friendly, working completely offline without any cloud connection or tracking.

Install / Use

/learn @egdels/Makeacopy
About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

MakeACopy

MakeACopy is an open-source offline document scanner with OCR for Android, designed for privacy-friendly and self-hosted document workflows.

It allows you to digitize paper documents into searchable PDFs while keeping the entire processing pipeline on your device. The app works completely offline and avoids any cloud services, telemetry, or tracking.

MakeACopy is designed to be a reliable building block for privacy-friendly document workflows, especially when combined with self-hosted storage systems.

Looking for a Microsoft Lens alternative?

With the discontinuation of Microsoft Lens, many users are looking for a reliable way to scan documents on Android.

MakeACopy offers the same core building blocks - document scanning, OCR, and searchable PDF export - while following a fundamentally different design:

  • Fully offline – no cloud services required
  • No tracking or telemetry
  • Open source and auditable
  • Designed for long-term, self-hosted workflows

Instead of integrating into a cloud ecosystem, MakeACopy focuses on local processing and interoperability with tools like SambaLite, paperless-ngx, and Syncthing.

This makes it especially suitable for users who prefer control, privacy, and predictable behavior over cloud-based convenience features.

Mobile Document Pipeline

MakeACopy can be combined with SambaLite to create a fully automated mobile document workflow:

Paper document
      ↓
Scan with MakeACopy
      ↓
Inbox folder
      ↓
SambaLite folder sync
      ↓
NAS / archive (e.g. paperless-ngx)

This setup effectively turns your smartphone into a privacy-friendly mobile network scanner for self-hosted document archives.

Design Philosophy

MakeACopy treats privacy and offline operation as technical design decisions, not as moral or political statements. The app works fully offline, is open source, and avoids tracking or cloud services because this results in a simpler, more robust, and more auditable system. Users are encouraged to evaluate MakeACopy based on its concrete features and implementation rather than on positioning or narratives.

App Size Note

To ensure fully offline operation, MakeACopy bundles OCR language models, fonts, and image processing components locally. This significantly increases the app size, but avoids any cloud dependencies or on-demand downloads.

100 MB are not a sign of excess, but of consistency.

Editions

MakeACopy is available in two editions:

| Edition | OCR Languages | Fonts | APK Size (arm64-v8a) | |---------|--------------|-------|---------------------| | Full | 22 languages (incl. CJK, Arabic, Thai, Turkish) | 4 fonts (incl. CJK) | ~99 MB | | Light | English + German | 1 font (NotoSans) | ~58 MB |

Both editions include the same ML-based document detection (ONNX model), OpenCV image processing, and full offline functionality. Both editions use an operator-stripped ONNX Runtime build that includes only the operators required for document detection. The Light edition additionally ships fewer OCR language models, fonts, and dictionaries, and uses a minimal ONNX Runtime AAR without XNNPACK and NNAPI to further reduce APK size.

The Full edition is available on F-Droid and Google Play. The Light edition is available exclusively via GitHub Releases.

<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80"> <img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80">

Downloads last month Downloads all time

Or download the latest APK from the Releases Section.

License

APK Verification

All official releases of MakeACopy are signed with one of the following certificates:

  • Upload key (used for GitHub releases, F-Droid, and sideload APKs)
    SHA-256: AE:32:2D:3F:B7:1A:FE:21:DF:47:27:E3:7A:5C:68:03:51:1D:5A:2F:E1:FC:31:35:43:0C:EE:06:99:FA:1B:34

  • Google Play App Signing key (used for Play Store releases)
    SHA-256: C0:71:44:39:CB:51:62:32:A4:47:91:7A:6F:C2:28:1E:45:FA:AA:DD:37:F8:30:B1:01:1F:B4:85:68:8E:0D:64

Verify with apksigner

apksigner verify --print-certs MakeACopy-vX.Y.Z.apk

Features

  • Camera Scanning: Capture documents using the device camera
  • Edge Detection: Automatic document edge detection using OpenCV, enhanced with a custom-trained machine learning model (ONNX, Apache 2.0)
  • Perspective Correction: Adjust and crop documents with manual or automatic perspective correction
  • Image Enhancement: Apply filters (grayscale, contrast, sharpening)
  • OCR: Offline text recognition with Tesseract (fast models included, optional best models via Language-Pack APKs)
  • OCR Review: Interactive review and correction of OCR results with word-level editing, dictionary-based suggestions, confidence highlighting, and re-OCR for individual words
  • PDF Export: Save as searchable PDF with recognized text
  • JPEG Export: Export scans as high-quality JPEG images (configurable quality, color/BW)
  • Multi-page Scanning: Combine multiple pages into one document; reorder and manage pages before export
  • Last Scans: Quickly access and reuse your most recent scans
  • Inbox Mode: Automatically save scans to a predefined folder — ideal for paperless-ngx, Nextcloud, or Syncthing workflows
  • Share & Save: Export locally or share with other apps
  • Dark Mode: Material 3 theme with day/night support
  • Privacy-Focused: 100% offline functionality, no internet connection required

Accessibility Mode

Inbox Mode

OCR Languages

MakeACopy supports OCR via Tesseract. You can choose the OCR language during the OCR step.

Supported out of the box:

  • English (eng), German (deu), French (fra), Italian (ita), Spanish (spa), Portuguese (por), Dutch (nld), Polish (pol), Czech (ces), Slovak (slk), Hungarian (hun), Romanian (ron), Danish (dan), Norwegian (nor), Swedish (swe), Turkish (tur), Russian (rus), Thai (tha)
  • Chinese (Simplified) — chi_sim, Chinese (Traditional) — chi_tra
  • Arabic (ara), Persian/Farsi (fas)

Notes:

  • All OCR runs fully offline on-device.
  • For Chinese, MakeACopy includes appropriate CJK fonts for better PDF text embedding.
  • For Arabic and Persian, MakeACopy includes the Noto Naskh Arabic font for proper RTL (right-to-left) text rendering in PDF exports.

Screenshots

<p align="center"> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/1_en-US.png" alt="MakeACopy screenshot 1" width="110" /> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/2_en-US.png" alt="MakeACopy screenshot 2" width="110" /> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/3_en-US.png" alt="MakeACopy screenshot 3" width="110" /> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/4_en-US.png" alt="MakeACopy screenshot 4" width="110" /> </p>

Installation

F-Droid

MakeACopy is F-Droid compliant. The app builds all required native components from source during CI/local builds:

  1. OpenCV Java Classes: The required OpenCV Java wrapper classes are directly included in the app's source tree (copied from OpenCV but now part of this project). They are no longer used from the submodule.
  2. OpenCV Native Libraries: All OpenCV native libraries are built from source using the official OpenCV code provided via the Git submodule at external/opencv.
  3. ONNX Runtime Native Libraries: For ML-assisted edge detection, ONNX Runtime is built from source (XNNPACK and NNAPI, Java bindings) using the submodule at external/onnxruntime via scripts/build_onnxruntime_android.sh. The resulting artifacts are integrated into app/src/main/jniLibs/<ABI>/ (e.g., libonnxruntime.so, libonnxruntime4j_jni.so) and app/libs/ (onnxruntime-*.jar).

This approach ensures F-Droid compatibility by not including any pre-compiled binaries in the repository and building OpenCV and ONNX Runtime native components from source.

GitHub Releases

You can download the latest APK from the Releases page.

Automated Builds

Related Skills

diffs

338.0k

Use the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.

clearshot

Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.

openpencil

1.8k

The world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.

ui-ux-designer

Use this agent when you need to design, implement, or improve user interface components and user experience flows. Examples include: creating new pages or components, improving existing UI layouts, implementing responsive designs, optimizing user interactions, building forms or dashboards, analyzing existing UI through browser snapshots, or when you need to ensure UI components follow design system standards and shadcn/ui best practices.\n\n<example>\nContext: User needs to create a new dashboard page for team management.\nuser: "I need to create a team management dashboard where users can view team members, invite new members, and manage roles"\nassistant: "I'll use the ui-ux-designer agent to design and implement this dashboard with proper UX considerations, using shadcn/ui components and our design system tokens."\n</example>\n\n<example>\nContext: User wants to improve the user experience of an existing form.\nuser: "The signup form feels clunky and users are dropping off. Can you improve it?"\nassistant: "Let me use the ui-ux-designer agent to analyze the current form UX and implement improvements using our design system and shadcn/ui components."\n</example>\n\n<example>\nContext: User wants to evaluate and improve existing UI.\nuser: "Can you take a look at our pricing page and see how we can make it more appealing and user-friendly?"\nassistant: "I'll use the ui-ux-designer agent to take a snapshot of the current pricing page, analyze the UX against Notion-inspired design principles, and implement improvements using our design tokens."\n</example>

View on GitHub
GitHub Stars296
CategoryDesign
Updated1d ago
Forks14

Languages

Java

Security Score

80/100

Audited on Mar 25, 2026

No findings