Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

zkteco-terminal

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zkteco-terminal

A useful utility library

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
3
-75%
Maintainers
1
Weekly downloads
 
Created
Source

ZKTecoTerminal

A Node.js client for communicating with ZKTeco standalone attendance devices (e.g., ZKTeco K14, K40, etc.) via TCP/IP. This package allows developers to interact with biometric attendance terminals by sending raw protocol commands, retrieving real-time logs, managing users, and accessing attendance records directly.

Features

  • TCP Socket Communication with ZKTeco devices
  • User Management (create, update, delete users)
  • Attendance Log Retrieval (chunked read, buffer parsing)
  • Real-Time Log Events support
  • Clear Logs & Free Buffers
  • Automatic Reconnection & Heartbeat Monitoring
  • Device Time Sync & Configuration

Installation

npm i zkteco-terminal

Usage Example

import zkClient from 'zkteco-terminal';


async function main() {
  const zkClient = new zkClient({ ip: '192.168.1.4', port:4370 });

  try {
    await zkClient.createSocket(async (status) => {
     
      if (status) {
        await zkClient.enableDevice();

        await zkClient.getRealTimeLogs(async (data) => {
          console.log('real time data', data);
        });
      }
    });


  } catch (err) {
    console.error('Failed:', err);
  } finally {
     zkClient.close();
  }
}

main();

Supported Methods

  • createSocket() – Connect to device
  • connectWithCmd() – Authenticate communication
  • getAttendances() – Get full attendance logs
  • getRealTimeLogs(cb) – Subscribe to real-time events
  • setUser(uid, userid, name, password, role, cardno) – Create or update user
  • deleteUser(uid) – Delete a user by UID
  • getTime() – Get device time
  • clearAttendanceLog() – Clear all logs
  • enableDevice() – Enable device for operation
  • disconnect() – Gracefully disconnect the socket

Compatibility

  • Tested with ZKTeco devices that use the ZKProtocol over TCP (e.g., K14, K40, X628-C, etc.)
  • Requires Node.js v14+

Getting Started

To get started:

  • Fork the repository
  • Clone your fork
    git clone https://github.com/shax26/zkteco-terminal.git
    
    

Executing ZK Protocol Commands

The library includes an executeCmd function designed to run ZK protocol commands easily.

You can explore the full list of available commands by visiting the official ZK Protocol documentation. Once you've found the command you need, simply pass it into the executeCmd function like so:

executeCmd('YourCommandHere');


Notes
-----

- Ensure your ZKTeco device is accessible over LAN and the correct IP/port is set.
- This package communicates directly over raw TCP, not via HTTP or SDK.
- Not affiliated with ZKTeco.

License
-------

MIT

Keywords

zkteco

FAQs

Package last updated on 19 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts