The Kit POS that keeps selling — with or without internet
Kit POS Desktop is the same point of sale your team already knows, running natively on the till. Every sale is saved on the device first and syncs to your Kit business automatically the moment a connection is available — power cuts and network drops never stop the queue.
Choose your platform
All editions are the same app with the same features — pick the one that matches the till.
- Windows 10 (1809) or Windows 11, 64-bit
- 4 GB RAM · 500 MB free disk space
- Signed installer for managed tills; Windows may ask for confirmation on first install
- macOS 12 or later · Apple Silicon
- 4 GB RAM · 500 MB free disk space
- If macOS warns on first launch, right-click the app and choose "Open"
- Ubuntu 20.04+ / Debian 11+ or equivalent, 64-bit
- 4 GB RAM · 500 MB free disk space
- AppImage:
chmod +xthen run — no installation needed
Minimum requirements
Hardware
Any till, laptop or mini-PC from the last ~8 years: 64-bit processor, 4 GB RAM (8 GB recommended for busy multi-terminal sites) and 500 MB free disk space.
Display
1366 × 768 or larger. The POS is optimised for landscape touch screens and standard monitors alike; dark mode is built in.
Internet
Only needed for the first sign-in (to pull your products, prices and staff) and for syncing. Selling, printing and cash management all work fully offline.
Receipt printing
Works with ESC/POS receipt printers via QZ Tray (free). Kitchen and bar printers are supported for restaurant mode.
Login permissions
Before first use, assign the desktop login, product view and sell permissions in Kit. Read the setup guide.
All versions
Need a previous build? Every recent release stays available here.
Kit POS Desktop 1.1.4 - correct invoice prices and full-width receipts.
- Invoice prices no longer drop or gain a shilling. Sales pulled from Kit Online (web POS or another till) rebuilt each line's price from the display-rounded exclusive price, so a 36,000 item printed as 35,999 (or 36,001). The server's tax-inclusive price is now authoritative and the tax is back-calculated from it — the same direction the web POS works in — with line discounts (fixed, percentage, specific taxes) inverted exactly.
- Receipts fill the full 80mm roll. ESC/POS tickets print at the standard 48 columns (72mm printable width) instead of 42 with the left margin reset to zero, HTML tickets pin the page to the exact paper width with no margins or borders, and the print-dialog fallback drops its page margins.
- Total row prints on one line. The double-width TOTAL row padded to the full column count and wrapped onto two lines on thermal printers; it now pads to the double-width column count and stays on one line.
- Money is stored at full precision. Stored figures (line totals, subtotals, order totals, discounts, payments) keep the real value at 9 decimal places; the business currency precision only formats what is displayed, matching the Kit Online change. Checkout treats remainders below half a display step as settled, so fractional totals never strand a fake balance due, and the mobile-money collect amount is always a collectable display-precision figure.
- Pulled combo sales no longer double-count. Combo component breakdown lines from Kit Online are recognised via the new pull payload fields and skipped, since they only re-allocate the parent combo line's price.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Cached receipt-layout parity. Desktop now stores the complete online invoice layout payload during bootstrap and renders receipts locally from that cache, avoiding per-receipt API calls while keeping printed receipts aligned with Kit Online.
- Merge and receipt smoke coverage. The release smoke test now covers table merge routing plus 1:1 online-vs-desktop receipt markup, text, and screenshot parity for cached layouts.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Kit POS Desktop 1.0.0 - stable offline desktop POS release.
-
Stable 1.0 desktop release. The app version is now
1.0.0, stable update checks ignore prerelease builds, and the Windows installer opens the new thank-you page after install and the goodbye page after uninstall. -
Production server by default. Packaged builds use
https://pos.kit.africaas the Kit backend and ignore development.envfiles, so the release app does not accidentally point at a localhost playground server. -
Uppercase desktop invoice numbers. New desktop invoices and order numbers
now use
KOD-{login count}-{invoice no}instead of lowercasekod, matching the production numbering format requested for Kit POS Desktop. -
Permission-gated device login. A first login on a new desktop device now
requires
pos_desktop.login_new_device,product.view, andsell.create. Users missing any of those permissions seeUser permissions are insufficient. -
Correct cashier attribution. Desktop sales are added by the user who
logged in to Kit POS Desktop, so synced sales show the right
Added byuser inside Kit POS. - Better table and PIN behavior. Businesses without the tables module go straight to POS/direct selling after login, and businesses with service staff PINs disabled do not expose those staff on the PIN pad.
- Paid sale sync hardened. Fully paid cash and Kit Pay/mobile-money sales sync to Kit Online as paid, not partial, and API payment sync is safe without a browser session.
- Cached receipt-layout parity. Desktop now stores the complete online invoice layout payload during bootstrap and renders receipts locally from that cache, avoiding per-receipt API calls while keeping printed receipts aligned with Kit Online.
- Merge and receipt smoke coverage. The release smoke test now covers table merge routing plus 1:1 online-vs-desktop receipt markup, text, and screenshot parity for cached layouts.
- Desktop documentation links. The login screen, user menu, download page, and website footer link to the new Kit POS Desktop setup guide covering requirements, permissions, how-tos, sync behavior, and deleted-record recovery.
- Public install/uninstall pages. Kit now includes a personal thank-you page from Namisi Arnold Paul for newly installed desktop apps and a see-you-soon page for uninstall events.
-
Docs and AI knowledge updated. Kit Intelligence and the searchable help
docs now understand Kit POS Desktop, the required login permissions, uppercase
KODnumbering, direct POS mode, PIN behavior, paid sync, and Deleted Documents restore flow.
Thirty-third public beta - restaurant token safety, offline printing, and corrected sale sync.
- Registers and receipt dates now follow Kit POS. A selected-location register is opened automatically when needed, so staff are not blocked by an extra register prompt. Receipts, bills, KOTs, BOTs, payments, and synced sales keep the original posting date/time instead of using the desktop sync time.
- Saved line items are protected at row level. New lines can be edited or removed before an order is saved, and new lines added while editing a token remain editable. Existing saved/token lines are locked unless the staff role has Kit's restaurant sale-line permission, matching online Kit POS behavior.
- Tokens are editable by assigned service staff. Staff assigned as the waiter or line service staff on a suspended token can reopen it and add new items even when they are not the original cashier. Users without permission to change service staff no longer see the service-staff selector; their own staff account is applied automatically where required.
-
KOT/BOT printing is line based. New orders print every line. Updated
tokens print only rows whose
kot_printed_atis still empty, so adding the same item again prints the new row instead of being treated as an old item. Unprinted rows are stamped after printing, those stamps sync online, and pulled tokens carry the stamps back down so other terminals do not reprint old lines. - Kitchen and bar routing is more reliable. Bar items route to the Bar printer, all other ticketed items route to Kitchen, and unflagged products no longer disappear from KOTs. Printer choices now include the offline defaults Bar, Kitchen, and Receipt Printer, with receipt printing falling back to Bar and kitchen printing falling back to Kitchen.
- Printer and QZ settings survive offline use. Printer selections persist locally even without internet, QZ certificate material is cached for offline signing, and receipts/tickets keep printing when the connection is down.
- Pricing and tax sync has been corrected. Desktop line totals now split inclusive/exclusive tax and line discounts the same way as online Kit POS, then sync the proper pre-discount unit price, inclusive price, tax id, and item tax. Pending queued order payloads are regenerated at sync time so stale totals do not upload after a pricing fix.
- Drafts, suspended tokens, and paid sales stay distinct. Drafts print as draft documents, suspended tokens are synced as suspended sales, paid sales are finalized, and existing tokens cannot accidentally be saved back as drafts.
- Tables are now the required restaurant entry point. When tables are enabled, staff are taken to the tables screen first. The POS cart starts empty unless the user explicitly resumes a draft or suspended token, preventing old rows from appearing in a new sale.
- Login and PIN screens have been cleaned up. The login screen scrolls better, the saved business logo is cached for offline display, PIN buttons are taller, and spacing around the username/email password option has been increased. The clear button was removed from PIN entry.
- Business sign-out is intentional. The business sign-out control is pushed below the login fold with an arrow cue and requires a hold action, reducing accidental sign-outs while still allowing the terminal to be fully unbound.
- Bootstrap data refreshes more aggressively. User, role, permission, PIN, service-staff, and allow-login changes are refreshed through bootstrap/sync so desktop permissions catch up quickly after changes in Kit.
- Product and sale lists are safer. The POS product grid no longer caps the local active-product list at 200 rows, so deeper catalogue items can appear. Pulled open sales include their line rows for access checks and KOT state, and finalized local sales are cleaned up only after they have safely synced.
- Live desktop checks were added. Login, renderer, desktop contract, paid sale, and demo sale probe scripts were added or expanded to make these flows easier to verify against the live Kit backend.
Roll out Kit POS Desktop with the right permissions
Kit POS Desktop 1.1.4 is ready for tills that need offline selling. Sales are stored on the device first, then synced to your Kit business when the connection is available.
The setup guide covers first login permissions, direct POS mode for businesses without tables, staff PIN behavior, cash and credit sales, quotations, tokens and deleted-record recovery.