Installation
jira.js is ESM-only and ships TypeScript declarations. It requires Node.js 22 or newer and runs in modern browsers.
TypeScript is optional, and when you use it the declarations need 5.7 or newer. They name ArrayBufferView, which became generic in that release; an earlier compiler reads the same declaration as an error unless skipLibCheck hides it from itself.
6.0 is a rewrite
npm install jira.js installs 6.x. It is not a drop-in upgrade from 5.x — read Migrating to 6.0 first, and note who it says should stay on jira.js@5.
Package managers
# npm
npm install jira.js
# yarn
yarn add jira.js
# pnpm
pnpm add jira.jsImporting
import { createCloudClient } from 'jira.js';There is no CommonJS build. require('jira.js') does not work; from a CommonJS module, use a dynamic await import('jira.js').
The package also exposes surface-level subpaths — jira.js/cloud, jira.js/agile, jira.js/serviceDesk and jira.js/core — carrying the flat functions along with every parameter and response type. See Tree-Shaking.
Requirements
| Node.js | ≥ 22 |
| Modules | ESM only |
| Runtime dependencies | zod |
Browser usage
The package is browser-safe throughout, and jira.js/browser is a prebuilt bundle. Calling Jira directly from a page is usually blocked by CORS and would expose credentials to anyone with devtools open, so this is for extensions, Forge apps and proxied setups rather than for putting an API token in a web app.
Going to the source
The published package includes src/, so "go to definition" on any symbol lands on the real TypeScript — its JSDoc, and the schema the response is validated against — rather than on a .d.ts stub.