Developing Cytoscape means programming in Java. There are plugins that make it possible to instead use Python/Perl/R, but these plugins only allow a small amount of the operations that Cytoscape provides.
In order to assist new Developers in writing plugins, we have a variety of resources available. We provide a Concepts_Document that goes through the key classes in Cytoscape that are used by plugins. In addition, we have tried to make our CyAPI as complete as possible. Remember that you need not be limited to the CyAPI; you can use the CyAPI from any plugin in your plugin as well. Notably, Filters are only available as a plugin. If you need a jump start, there is a simple "Hello World" style Cytoscape_Plugin_Tutorial available.
Also, possibly the best source of information is the Cytoscape Community. By signing up for our discussion email list, you will have access to the worldwide community of Cytoscape developers. Thanks for developing for Cytoscape!
Access to the latest subversion code can be found here: SVN_Access
Internal development pages can be found here: Cytostaff_Development
Please be aware that some of these pages may be outdated. The most current and reliable source of information is the Cytoscape subversion source code.
CytoscapeData -- Class Overview
CytoscapeData_Usage -- Concepts and Example Code
Cytoscape_User_Manual: Development draft
Plugin Development and Implementation
Read through the Cytoscape_Plugin_Tutorial first
Plugin_Download_Site_Tutorialfor creating your own plugin download site for Cytoscape
Species_Specific_Context_Menus -- Details on right-click menus
AttributeBrowser -- How-To Guide for the new Attribute Browser
Cytoscape_Desktop_Menus -- Thoughts on creating menu items
RFC Index Page -- Request For Comments pages allow discussion about proposed new features and other issues
Note: This is a user editable wiki, although you must be logged in to edit pages. Please feel free to add content here and fix any errors you see.