Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View Scriptler on the plugin site for more information.

Scriptler allows you to store/edit groovy scripts and execute it on any of the slaves/nodes... no need to copy/paste groovy code anymore.

Besides administering your scripts, Scriptler also provides a way to share scripts between users via hosted script catalogs on the internet.
On GitHub at https://github.com/jenkinsci/jenkins-scripts/tree/master/scriptler you are not only able to find scripts and import it via scriptler in to your Jenkins instance, but can also share your own scripts. Just send a pull request to https://github.com/jenkinsci/jenkins-scripts/ and your scripts will be available for everyone else too.


This plugin takes the idea of the script console one step further and allows you to ease your daily work with the Jenkins script console.

  • save/edit groovy scripts
  • select the node to execute the script on
  • download scripts from a shared catalog
  • scripts repo is exposed via git, push/pull scripts into scriptler

Scriptler adds a new link to the manage Jenkins page:


From within the Scriptlers view, you can create ("Add a new Script") or import scripts via the "Remote script catalog".


Import a script from a public catalog:


The editor is syntax highlighted and allows you to define parameters which have to be passed to the script...

Once you have created/imported some scripts, you run it right from the same screen, just click on the little terminal icon on the scripts list.

You'll get forwarded to a page where you can select the node the script should run on and can can even modify the script just before execution. These modifications will not touch the saved version of the script and are only active for you and only as long till you change to another script.

After execution, the output of the command will appear in the below part of the screen.


Since version 2.2, Scriptler also provides a builder, with this support one is able to integrate its admins scripts in any job. The dropdown will provide all scripts which have been marked to be allowed with 'RunScript' permission.

To be able to configure a Scriptler Builder, the user has to be administrator or have 'RunScript' permission! All changes made by a user not having these permissions will get lost. The 'Value' also supports parameter expansion and expansion by the Token Macro Plugin .


You are able to configure whether you want to allow users which have only the "RunScripts" permission to execute scripts (every script has to be allowed separately). In addition you can also configure if these users should be able to change a script (which would be a security issue).


Scriptler exposes its scripts via git. Browse to JENKINS_URL/scriptler.git on your installation to get more info about how to access the repo via git.

This allows an administrator to push/pull scripts from its workstation/IDE into Scriptler. If such a script is pushed the first time into scriptler, then it will parse the optional header info like this:

optional script header
  "name" : "Clear build queue",
  "comment" : "If you accidently trigger a lot of unneeded builds, it is useful to be able to <b>cancel</b> them all",
  "parameters" : [],
  "core": "1.300",
  "authors" : [
    { name : "Niels Harremoes" }
println("hello world")

TokenMacro Support

Scriptler supports the Token Macro Plugin in two ways

  1. as a consumer, scriptler accepts tokens in the passed arguments (only if the script is executed as a buildstep)
  2. as a producer, scriptler exposes all scripts marked as non admin scripts via a macro:
    - the value returned by the script is the value returned by the TokenMacro, it is NOT enough to write something to the console/log
    - scriptler exposes the current 'build' to the script executed (since 1.7)
${SCRIPTLER, scriptId="superscript.groovy"}
def d = new Date()
return "TODAY is: ${d.toString()} - build number is: ${build.number}"


since version 1.7, one can also run a script using GET or POST to the URL /scriptler/run/<your-script-id> with the optional parameters node, script (alternative script text), contentType, and the parameters defined for your stored script.



Version History

3.0-alpha (Oct. 10, 2018)

This release is available via the experimental update center: https://jenkins.io/doc/developer/publishing/releasing-experimental-updates/

  • JENKINS-44242 Persistent cross-site scripting
  • JENKINS-44243Script management vulnerable to Cross-Site Request Forgery attacks
  • JENKINS-44245 Scriptler Plugin allows any Scriptler script to be executed as build step

2.9 (Oct. 28, 2015)

2.7 (Feb 22, 2014)

  • fixed JENKINS-19988 Changes to script parameters in Run Script window affect permanent definitions
  • integrated PR #17 Pass current build to SCRIPTLER token macro (thanks to Andreas Gudian)
  • integrated PR #16 Add simple size-limited cache to avoid parsing of unchanged scripts (thanks to Andreas Gudian)
  • integrated PR #15 JENKINS-14964 Allow running scripts using the REST API (thanks to Andreas Gudian)

2.6.1 (May 19, 2013)

  • Implement JENKINS-17708 Expose scriptler scripts via token macro token

2.6 (May 5, 2013)

  • fix JENKINS-16047 Scriptler plugin does not show Error/Exceptions anymore
  • fix JENKINS-17259 don't fail if parameters can't be expanded
  • integrate pull request #13 Expose build, launcher, listener to groovy scripts when run on the master node
  • fix some image/icon references

2.5.1 (Nov 20, 2012)

  • fix dependency to git-server plugin - this is a mandatory depedendency now

2.5 (Nov 7, 2012)

2.4.1 (Okt 11, 2012)

  • fix issue when Jenkins is running with a different root context - details of scripts could not be opened

2.4 (Aug 31, 2012)

2.3 (June 24, 2012)

  • Pull #8 / JENKINS-13979 allow build step to fail build by using boolean return values
  • allow to propagate job parameters into builder execution

2.2.1 (April 27, 2012)

2.2 (Mar. 9, 2012)

  • add a builder, to enable scheduling of scripts
  • add Japanese localization (thanks to ikikko!)
  • fix JENKINS-10839 support HTML output

2.1 (Feb. 21, 2012)

  • fix JENKINS-12748 - Scriptler remote catalog breaks when script name contains certain characters
  • fix JENKINS-12750 - Scriptler 2.0 breaks cc.xml-View for Anonymous User

2.0 (Jan. 29, 2012)

  • integrate pull #2: allow users with permission "RunScripts" to run scripts in scriptler (thanks to lvotypko)
  • integrate pull #5: add 'all' and 'all slaves' to the options where to run the script (thanks to eciramella)
  • intergate pull #1: ensure links open in new windows (thanks to bap2000)
  • enable script sharing with github: https://github.com/jenkinsci/jenkins-scripts (2. catalog)
  • enable passing parameters to scripts
  • make it configurable whether users with "RunScript" permission can change a script before execution

1.5 (April 16, 2011)

  • fix JENKINS-9302 - allow to disable remote script download functionality
  • fix JENKINS-9130 - Add a dynamic parser to colorize and indent groovy textareas

1.4 (Okt 11, 2010)

1.2 (Sep 15, 2010)


  • Inital (with suport for a static catalog)

Help and Support

type key summary

Data cannot be retrieved due to an unexpected error.

View these issues in Jira

For Help and support please use the Jenkins Users mailing list.

The comment list below is not monitored.


  1. Unknown User (norman)

    Is there a reason why only Groovy is supported? Could any script file be executed by using this framework?



  2. Unknown User (fmerrow)

    So I defined this class in the file JobDetails.groovy which I put out in CLASSPATH:

    public class JobDetails {
       public String get_string() { return "This is my very own string"; }

    I want to use that class from this groovy script:

    import JobDetails
    test = new JobDetails();

    Everything works fine from Groovy and Groovy Console, but when I put the exact same groovy script in either Script Console or Scritler I get the error shown below.

    If I run ONLY the getenv() line . . . CLASSPATH looks fine, but it seems as if it isn't being used . . .

    Anyone have any suggestions how to proceed?

    Clearly there is something special in the Jenkins Groovy environment I don't understand . . . perhaps CLASSPATH is disabled somehow?

    Is there some "correct place" to put this class so I could use it from Scriptler?


    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    Script1.groovy: 5: unexpected token: } @ line 5, column 28.
    1 error
    	at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:302)
    	at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:149)
    	at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:119)
    	at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:131)
    	at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:359)
    more stuff here
  3. Unknown User (josesa)

    Now that the local scripts are available from git served locally, Is it possible to configure additional git repositories so I can copy the scripts from another Jenkins instance?

    This would be useful to have some reference Jenkins instance where I would make/test my scripts before importing then in production servers.

  4. Unknown User (panticz)

    Copy your jar file to Java default CLASSPATH dir e.g. /usr/java/packages/lib/ext/ with one you can find with:

    println System.getProperty("java.ext.dirs")

    The class will by avaiable in Java Jobs and scriptlter / Groovy scripts, see:


  5. Unknown User (ioannis)

    Could we add an option for parameter default values in the optional metadata. It would be useful for importing scripts that need to be shared among multiple Jenkins instances, so you don't have to configure them individualy.

    What I'm thinking is that the parameters can be passed as map of name:value rather than a list.

    For example:"parameters" : value1,param2:value2

    thank you and best regards

  6. Unknown User (avrahamcohentomtom)

    Scriptler & Inheritance causing Jenkins stack overflow !

    My Jenkins was configured with a security enabled while choosing:

    Security Realm: LDAP

    Authorization: Project-based Matrix Authorization Strategy

    While creating a new Jenkins inheritance job and choosing an Active Choice Parameter (Choosing scriptler script that use hudsom model), Jenkins got into a stack overflow.

    The only way to fix it and still be secured is to change Authorization to Logged-in users can do anything.

  7. Unknown User (alec_m)

    I'm no longer seeing this in the Available Plugins list.  Is there any reason why it was taken off or not being displayed?

  8. Unknown User (monique)

  9. Unknown User (ioannis)

    It seems that after a year of silence on releasing a new version of this plugin (with the fixes that presumably addressed the security questions raised) we can consider this plugin abandoned.

    It still amazes me that the Jenkins community would let one of the most powerful features of Jenkins so neglected. RIP scriptler! 

    1. Unknown User (imod)

      Scriptler is not dead, but it took a while to fix all the issues - I will soon do a release addressing all the issues

      1. Unknown User (ioannis)

        That's great news! Looking forward to it!

      2. Unknown User (ioannis)

        I hope we can make Octoberfest into Scriptlerfest or at least a Christmas present!

          1. Unknown User (ioannis)

            Unknown User (dominik) thank you for the alpha release, Unfortunately it does not appears in the experimental update center https://updates.jenkins.io/experimental/update-center.json Could you perhaps directly make available the scriptler.hpi file to test?

            Update Nov 21, 2018: I can now see the 3.0 alpha version as an update to the installed 2.9 version. The plugin hpi can also be directly downloaded from here: 

  10. Unknown User (melvills)

    Hi Dominik,

    Do you have an ETA for the release including the security patches?

    1. Unknown User (imod)

      please test the alpha release including all the security patches, its released on the experimental update center: https://jenkins.io/doc/developer/publishing/releasing-experimental-updates/

      1. Unknown User (michalbe)

        Hi Dominik

        Is 3.0 version going to be released to the official Update Centre? How long will it take?

  11. Unknown User (presslej)

    I have the latest version of the plugin 3.0-alpha. It seems to work fine but I am unable to connect to the git repository. I can't even clone which anyone is supposed to have access to. Whatever I do I get 403 error. Can you explain more how to clone it. The only info provided on my jenkins instance is
    git clone http://jenkinsurl:8080/scriptler.git

    Are you supposed to be authenticating with a jenkins user or the user on the jenkins server that jenkins runs with(i.e. jenkins)?

    1. Unknown User (presslej)

      I managed to get ssh to work but http cloning would not work. I had to add my public key to my user in jenkins and login over ssh as that user

  12. Unknown User (back2normality)

    I am writing a groovy script to replicate an existing job (in order to automate it using job-dsl plugin).
    This requires me to add an ActiveChoiceParameter which will allow user to choose a scriptler script.
    It works all fine and the drop down menu reads all the scripts too from the jenkins server.

    However I am stuck on how to pick a script from the scriptler list and make that as the default script in my groovy code.
    Can you please help?

    My code - 

    job('new_job') {
         parameters {
              stringParam('Variable name', 'x')
              activeChoiceParam('Nodes') {


    1. Unknown User (imod)

      this has nothing to do with the scriptler plugin, you are talking about the job-dsl plugin: https://plugins.jenkins.io/job-dsl

      but please use the ML to ask questions like this