Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@foxglove/fox

Package Overview
Dependencies
Maintainers
2
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@foxglove/fox

Foxglove Studio Extension Manager

  • 0.4.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
Maintainers
2
Weekly downloads
 
Created
Source

fox

The Foxglove Studio Extension Manager

npm version

Introduction

Foxglove Studio allows developers to create extensions, or custom code that is loaded and executed inside the Foxglove Studio application. This can be used to add custom panels, and in the future it will support custom file formats or data sources and more. Extensions are authored in TypeScript using the @foxglove/studio SDK.

Creating Your First Extension

Make sure you have Node.js 14 or newer installed and the yarn package manager (npm install -g yarn). In a terminal, go into the directory where you keep source code (ex: cd ~/Code) and run the following command:

npx @foxglove/fox@latest create helloworld

Feel free to choose an extension name other than helloworld. Otherwise, this will create a folder named helloworld containing your extension. Run a one-time initialization step:

cd helloworld
yarn install

This installs all of the dependencies needed to edit and build the extension. You can use any editor to work on this project, although VSCode is the best supported IDE for authoring Foxglove Studio extensions. Look at the files src/index.ts and src/ExamplePanel.tsx for a simple example of creating a React element and registering it as a custom panel. To build and install this extension into your local Foxglove Studio extensions folder, run:

yarn local-install

This should create a folder under your home directory such as ~/.foxglove-studio/extensions/unknown.helloworld-0.0.0 containing your compiled extension. Start Foxglove Studio. If everything succeeded, you should be able to add a new panel in Foxglove Studio named "ExamplePanel". Each time you make a change to your extension, you will need to run yarn local-install again to build it and copy the build output to the Foxglove Studio extensions folder in your home directory. You can either reload Foxglove Studio or close and reopen it to load your latest extension code.

If you just want to confirm your code compiles without installing it locally, run yarn build.

You can customize the build and install process by editing your ./config.ts file. The config file should look something like this:

module.exports = {
  webpack: (config) => {
    config.module.rules.push({
      test: /\.css$/i,
      use: ["style-loader", "css-loader"],
    });
    return config;
  },
};

Publishing Your Extension

All of the metadata for your extension is contained in the package.json file. Before publishing, make sure you have set name, publisher, version, and description. When you are ready to distribute your extension, run:

yarn package

This will produce a .foxe file such as helloworld-0.0.0.foxe. This is essentially a ZIP archive containing your extension manifest and compiled code that can be opened by the Foxglove Studio application, which will unpack it and install it to the ~/.foxglove-studio/extensions folder. Stay tuned for future instructions on how to publish Foxglove Studio extensions to a registry so other users can easily search for and install your extension.

Example Panels

You can find examples of different kinds of extension panels in the ./examples directory.

Stay in touch

Join our Slack channel to ask questions, share feedback, and stay up to date on what our team is working on.

Keywords

FAQs

Package last updated on 06 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc