Skip to main content
The desktop app is the same pharmacy workspace you use in a browser, installed on the till. It adds the three things a browser cannot do: print a receipt without a dialog, keep queued sales somewhere durable, and reach a serial count terminal. It contains no app code of its own — it loads your hosted workspace, exactly as a browser does. That is deliberate: it can never fall behind the web version, and there is no second product to keep in step.

Pick the right build

For a pharmacy the answer is ClinikEHR Pharmacy POS on every machine, front and back office. The other two point at different workspaces entirely and will not show you your pharmacy. Each build reopens on whatever page you were last on, so a counter terminal comes back up on the till after a restart. Neither pharmacy build signs you out on a timer: a session ends when someone ends it. The ClinikEHR Desktop build additionally blanks its own window in screen-capture software, because the medical records it shows are confidential in a way a till is not. Installers are published per operating system:
  • Windows — an installer .exe. It installs for the current user and lets you choose the folder.
  • macOS — a .dmg or a .zip, for both Intel and Apple silicon machines.
  • Linux — an AppImage or a .deb.
Get the current links from Desktop app downloads.

Install and set up

1

Download the installer for this machine

Take the Pharmacy POS build and the file that matches the operating system.
2

Run the installer

On Windows, read the SmartScreen entry under Common issues before you start — the warning is expected.
3

Open it while the machine is online

This step is not optional. The app has to load your workspace once with a working connection before anything offline will work — until it has, there is nothing cached to fall back to.
4

Sign in exactly as you do in a browser

Same email, same password, same two-factor. Nothing privileged ships inside the app: it signs in as your own user, so what you can see and do is identical to the browser.
5

Set the receipt paper form on this machine

Do it now, once, rather than discovering it mid-sale. See Set up your receipt printer.

What you’re looking at

A normal desktop window with your pharmacy inside it — the same sidebar, the same till, the same colours. There is no extra chrome to learn and no settings screen of its own. Three differences give it away:
  • The window title carries the build name rather than a browser’s tab bar.
  • A receipt printed from a sale goes straight to the printer with a “Receipt sent to printer” toast, instead of opening a print dialog.
  • The receipt dialog on the sales list carries a small Printer settings control that does not exist in a browser.
Selecting a link to somewhere outside your workspace — a supplier, a support article — opens it in your normal browser. The app is locked to your workspace’s own address and will not navigate anywhere else.

What the app adds

Silent receipt printing

Receipts go straight to the counter printer with no dialog, and a toast confirms it. See the receipt printer setup.

A durable sale queue

Sales captured offline are stored outside the browser profile, so clearing browser data does not lose queued sales. See Selling when the internet is down.

Serial hardware

Reaches a count terminal in its USB cradle, and picks the cradle out of the port list for you. See Count with a CipherLab scanner.

Automatic updates

The shell updates itself on Windows and Linux and installs the update when you next quit. The workspace inside it is always the live version regardless.

Who can do this

Nothing here is permission-gated. Installing the app is a decision about a device, not about a person: anyone who can sign in to your pharmacy can sign in to the app, and they see exactly what they see in a browser — same role, same permissions, same figures withheld. Two behaviours surprise people:
  • Enforcement is opt-in, per person. A colleague never saved in the permissions sheet is unrestricted in the app for the same reason they are unrestricted in a browser, and the sheet warns “Saving starts enforcing”.
  • A denied action is recorded; an allowed one is not. Installing the app changes neither — it is the same workspace, audited the same way.
See Staff permissions.

Check it worked

  • The app opens on your pharmacy workspace, signed in, with the same sidebar you see in a browser.
  • It lands on the till, or on whatever page you were last on.
  • Opening the receipt dialog on a recent sale shows a Printer settings control — that control appears only inside the desktop app, so seeing it confirms you are running the app rather than a browser window.
  • A test reprint prints without a dialog and toasts “Receipt sent to printer”.

Common issues

A cold start with nothing cached cannot show your workspace at all, so you get an offline page and a Retry button. It also reassures you: “Sales already saved on this device are safe and will sync automatically.” Get the machine online and select Retry. Opening the app once online before you need it offline is the single most common setup mistake.
Current builds are unsigned, so Windows SmartScreen shows a click-through on first run. Choose More info and then Run anyway. Download installers only from the links your workspace gives you.
Automatic updates need a signed build, and current macOS builds are unsigned. Download the newer .dmg and install it over the old one. Windows and Linux update themselves.
You have ClinikEHR Desktop or ClinikEHR LIMS Desktop. Those point at different workspaces. Uninstall and take the Pharmacy POS build.
Either you are in a browser window rather than the app, or the app could not reach the printer and fell back — it says so: “Direct printing unavailable — using the print dialog”. See Set up your receipt printer.

FAQ

No. The app holds no product code — it loads your live workspace, so a change we ship reaches it the moment it reaches the browser. Shell updates are rare and are about the window itself, not the pharmacy.
No — a browser queues offline sales too. The app stores that queue outside the browser profile, so clearing browsing data cannot wipe queued sales, and that is the reason to prefer it on a till. See Selling when the internet is down.
Only your sign-in session and the offline sale queue, both of which the app needs to work. Nothing privileged is built into the app, and signing out clears the session exactly as it would in a browser.
Yes. It is one workspace with normal sign-ins, so a shift change is a sign-out and a sign-in. Neither pharmacy build locks the screen on a timer, so sign out deliberately when you leave a shared machine.
The same things that do not work offline in a browser: payment, returns, and workflow steps on records that already exist. Sale capture queues and replays; everything else waits. See Working offline.