Fichero processes archival materials (documents in JPG, PDF, TIFF format), and crops, splits, enhances contrast, removes backgrounds, and then transcribes text using AI LLMs, before exporting them to Word documents, with the image of the document on the right verso page, and the recto page as the text.
Follow along on the Fichero website
Fichero:
- Processes archival materials (scanned documents, images, etc.)
- Splits multi-page materials into single pages
- Enhances image quality and removes backgrounds
- Transcribe text using:
- Qwen Max (full document or segmented processing)
- LM Studio Models (full document or segmented processing)
- Cleans and format transcriptions
- Generate Word documents with side-by-side layout
- Processes text files using LLMs with configurable prompts.
- Converts output to formatted Word (.docx) documents.
For command-line usage or contributing to development:
- Clone the repository:
git clone https://github.com/dtubb/fichero.git
cd fichero-
Install system dependencies:
On macOS:
brew install poppler # Required for PDF processing brew install libjxl # Optional: For JPEG XL support brew install libheif # Optional: For HEIC/HEIF support brew install libraw # Optional: For RAW format support brew install exiftool # Optional: For metadata handling
-
Create and activate a virtual environment:
Option 1 - Using venv:
python -m venv venv source venv/bin/activate -
Install Python dependencies:
pip install -r requirements.txtRun the GUI directly without Briefcase:
# From the project root directory
python -m src/ficheroThis launches the GUI application directly using Toga, without needing to use Briefcase.
Run Fichero from the command line for advanced usage:
# From the src directory
cd src
# Show all available commands
python -m fichero --help
# Process a single folder
python -m fichero process-folders /path/to/input /path/to/output
# Process folders with a specific workflow
python -m fichero process-folders /path/to/input /path/to/output default
# Prepare folders for processing (first phase)
python -m fichero prepare /path/to/input /path/to/output
# Check worker status
python -m fichero worker-status
# See example usage
python -m fichero exampleprocess-folders: Main command to process documents with AI transcriptionprepare: Prepare folders by copying and organizing filesworker-status: Check status of background processing workersreset-workers: Restart all background workersstop-workers: Stop all background workerspurge-tasks: Clear all pending processing tasksexample: Show detailed usage examples
Fichero can be built using BeeWare Briefcase, which packages Python apps as native applications for multiple platforms.
Run the app in development mode (faster iteration):
For GUI development, install BeeWare Briefcase.
pip install briefcase# Run the GUI app directly
briefcase devCreate a native macOS app:
# Create the app bundle
briefcase create
# Build the app (compile and package)
briefcase build
# Create a distributable package (.dmg) of the console app.
briefcase packageThe app should be able to be built for multiple platforms. But, I've only tested macOS.
- macOS:
.appbundle,.dmginstaller - Windows:
.exeapplication,.msiinstaller - Linux: AppImage, native packages
For more information, see the BeeWare documentation.
The easiest way to use Fichero:
- Run the app directly:
briefcase dev - Click "Choose Folder" to select a folder containing your documents
- Click "Process" to start processing
- The app will:
- Process all documents in the selected folder
- Save processed files to your Desktop in a
Fichero_Output_[folder_name]folder
Fichero supports multiple formats and features.You can configure this in your plan.yml file stored in /src/resources/plans/plan.yml:
To transcribe with Alibababa features, you'll need to set up your DashScope API key:
- Sign up or log in to your Alibaba Cloud account
- Navigate to the DashScope console
- Create an API key
- Create a
.envfile in the project root:
touch .env- Open the file with TextEdit:
open -a TextEdit .env- Add your API key:
DASHSCOPE_API_KEY=your_api_key_here
- Save the file
Note: The DashScope API costs money.
To use the LM Studio workflows, you'll need to:
- Download and install LM Studio from lmstudio.ai
- Download the Qwen 2.5 VL 7B model (or another VL model) in LM Studio:
- Open LM Studio
- Go to the "Models" tab
- Search for "Qwen2.5-VL-3B-Instruct-8bit"
- Download the model
- Start the LM Studio server:
- Go to the "Local Server" tab
- Click "Start Server"
- The server will run on
http://localhost:1234by default - The API endpoint for chat completions is
http://localhost:1234/v1/chat/completions
Citation for Fichero: Tubb, Daniel, and Andrew Janco. "Fichero: Document Processing and Transcription." GitHub, May 9, 2025. https://github.com/dtubb/fichero.