# Interface: com.pnfsoftware.jeb.client.api.IScript

Interface for client's scripts. Similar to JEB1's IScript. 

  Example: file `SampleScript.py`  

```

 from com.pnfsoftware.jeb.client.api import IScript
 
 class SampleScript(IScript):
   def run(self, ctx):
     print('Hello, JEB')
 
```
 

 Scripts should be designed to achieve relatively short and to\-the\-point operations, within a client context. Scripts have access to parts of the the client context, exposed via [IClientContext](IClientContext) and sub\-interfaces. 

 Note: Unlike plugins, scripts should be started on the client's main thread. In the case of the official RCP desktop client, they are executed on the main UI thread. Care should be taken to not block the main thread for extended periods of time. Long operations should take place on separately spawned [worker threads](IGraphicalClientContext#executeAsync(String, Runnable)).

## Method: run
- parameter: `context`, type: `com.pnfsoftware.jeb.client.api.IClientContext`

Description: Execute the script entry\-point method.
parameter: context: a client context, currently either [IClientContext](IClientContext) or            [IGraphicalClientContext](IGraphicalClientContext) for UI clients

