All projects
Cypher-ZKTeko app icon

Cypher-ZKTeko

also known as Cypher ZKTeko

Reads the punches off a ZKTeco terminal and turns them into reports payroll will accept.

v2.0.6Windows 10/11 (64-bit)Linux (x64)Release only · source private

Cypher Store is the only true source for this app. Every official build of Cypher-ZKTeko comes from here. A copy from anywhere else — another site, a mirror, an APK forum — was not published by Kencypher, and nothing about what is inside it is guaranteed.

On Linux, extract the archive and run the binary inside it. No installation and no root needed.

What Cypher-ZKTeko is

Cypher-ZKTeko is a desktop console for ZKTeco biometric attendance terminals. It reaches the device over the network, a USB export or a serial port, pulls the enrolled users and the punch buffer, applies your shift policy, and produces twelve kinds of report. The thing that makes it usable for payroll is that absences are reported rather than dropped: every employee gets a row for every date in range, so an Absent or a Missing Out day appears instead of quietly vanishing from the total.

Cypher-ZKTeko features

What it actually does.

Three ways to the device

Reach the terminal over the network, read a USB export it wrote, or talk to it on a serial port. The endpoint is saved once in Settings and reused every time the app starts.

One shift policy, everywhere

Grace period, half-day thresholds, the overtime margin and which weekdays count as working days live in Settings and drive every report. Change the policy and every view changes with it.

Machine codes that match

A device that reports 1, 01 or 001 resolves to the same employee, whether it sent a user_id or a uid. Mismatched codes are the usual reason a person disappears from an attendance report.

Twelve report types

Full Attendance, Employee Summary, Single Employee, Department, Daily, Monthly, Missing Attendance, Absent, Late Arrival, Early Leaving, Overtime and Raw Punch — all judged by one rule, so Present, Late, Half Day and Absent mean the same thing in every one.

Exports that survive the trip

Excel with filters and a summary tab, PDF with a cover page and repeating headers, plus CSV and JSON. Sort order and the summary sheet are yours to choose.

Device tools

Read and sync the terminal clock, enable or disable the device, restart it, or clear the punch buffer once you have the records safely out.

Cypher-ZKTeko screenshots

Captured from a real device running this build. Tap any image to enlarge it.

The dashboard: device state, punch trend and attendance rate
Network, USB export or serial, with a live connection log
Twelve report types, with a summary strip across the top
Excel, PDF, CSV or JSON, with sort order and an optional summary sheet
Device tools: the terminal clock, session control and the punch buffer
One shift policy and the working-day set, driving every report

How to use Cypher-ZKTeko

From a fresh install to the thing working.

1 Install it

  1. Extract the whole .zip into one folder. setup.exe, data1.bin and data2.bin must stay together — the installer reads its payload from the two .bin files sitting beside it, so running setup.exe on its own will fail.
  2. Run setup.exe from that folder. It asks for administrator rights because it installs into Program Files.
  3. Your settings, logs and exports are written to %APPDATA%\Cypher-ZKTeko rather than the install folder, so they survive an upgrade and need no admin rights.

2 Install it on Linux

  1. Extract the archive and run ./install.sh. It installs into ~/.local/share/Cypher-ZKTeko, puts a launcher on your PATH and adds an entry to the applications menu. No root needed.
  2. Nothing has to be installed first: the Python runtime, Tk and every library are inside the archive.
  3. Built against glibc 2.35, so it runs on Ubuntu 22.04 and anything newer, including Debian 12 and Fedora 36+.
  4. Settings, logs and exports go to ~/.config/Cypher-ZKTeko, so an upgrade never touches your data.

3 Connect the terminal

  1. Open Connection and choose how you are reaching the device: network, a USB export, or serial.
  2. For a network device, enter its IP and port. The connection log on that page shows exactly what happened, which is the fastest way to tell a wrong IP from a blocked port.
  3. Once it connects, the device identity is read back so you can confirm you are on the right machine.
  4. Put the address into Settings so it is remembered. You only type it once.

4 Set the shift policy before the first report

  1. Open Settings and set the grace period, the half-day thresholds, the overtime margin and which weekdays are working days.
  2. This is worth doing first: every report is judged against these numbers, and running reports before setting them is the usual reason a run looks wrong.
  3. Add your company details here too — they appear on the PDF cover page.

5 Pull attendance and export it

  1. Open Employees to confirm the enrolled users came through, then Attendance to see the punches for a date range.
  2. Open Reports and pick one of the twelve types. The summary strip across the top gives you the totals, and rows are coloured by status.
  3. Open Export, choose Excel, PDF, CSV or JSON, pick a sort order, and decide whether you want the summary sheet.
  4. Exports land in %APPDATA%\Cypher-ZKTeko\exports.

Built with

Python Tkinter + ttkbootstrap 2 pyzk pyserial / pyusb Matplotlib pandas openpyxl + XlsxWriter ReportLab PyInstaller + Inno Setup

Licence

Made by Kencypher. Not open source.

Cypher-ZKTeko was written by Kencypher. The source is not published and is not licensed for reuse. You have permission to run it — that is the whole of it.

You may

  • Run it on as many of your own machines as you like
  • Use it for anything, including commercial work
  • Pass an unmodified copy to a friend, free

You may not, without asking

  • Sell it or charge for access
  • Re-upload or mirror it anywhere
  • Rebrand it or publish it as your own
  • Decompile it or lift its assets

This is enforced. Re-uploading it, repackaging it, stripping the author's name off it or passing it off as your own is copyright infringement — protected without registration under the Berne Convention — and is pursued with DMCA takedowns to the host, CDN, app store and search engine, platform reports for impersonation, and legal proceedings where the infringement is commercial, repeated, or involves falsely claiming authorship.

Asking first is free, and the answer is usually yes — kencypher56@gmail.com. The only official source is this store; a copy from anywhere else is not one Kencypher published.

Good to know