1.0.1 • Public • Published


A Cytoscape.js extension to provide copy-paste utilities, distributed under GNU AFFERO GENERAL PUBLIC LICENSE


Click here for demo


    var cy = cytoscape({...});

    var cb = cy.clipboard(options);

cy.clipboard(options) Initializes extension & sets options.

cb.copy(eles [, id]) Copies eles and returns id of operation. If id is not specified, it will be assigned automatically.

cb.paste([id]) Pastes the copied elements which has id. If id is not specified, it will have the last operation's id.

Default Options

            var options = {

                // The following 4 options allow the user to provide custom behavior to
                // the extension. They can be used to maintain consistency of some data
                // when elements are duplicated.
                // These 4 options are set to null by default. The function prototypes
                // are provided below for explanation purpose only.

                // Function executed on the collection of elements being copied, before
                // they are serialized in the clipboard
                beforeCopy: function(eles) {},
                // Function executed on the clipboard just after the elements are copied.
                // clipboard is of the form: {nodes: json, edges: json}
                afterCopy: function(clipboard) {},
                // Function executed on the clipboard right before elements are pasted,
                // when they are still in the clipboard.
                beforePaste: function(clipboard) {},
                // Function executed on the collection of pasted elements, after they
                // are pasted.
                afterPaste: function(eles) {}

Default Undo Redo Actions

ur.do("paste"[, { id: idOfOperation }]) Pastes operation. id is optional as is in cb.paste()


  • Cytoscape.js ^2.6.12 || ^3.0.0
  • jQuery ^1.3.2 || ^2.0.0 || ^3.0.0
  • cytoscape-undo-redo ^1.0.8 (optional)

Usage instructions

Download the library:

  • via npm: npm install cytoscape-clipboard,
  • via bower: bower install cytoscape-clipboard, or
  • via direct download in the repository (probably from a tag).

require() the library as appropriate for your project:


var cytoscape = require('cytoscape');
var jquery = require('jquery');
var clipboard = require('cytoscape-clipboard');

clipboard( cytoscape, jquery ); // register extension


require(['cytoscape', 'cytoscape-clipboard'], function( cytoscape, clipboard ){
  clipboard( cytoscape ); // register extension

Plain HTML/JS has the extension registered for you automatically, because no require() is needed.

Publishing instructions

This project is set up to automatically be published to npm and bower. To publish:

  1. Set the version number environment variable: export VERSION=1.2.3
  2. Publish: gulp publish
  3. If publishing to bower for the first time, you'll need to run bower register cytoscape-clipboard https://github.com/iVis-at-Bilkent/clipboard.git

Join the Layer5 community!

Our projects are community-built and welcome collaboration. 👍 Be sure to see the Layer5 Community Welcome Guide for a tour of resources available to you and jump into our Slack!


Find your MeshMate

MeshMates are experienced Layer5 community members, who will help you learn your way around, discover live projects and expand your community network. Become a Meshtee today!

Find out more on the Layer5 community.

Shows an illustrated light mode meshery logo in light color mode and a dark mode meshery logo dark color mode.

Layer5 Community

✔️ Join any or all of the weekly meetings on community calendar.
✔️ Watch community meeting recordings.
✔️ Access the Community Drive by completing a community Member Form.
✔️ Discuss in the Community Forum.
✔️Explore more in the Community Handbook.

Not sure where to start? Grab an open issue with the help-wanted label.



Package Sidebar


npm i @layer5/cytoscape-clipboard

Weekly Downloads





AGPL-3.0 license

Unpacked Size

218 kB

Total Files


Last publish


  • aabidsofi19
  • apullman
  • l5io
  • leecalcote