Today we released PyRunner, an automation app that brings Python to Jira Cloud. Similar to ScriptRunner, admins can write a script in the console and run it, or attach it to something that runs it for them. That might be a listener that fires on a Jira event, a job on a recurring schedule, a custom field that calculates its own value, a behaviour that changes how fields act on a screen, or a rule on a workflow transition.
Leading Jira automation tools split logic across Groovy, TypeScript, and proprietary expressions. With PyRunner, just Python, made simpler with a built-in Jira helper object for reading and writing data.
The helper object is there so the ordinary things stay short. Fetching a work item by key, searching with the same JQL you already write in Jira, reading a field, updating one, leaving a comment, moving something through a transition: each is a single line, and there is no authentication to manage.
PyRunner is the first app to run Python inside Jira, and Forge Containers is what made it possible. Scripts execute in a sandbox on Atlassian's own infrastructure, and everything you create is stored there with it.
No Jira data goes anywhere else. That's one less third party in a security review, and your scripts inherit your site's data residency instead of sitting under a separate policy.
PyRunner's IDE completes your own field names and your own JQL, because it reads the catalogue from your site rather than shipping a fixed list, and it flags mistakes before you run rather than after. Six themes ship with it, ported from the VS Code themes of the same names, and the one you pick follows you everywhere else in the app.
Shown here in Light Modern — Dark Modern, Dracula, GitHub Light, Monokai and Tokyo Night are also included. You can see all six on the PyRunner page of our website.
Python's two best known data libraries, pandas and numpy, are built in and ready to go, so counting, grouping and averaging your work items takes a few lines rather than a page of setup.
Return a DataFrame or a list of records and it renders as a real table, sortable and searchable, with every work item key linking to the item in Jira. It's worth having because of what's in it: your script can group, pivot and calculate in ways Jira itself can't.
From there the result goes wherever you need it. CSV and Excel download every row your script found, not just the ones on screen. Copy pastes into a Jira comment as a formatted table, and into Excel or Sheets as proper cells. Copy as JQL turns the rows in front of you into a Jira search, so a script that finds problem work items becomes a bulk edit in two clicks.
Scripts don't have to be run by hand. Each of these takes one and runs it for you, on its own schedule or trigger.
| Listeners Run a script when something happens in Jira, like a work item being created, moved or commented on. |
Scheduled jobs Run one on a recurring schedule, such as a daily report or a weekly cleanup. |
| Scripted fields Calculate a custom field's value for each work item. Values are stored, so Jira searches and boards can use them. |
Behaviours Change how fields act on the create, edit and transition screens: hide one, require another, set a default. |
| Workflow rules Hide a transition until a work item is ready, block it with a message, or run a script once it has happened. |
Script Library The scripts you keep, in folders. Any of them can import another, so shared helpers live in one place. |
Each of these ships with working examples you can drop straight into the editor, which is usually quicker than starting from scratch. The documentation covers each feature in full, with screenshots and scripts you can copy.
PyRunner comes with a 30 day free trial, and you can install it from its Marketplace listing. There's more about the app on our website, and the documentation is the fastest way to see what the scripts actually look like.
If you have questions or feedback, I'd genuinely like to hear about it. Reach me at jack@pallas-apps.com.
Jack Dillon - Pallas Apps
6 comments