A common interface for extensible JupyterLab application menus.

Plugins are still free to define their own menus in any way they like. However, JupyterLab defines a few top-level application menus that may be extended by plugins as well, such as "Edit" and "View"

interface IRankedMenu {
    isDisposed: boolean;
    items: readonly IItem[];
    rank?: number;
    addGroup(items, rank?): IDisposable;
    addItem(options): IDisposable;
    dispose(): void;


Implemented by


isDisposed: boolean

Test whether the object has been disposed.


This property is always safe to access.

items: readonly IItem[]

A read-only array of the menu items in the menu.

rank?: number

Menu rank


  • Add a group of menu items specific to a particular plugin.

    The rank can be set for all items in the group using the function argument or per item.


    • items: IItemOptions[]

      the list of menu items to add.

    • Optional rank: number

      the default rank in the menu in which to insert the group.

    Returns IDisposable

    Disposable of the group

  • Dispose of the resources held by the object.


    If the object's dispose method is called more than once, all calls made after the first will be a no-op.

    Undefined Behavior

    It is undefined behavior to use any functionality of the object after it has been disposed unless otherwise explicitly noted.

    Returns void