= Cytoscape 3 Interactive Shell = Cytoscape comes with an interactive shell for managing its runtime bundle configuration. You can add, remove, and update bundles using this interface. Cytoscape will look for bundles to install in your local Maven repository, if you have one. Failing that, it will consult the Nexus on `code.cytoscape.org`. == Working with Bundles == If you want to install a bundle, you can use the following command in the Cytoscape shell: {{{ Cytoscape 3.0> install mvn:groupId/artifactId/version }}} ...where "`/version`" is optional. For example: {{{ Cytoscape 3.0> install mvn:org.example/myplugin/1.0 Bundle ID: 200 }}} Once your bundle is installed, the shell will give you a bundle id (e.g. `200`). Now you need to activate it: {{{ Cytoscape 3.0> start 200 }}} If you make changes to `myplugin` and it happens to be a Maven project, all you need to do is `mvn install` it, then run the following in the Cytoscape shell: {{{ Cytoscape 3.0> update 200 }}} That will reload your plugin without having to restart Cytoscape. You can get a listing of all the loaded bundles using the following command: {{{ Cytoscape 3.0> list START LEVEL 100 , List Threshold: 99 ID State Blueprint Level Name [ 200] [Installed ] [ ] [ 100] org.example.myplugin (1.0) }}} By default, the `list` command will not show system-level bundles. If you would like to see these, set a start-level threshold like so: {{{ Cytoscape 3.0> list -t 0 START LEVEL 100 , List Threshold: 0 ID State Blueprint Level Name [ 0] [Active ] [ ] [ 0] System Bundle (3.0.9) [ 1] [Active ] [ ] [ 5] OPS4J Pax Url - wrap: (1.2.8) [ 2] [Active ] [ ] [ 5] OPS4J Pax Url - mvn: (1.2.8) ... }}} You can also put bundles in the `framework/deploy` directory. These bundles will be automatically installed and started. == Reverting to a Clean State == The bundle configuration at runtime persists between executions. If you shutdown Cytoscape and start it back up, it will restore your bundle configuration from when you shut down the platform. If you want to start clean, run: {{{ dev:restart }}}