1 Spring: Progress Report 3
Matt C edited this page 2026-04-24 12:43:29 -04:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Overview:
In this cycle, we have built and tested a basic version of what will become our final web interface, and made some major changes to the backend, as well as a few minor changes and some related bugfixes to the endpoint agent.

Specific Tools Used and Implementation:
The management implementation, as discussed, is largely written by Anthropic’s Claude, and I asked it to pick a UI toolkit that allows for ease of development and stability/standardization. It chose to use Node.JS and Vite, and it is using a fairly minimal CSS stack with color accents taken from the royalty-free Capybara SVG that I found as a logo.

In the process of developing the management UI to this state, I realized that we would need to have the hosts receive the “inventory” task on a periodic basis in order to have updated overview information in the UI. So, I added a “cron” system to the backend API, which allows you to set and change how often the backend will assign the inventory task to all hosts, and exposed API routes so that the settings page in the UI makes this option configurable.

Proof of Work/Documentation:

This window shows all three components of the Herd system being run at the same time on the local device for testing purposes. image

This is the management UI homepage, showing you the inventoried hosts, their status, and number of tasks completed. We also have checkboxes, so that multiple hosts can be selected for a task, and you can click on the tickbox by “Agents” to dispatch to all hosts.
image

The settings tab, for now, allows you to configure how often the “inventory” task, which refreshes the memory and disk usage stats, is assigned, as well as allowing you to change the UI’s auto-reload value, which will let you see task results quicker if desired.
image

This view in the management UI shows a particular endpoint’s current status, using the automatically dispatched “inventory” task. Note: I am not sure at this point why Artix Linux does not respond for disk space in use, my personal PC was previously Arch Linux which did work fine….
image

This is how the UI looks after submitting a syscall task with the argument pwd
image

When the task is complete, you can click on its ID to open a dropdown with the stdout, if any is returned.
image