of —
Table of Contents
Select a document to preview it here.

OCR Processing

Scan a folder, review the plan, then run OCR over the pages that need it.

Engine status

Checking…

Input source

Engine & settings

Status

Select a folder and press Scan, or press Start OCR — the scan runs automatically.

Log

    Select a page to review it here.

    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.

      Select a change to see what was added or removed.

      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

      Old
      New

      Progress

      Ready.

      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

      Nothing selected Pages

      2 · Choose how you get the answer

      3 · Choose what to do — the click starts it

      Status

      Ready.

      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

      Set from the folder tree: right-click a folder in Database. Excluding a folder never deletes anything from disk.

      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

      Original links and publication dates, read from the downloader's 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.

      Clearing removes entries for everyone — the list lives in the shared 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

      Reconstructs the history of therapeutic protocols from indexed Monitorul Oficial documents: cuts each protocol into its own PDF, writes an Excel history and generates comparative HTML reports. Reads the database only — no OCR, no writes to it.
      Archive:

      Progress

      Ready.

      Formulare

      The same as Protocoale, for the CNAS specific forms (formulare specifice, Ordinul CNAS 141/2017 and its amendments): cuts each form out of the indexed Monitorul Oficial issues into its own PDF, writes an Excel history and generates comparative HTML reports. Which form each issue adds, changes or repeals comes from the FORMULARE sheet of the register. Rebuilt automatically when a new forms issue arrives. Reads the database only — no OCR, no writes to it.
      Archive:

      Progress

      Ready.

      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.

      What's new