# nodejs-itoolkit
**Repository Path**: mirrors_ibm/nodejs-itoolkit
## Basic Information
- **Project Name**: nodejs-itoolkit
- **Description**: A JavaScript (Node.js) library for communicating with IBM i
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-11-23
- **Last Updated**: 2026-09-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Node.js itoolkit
[](https://www.npmjs.com/package/itoolkit)

[](https://chat.ibmioss.org)
[](https://nodejs-itoolkit.readthedocs.io/en/latest/?badge=latest)
`itoolkit` is a Node.js interface to [XMLSERVICE](https://github.com/IBM/xmlservice) to access all things [IBM i](https://en.wikipedia.org/wiki/IBM_i).
# Table of Contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Features](#features)
- [Documentation](#documentation)
- [Tests](#tests)
- [Contributing](#contributing)
- [License](#license)
- [Release](#release)
# Introduction
[XMLSERVICE](https://github.com/IBM/xmlservice) provides interfaces to interact with IBM i resources such as programs and commands. XMLSERVICE receives xml input and returns xml output.
For example run a CL command by sending the following XML input to XMLSERVICE.
```xml
RTVJOBA USRLIBL(?) SYSLIBL(?)
```
XMLSERVICE will run the command and respond with XML output.
```xml
+++ success RTVJOBA USRLIBL(?) SYSLIBL(?)
QGPL QTEMP
QSYS QSYS2 QHLPSYS QUSRSYS
```
`itoolkit`, with the help of an XML parser, can run the same CL command with:
```js
const { Connection, CommandCall } = require('itoolkit');
const { XMLParser } = require('fast-xml-parser');
const connection = new Connection({
transport: 'ssh',
transportOptions: { host: 'myhost', username: 'myuser', password: 'mypassword' },
});
const command = new CommandCall({ type: 'cl', command: 'RTVJOBA USRLIBL(?) SYSLIBL(?)' });
connection.add(command);
connection.run((error, xmlOutput) => {
if (error) {
throw error;
}
const Parser = new XMLParser();
const result = Parser.parse(xmlOutput);
console.log(JSON.stringify(result));
});
```
The purpose of this package is to simplify the process of creating XMLSERVICE input, invoking XMLSERVICE, and returning XMLSERVICE output from Node.js.
# Installation
```sh
$ npm install itoolkit
```
# Features
- [Call ILE programs and service programs](https://nodejs-itoolkit.readthedocs.io/en/latest/ProgramCall.html)
- [Call CL, QSH, and PASE shell commands](https://nodejs-itoolkit.readthedocs.io/en/latest/CommandCall.html)
# Documentation
Please read the [docs](https://nodejs-itoolkit.readthedocs.io/en/latest/).
# Tests
Refer to the [README](test/README.md).
# Contributing
Please read the [contribution guidelines](https://github.com/IBM/nodejs-itoolkit/blob/master/CONTRIBUTING.md).
# License
[MIT](https://github.com/IBM/nodejs-itoolkit/blob/master/LICENSE)
# Release
For information on making a release, read [RELEASE.md](docs/RELEASE.md).