This project is still in pre-release status and does not yet have an installable NPM package. Star the repository for notifications and updates!
ConsoleForge is an Angular 19+ library with a single purpose: to make serving hypervisor-hosted virtual machine console access easy and satisfying. It currently supports access to VNC and VMWare virtual machines.
Since ConsoleForge is all about virtual consoles, you're going to need at least one to test drive it. If you don't have easy access to a Proxmox cluster or some other hypervisor host, you can check out this repo to grab yourself a Docker image that hosts a headless VNC server.
NOTE: If you have Python installed locally and are a VS Code user, you can use the included VS Code Task "Run X11VNC Desktop" to pull and start the container. Easy-peasy!
The ConsoleForge library is built on Angular 19. Consult its package.json for specific dependencies.
We don't currently support independent installation of specific hypervisor support, so when you install ConsoleForge, it includes peer dependencies for all console clients (currently, VNC and VMWare WMKS).
ConsoleForge uses noVNC for VNC client support. See this fantastic package's documentation for currently-supported browsers.
If your use case for ConsoleForge doesn't require the ability to connect to VMWare-hosted consoles you can ignore everything about this section. Sweet!
If it does, things are a little become slightly complex.
This SDK also has dependencies on jQuery and jQuery UI, which you'll also need to add to your Angular project. Depending on your use case, you can either do this through a CDN like code.jquery.com or via your favorite Node package manager. (Note that the HTML Console SDK's current documentation is not specific about which versions of jQuery/jQuery UI are required.) Assuming you're able to install and correctly configure the inclusion of these three dependencies, VMWare consoles in ConsoleForge should work as expected. Having trouble? Drop as an issue and let us know.
We use a lightly modified version of the VMWare HTML Console SDK to deliver VMWare console support. For convenience, we include that SDK in the library. To include it in your Angular app's scripts, you'll need to update the "styles"
and "scripts"
sections of your angular.json
file to include it. It'll look something like this:
//snip
"styles": ["dist/console-forge/vendor/vmware-wmks/css/main-ui.css"],
// snip
"scripts": ["node_modules/console-forge/vendor/vmware-wmks/js/wmks.min.js"]
// snip
We make the following adjustments due to our use case:
- We include only the
main-ui.css
stylesheet in the library - We don't include images referenced by this CSS for reasons of distribution complexity
ConsoleForge is proudly maintained by the Software Engineering Institute at Carnegie Mellon University.
ConsoleForge's default toolbar (which can be replaced by end developers) uses SVG Icons by thewolfkit under the Attribution CC BY license.
Special thanks to these projects which make ConsoleForge possible!