OCR Processing
Scan a folder, review the plan, then run OCR over the pages that need it.
Engine status
Input source
Engine & settings
Status
Log
Engine for the queue
Start sends the section's pages to Run OCR with this engine and asks you to confirm the page count and the estimated cost first — only those pages are sent, not the whole file.
Marked for reprocess
Pages you marked Incorrect or Reprocess in Review — only you put pages here, nothing is added automatically. They keep their old, wrong text until they are read again.
Failed pages
Pages the engine could not read at all. A different engine is usually what fixes them.
Poorly read pages
Added automatically when a page is read, if the engine's average word confidence is below 85%, the page has fewer than 20 characters, or the PDF has text but the engine returned none. They are not in Review: on their own these signals are not strong enough to stop a page, but they are worth a second read with a different engine.
From downloads, waiting
Files the downloader fetched that have not been registered or OCR'd yet. This queue runs itself — it is retried every 60 seconds and waits while you are scanning or running OCR here.
Incomplete documents
Documents where some pages were read and others were never read at all — a run that stopped halfway, a quota that ran out, a file that grew. Only the pages that were never read are sent; a page already read that came out blank is left alone.
EMA
Human medicines from the EU register: authorised by the European Commission, CHMP opinions still waiting for the Commission decision, new indications, and those withdrawn, refused or no longer authorised — from the lists EMA publishes, downloaded every day.
Click a medicine to see the EMA text, the English and Romanian SmPCs (section 4.1) and the CNAS protocols for the same INN side by side. For new indications the EMA list gives only the therapeutic area; the current wording is in the English SmPC.
Compare
Compares two PDFs word by word and writes two side-by-side documents: one with every page pair, one with only the pages that differ. Deletions are marked red on the old version, additions green on the new one. For documents from the library the existing Azure OCR is used, so scanned files compare too.
Documents
Progress
LLM actions
Summarize, analyze, compare or extract the text of files from the
library or from the inbox folder. Files not in the library get local OCR first
(text layer, then Tesseract, then Azure only if Tesseract reads poorly). Nothing is sent
through an API without your confirmation. Prompts live in llm_actions.yaml.
1 · Choose the files
2 · Choose how you get the answer
3 · Choose what to do — the click starts it
Status
Settings
Edits settings.yaml. Azure configuration (endpoint, key) is
done exclusively in the LLM Manager's .env file — not here.
OCR
Processing
Quality
Storage
Scan exclusions
Database health
Checks the database and the files around it. Nothing is changed until you press an action — and the destructive ones ask you to type a confirmation.
Downloader metadata
manifest.json. Nothing is downloaded and no file is touched.
Change Detection
Feeds the Watches tab in the Inbox. Stored in
credentials/changedetection.env, outside version control.
Automatic downloads
When a monitored ANM, CNAS or MS page changes, the downloader checks that page and fetches what is new. Only the machine that holds the sync contract runs them, so the team does not download the same file fifteen times. The Monitorul Oficial has its own check (below, under Monitorul Oficial), started by its change alert, which saves only the issues that belong to a Felis folder.
Library modules
Which sources feed the library and search, no matter how a download was started — the button above, the Downloader tab, or a scheduled script. Turning a module off here does not remove files already in the library, and does not un-download anything already on disk.
| Module | Library | Auto OCR |
|---|
Protocoale
Progress
Formulare
Progress
Interface
Applies immediately, no restart needed.
Comparisons
Upper / lower case and punctuation never count as changes; digits always do („1,5” = „1.5”, but not „15”). Applies to new comparisons after Save; protocol reports pick it up when they are rebuilt.
App images
To add more, drop .ico files in assets/icons, pictures in
assets/splash, and cats in ui/web/assets/cats (every cat there is used).
New Search bubbles
A random phrase appears while you are on New Search, spoken by the search box. The two timers are independent: when a bubble stays longer than the interval between bubbles, several share the screen. They never cover the title, the search box or each other, so a crowded screen simply skips the next one. Every phrase is used before any of them repeats.
LLM providers
Keys are stored in credentials/, one file per
provider, outside version control. Only a masked preview is ever shown.
Full mode on other PCs
On a colleague's PC Felis opens read-only. With this
password you can click the Read-only badge there and switch to full mode for that
session. Only a salted hash is stored in settings.yaml.
Info
OCR engine: Azure AI Document Intelligence (prebuilt-read), called through
the SDK directly.
Azure credentials live in credentials/azure.env
(AZURE_DI_ENDPOINT, AZURE_DI_KEY, plus _2 for a second
resource that takes over when the first one fails) and are edited from the
LLM providers card above.
Felis
— a searchable library of pharma and legal PDFs: it downloads them from their official sources, reads them with OCR, and lets you search, read and compare them.
What each tab does
- Inbox
- Changes spotted on the watched websites, shown as e-mail-like threads with the old text crossed out in red and the new text in green. The Downloads view lists the files fetched automatically and which of them were read only offline, with a one-click “Redo with Azure”.
- New Search
- Search across every document in the library: all words, any word or exact phrase, with fuzzy and substring matching and filters. The cats and their speech bubbles are just for company.
- Database
- The library as a folder tree and a table: where each file came from, its dates and how each page was read. Opens the PDF next to it, with search inside the file, the OCR text of every page, and engines compared side by side.
- Monitorul Oficial
- Downloads the Monitorul Oficial issues, directly from its source.
- Protocoale
- Opens the reports built from the therapeutic protocols: each protocol split into sections, with its indications extracted and checked against the text.
- Formulare
- The same reports for the CNAS specific forms: each form cut out of the Monitorul Oficial, its versions side by side, and what changed between them.
- EMA
- Medicines approved in the EU, CHMP opinions waiting for the Commission decision and new indications; click a medicine for its EMA text, Romanian SmPC and CNAS protocol side by side.
- Compare PDFs
- Compares two versions of a document word by word and writes them side by side, with deletions in red and additions in green. Works on scanned files too.
- LLM
- Summarize, analyze, compare or extract the text of files from the library or from the inbox folder (drop files on the list). Copies a ready prompt and opens the chat, exports a folder for Claude Desktop or Cursor, or sends it through an API after you confirm. Text already in the library is reused, matched by content.
- Downloader
- Fetches documents from the official sources (EMA, ANM, CNAS, the Ministry of Health and Monitorul Oficial), keeps only what changed, and puts new files in the library. File Status shows every downloaded file and its state.
- OCR Processing
- Reads the text of the documents: the existing text layer when it is good, Tesseract or Azure when it is not, page by page, with a cost limit. Review and Work queue show the pages that need another look.
- Settings
- OCR and processing, storage and database health, downloader and watches, protocols, interface (theme, sidebar, bubbles, cats, app images) and integrations.
- Publish for team
- Publishes a read-only copy of the library for colleagues, by hand or automatically after new pages are read.
- About
- This page: what each tab does, how the app grew, and what changed month by month.
LLM, Downloader, OCR Processing, Settings and Publish are hidden in guest mode.