Mobile Camera & QR Scanner
unlistedby hsj1992
A third-party Obsidian plugin that lets you take photos and capture QR codes on mobile devices, then insert them into notes.
Mobile Camera & QR Scanner Plugin for Obsidian
An Obsidian plugin designed for mobile devices, providing camera photo capture and QR code recognition functionality.
π± Mobile Only: This plugin is designed exclusively for mobile devices (Android). It will load silently on desktop without any errors or notifications, but all features are disabled. iOS support is not yet implemented.
Features
- π· Take Photos: Use the rear camera to take photos and insert them into notes
- π Capture QR Codes: Take photos of QR codes and insert the recognized content into notes
- π Flexible Storage: Support for custom save path templates
- βοΈ File Naming: Optional file rename prompt and customizable filename template
Screenshots
Installation
Method 1: From Release (Recommended)
- Go to the Releases page
- Download the latest release files (
main.js,manifest.json, andstyles.cssif available) - Create a folder named
mobile-camera-qr-pluginin your vault's.obsidian/plugins/directory - Copy the downloaded files into the
mobile-camera-qr-pluginfolder - Reload Obsidian and enable the plugin in Settings β Community plugins
Method 2: Manual Build
- Download or clone this repository
- Run
npm installto install dependencies - Run
npm run buildto build the plugin - Copy
main.jsandmanifest.jsonto your vault's.obsidian/plugins/mobile-camera-qr-plugin/directory - Enable the plugin in Obsidian settings
Method 3: Development Mode
- Clone this repository to your vault's
.obsidian/plugins/directory - Run
npm install - Run
npm run devto start development mode (auto-watch for file changes) - Enable the plugin in Obsidian settings
Usage
The plugin provides three commands:
- Camera: Main Menu - Open the main menu to choose between taking a photo or capturing a QR code
- Camera: Take Photo - Directly enter photo mode
- Camera: Capture QR Code - Directly take a photo to recognize QR code
Quick Start
- Open a note
- Search for the above commands in the command palette, or pin command shortcuts in the mobile toolbar for quick access
- Choose to take a photo or capture a QR code
- After taking a photo, the image will be automatically saved and inserted into the note
- After capturing a QR code photo, the recognized content will be automatically inserted into the note
Use Case Examples
π Daily Journal with Photos
Scenario: Quickly add photos to your daily notes
- Open today's daily note
- Tap the camera command (pin it to toolbar for quick access)
- Take a photo of your meal, workspace, or anything noteworthy
- Photo is automatically inserted with
![[image.jpg]]syntax
Tip: Enable "Direct import" in settings for fastest workflow
π¦ Product Documentation
Scenario: Document products with QR codes and photos
- Create a note for the product
- Use "Capture QR Code" to take a photo and recognize product information
- Use "Take Photo" to capture product images
- All content is automatically inserted into your note
Tip: Disable "Direct import" to rename photos with descriptive names
π« Event Collection
Scenario: Collect QR codes from tickets, business cards, or posters
- Create a collection note (e.g., "Conference 2024")
- Use "Capture QR Code" command repeatedly
- Each recognized QR code content is inserted as text
- Add your own notes between captures
π Research Notes
Scenario: Capture book pages, whiteboards, or documents
- Open your research note
- Use "Take Photo" to capture content
- Photos are saved in
{notepath}/imageby default - Organize by customizing the save folder path
Tip: Use {notepath}/attachments to keep photos organized by note location
For more advanced usage, see the Advanced Guide.
Configuration Options
You can configure the following in the plugin settings:
-
Save folder: Photo save path template
- Default:
{notepath}/image {notepath}will be replaced with the current note's directory- Examples:
Cameraor{notepath}/attachments
- Default:
-
Auto-save photo: Whether to save photos automatically
- Enabled: Photos are saved directly after capture
- Disabled: Prompt for a filename after taking a photo
-
Photo filename template: Customize the auto-generated filename
- Default:
{YYYY}{MM}{DD}-{HH}{mm}{ss}{SSS}-{random} - Placeholders:
{YYYY}{MM}{DD}{HH}{mm}{ss}{SSS}{random}
- Default:
-
Copy QR result to clipboard: Copy recognized QR text to clipboard
- Default: Off
Privacy & Permissions
Permissions
- Camera Permission: This plugin requires access to the device camera to take photos and capture QR codes
- When first used, Android will request camera permission; please allow it to use this plugin
Privacy Policy
This plugin highly values your privacy:
- β Local Storage: All photos and recognized QR code content are saved only in your local Obsidian vault
- β No Network Activity: This plugin does not send data to any external servers
- β No Data Collection: No usage data or analytics are collected
- β No Telemetry: No tracking or statistics code is included
- β Open Source Transparency: All code is publicly available for review
Your photos and data are completely under your control and never leave your device.
Tech Stack
- TypeScript
- Obsidian API
- jsQR - QR code decoding library
- esbuild - Fast build tool
- Web APIs (File Input with camera capture)
Development
# Install dependencies
npm install
# Development mode (auto-watch for file changes)
npm run dev
# Production build
npm run build
Build Notes
This project uses esbuild as the build tool, which is faster and lighter than traditional Rollup or Webpack.
- Development mode generates code with sourcemaps for easier debugging
- Production mode performs code minification and tree-shaking optimization
QR Code Recognition
The plugin uses a dual strategy for QR code recognition from photos:
- Prioritizes the native
BarcodeDetectorAPI (if the browser supports it) - Falls back to the jsQR library for multi-scale image processing
This ensures optimal compatibility and performance across different devices.
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.