Jira Cloud · TypeScript · Built on Atlassian Forge · Zero external egress
Jira automation you can actually see
Scriptline runs your TypeScript scripts when work items change, on a schedule you describe in plain words, inside JQL, or across thousands of work items at once. Every run shows exactly what it did: logs, timing, the returned value and errors mapped to the line of your code. Every save is versioned. Every mistake is one click from undone.
Read the setup guideCompare with ScriptRunner
How it works
Install once, run the pre-filled sample to prove the connection, then save your first hook. Everything happens on one admin page inside Jira.
Set it up in about two minutes
- Install the app. In Jira, open Apps → Explore more apps, search for Scriptline and choose Get it now. It installs through Atlassian Forge, with no separate download.
- Approve the permissions. Read and write work items, read user profiles, and store your scripts. No admin scopes, no external network access.
- Open Scriptline. Go to Jira Settings (⚙) → Apps → Scriptline - Scripts, Listeners & JQL. Only Jira administrators can open it.
Your first hook in five minutes
- Run the sample in the Console. It comes pre-filled. Click Run and expect a green OK with your name and recent work items.
- Write your automation in TypeScript. Use the typed
jiraAPI (search, get, comment, update, transition, iterate) orjira.requestfor any Jira REST endpoint. Toggle Dry run to rehearse with writes suppressed. - Save it and pick when it runs. One of ten work-item events, a plain-words schedule, a JQL function or the scripted field. Scope it to projects, types or changed fields.
- Enable it and watch Run history. Every run is recorded with logs, timing, result and line-numbered errors.
- Changing 10,000 work items? Start a bulk job over a JQL, with live progress and cancel.
Full step-by-step instructions are in the documentation.
What you get
A real language
TypeScript or JavaScript, not Groovy and not a proprietary DSL. A small, typed Jira API plus an escape hatch to any REST endpoint.
Ten event triggers, precisely scoped
Created, updated, deleted, assigned, commented, worklogs, links, attachments and versions, each limited to the projects, types or changed fields you pick.
Schedules in plain words
"Every weekday at 09:00" becomes cron automatically, with the next three runs previewed in your local time. Custom cron for power users.
JQL functions, scripted and built-in
issue in hooked("stale-bugs") runs your script to decide what matches, and eleven built-ins such as linkedIssuesOf and hasComments work with no script at all.
A scripted field
A read-only field computed per work item by your script: risk scores, roll-ups, derived flags. Shown on the work item and searchable in JQL.
Every run, replayable
Structured logs, duration, the returned value and errors mapped to your exact line, for console, event, scheduled, JQL, field and bulk runs alike.
Versioning built in
Every save keeps the previous version, up to 20. A hook that broke at 3 a.m. is one click from the version that worked.
Dry-run rehearsal
Flip a toggle and every write is suppressed and logged instead of sent. Simulate events. Rehearse a 10,000-item change before making it.
Bulk jobs that don't time out
Run a script over any JQL in the background, with live progress, per-item error samples and cancel.
Considering ScriptRunner, or leaving it?
Scriptline was born on Atlassian Forge, the platform Jira Cloud scripting apps are moving to, so there is no legacy to carry and nothing to migrate.
Where Scriptline is ahead
- Observability, not guesswork. Every run, including the 3 a.m. ones, keeps replayable logs, timing, results and line-numbered errors.
- Version history and rollback. Automatic on every save, restored in one click.
- Dry-run before you commit. Rehearse any script or bulk change with writes suppressed and logged.
- Your scripts stay in Atlassian. Everything is stored on your own Jira site and follows its data residency. Zero external egress.
- TypeScript, not Groovy. The language your team already writes, with a typed API.
Where ScriptRunner is ahead, honestly
- Behaviours (dynamic form rules). Not in Scriptline yet. Atlassian's UI-Modifications API is still maturing and we would rather ship it well than ship it now.
- Breadth of the built-in script library. ScriptRunner's catalogue is a decade deep. Scriptline ships the most-used recipes as one-click examples and covers the rest with plain TypeScript.
- Workflow post-functions and validators. Waiting on Atlassian's Forge workflow modules to stabilise. On the roadmap.
If your ScriptRunner usage is listeners, scheduled jobs, bulk fixes, JQL functions and console scripting, Scriptline covers it with better visibility, versioning and safety.
Frequently asked questions
What is Scriptline for Jira?
Scriptline is a Jira Cloud app for writing automation in TypeScript or JavaScript instead of a proprietary scripting language. Scripts run from an in-product console, automatically on work-item events, on a schedule, behind a JQL function, as a computed field or as background bulk jobs, and every run records its logs, timing, result and line-numbered errors so automation never fails silently.
Is Scriptline a ScriptRunner alternative?
Yes. Scriptline covers the core ScriptRunner for Jira Cloud workflow: event listeners, scheduled jobs, bulk operations, JQL functions, a scripted field and an ad-hoc console. It adds replayable run records, automatic versioning with rollback and dry-run. It is built natively on Atlassian Forge with zero external egress, so scripts never leave Atlassian's infrastructure.
Which Jira events can trigger a script?
Ten kinds: work item created, updated, deleted and assigned; comments; worklogs; links; attachments; and project version changes. Each listener can be scoped to specific projects, work item types or (for updates) specific changed fields, picked from your Jira rather than typed by hand.
Can scripts run on a schedule?
Yes. Describe the schedule in plain words, such as every 15 minutes, every weekday at 09:00 or monthly on day 1, and the builder writes the cron for you, previewing the next three runs in your local time. Custom cron is available too. Schedules are checked every five minutes.
What language are scripts written in?
TypeScript or JavaScript. No Groovy and no proprietary language. Scripts get a small, typed Jira API (search, get, comment, update, transition, iterate) plus a generic escape hatch to call any Jira Cloud REST endpoint.
How do bulk operations work?
Write a script, give it a JQL, and Scriptline runs it once per matching work item in the background, so there is no browser timeout. You get live progress, per-item error samples and a cancel button, and dry-run is respected so you can rehearse first.
What is dry-run mode?
A toggle that suppresses every write to Jira (comments, updates, transitions) and logs what would have been sent instead. Reads run for real, so the log shows exactly what the script would have done. You can also simulate a work-item event from the console.
Does Scriptline support custom JQL functions?
Yes, two ways. Eleven built-in functions with the names ScriptRunner users already know, such as linkedIssuesOf, subtasksOf and parentsOf, work in any search with no script at all. And issue in hooked("my-hook") runs a saved script of your own, which returns a JQL fragment or a list of work item keys. Broken queries return no matches instead of breaking your filter, and failures are recorded in Run history.
Does Scriptline support scripted fields?
Yes. Scriptline adds a read-only custom field, Scripted field (Scriptline), whose value is computed per work item by your script. It shows on the work item view, is stored, and is searchable in JQL.
Does Scriptline support Behaviours (dynamic form rules)?
Not yet. Live form-field rules depend on Atlassian's UI-Modifications API, which is still maturing. Rather than ship a half-working version, Scriptline focuses on what it does well today. Behaviours-style rules are on the roadmap.
Where do my scripts and data live?
In Atlassian-hosted app storage tied to your Jira site, encrypted at rest by Atlassian: scripts, versions, run history and job records alike. The app makes zero external network calls: no vendor servers, no analytics, no third parties.
Who can create and run scripts?
Jira administrators only. The app lives in Jira's admin settings, and every action independently checks that the caller holds the Administer Jira permission.
How much does Scriptline cost?
Scriptline is sold through the Atlassian Marketplace. Free for up to 10 users; US$2.13 per user per month for 11-100 users, tapering down automatically for larger sites, with a 30-day free trial on every paid tier.
Built on Forge: your scripts stay in Atlassian
Runs on Atlassian
Everything runs on Atlassian's platform. Wattlebrooks Apps operates no servers for Scriptline.
Encrypted storage
Scripts, versions and run history are stored on your own Jira site, encrypted at rest by Atlassian and following your data residency.
Zero external egress
No analytics, no telemetry, no AI and no third-party services. Your code and its logs never leave Atlassian.