What Hefty Can Do
Instruments are how Hefty interacts with your computer and the world around it. When Hefty decides it needs to run a command, open a website, or manage a file, it reaches for an instrument. You don't need to tell Hefty which one to use - it picks the right one based on what you asked for.
Why instruments and not tools? A tool acts on something - it changes it, moves it, breaks it apart. An instrument is more nuanced: it measures, translates, and channels intent with precision. A wrench turns a bolt; a caliper reads a dimension. Hefty's capabilities work the same way - they don't just execute, they observe, interpret, and adapt. That's the difference between brute-force automation and something that actually understands what it's doing.
Instrument Origins
Instruments come from four different sources, each with distinct characteristics in how they're provided, managed, and made available to Hefty.
Every instrument — regardless of origin — integrates identically into Hefty's cognition pipeline and follows the same security model.
Built-in Capabilities
How Hefty Picks the Right Instrument
You don't need to know instrument names. When you send a message, Hefty's cognition pipeline figures out which instruments are needed, then the reasoning phase decides exactly what to call and with what parameters. If something fails, Hefty sees the error and tries a different approach.
Over time, Hefty learns from how it uses its instruments - which approaches work well for specific situations and which to avoid - so it gets better the more you use it.
Safety
Every instrument has a risk level so Hefty understands the impact of what it's about to do:
- Read-only — just looking, no changes made to anything
- Local write — modifies files or data on your machine
- System execute — runs commands in your terminal
- Network — makes external network requests
- Critical — high-impact, destructive, or irreversible operations
Hefty factors risk into its planning and shows the risk level alongside each action in the UI, so you always know what's happening.
Extending Hefty
Hefty ships with a full set of built-in instruments, but you can add more:
All extensions persist across restarts and can be managed from the Hefty UI.
The Instruments Dialog
The Instruments Dialog is the central management interface for all instruments. Access it via the User Menu → Instruments option. This feature is available to admin users only.
The dialog is organized into four tabs:
- All Instruments — every available instrument grouped by origin type
- Dynamic — user-created custom instruments with a creation button
- Browse — plugin marketplace catalog for discovering and installing plugins
- Installed — currently installed plugins with management controls
All Instruments
Instruments are grouped by their origin type in collapsible sections — Internal, Plugin, Dynamic, and Platform Service. Each instrument in the list displays:
- Display name (humanized from the internal identifier)
- Category badge
- Risk level badge (color-coded as described in the Safety section)
- Origin label (shown for plugin and dynamic instruments)
- External service indicator (when a plugin requires an external service)
Clicking any instrument opens a detail panel showing the instrument's full description, capabilities and keywords, origin information, risk level details, and — for Custom Prompt instruments — the prompt template, model hint, and max tokens setting.
Creating Dynamic Instruments
Dynamic instruments are user-created tools you define through the Dynamic tab in the Instruments Dialog. Click "New Dynamic Instrument" to start. Choose from four types, each with its own configuration. Once created, dynamic instruments are available to Hefty immediately and persist across restarts.
Custom Prompt
An LLM-powered prompt template that becomes a reusable instrument. Define a template with parameter placeholders and Hefty fills them in at invocation time.
Template{{param}} syntax for parameters that Hefty fills in at runtime. Example: "Summarize the following article: {{article_text}}"Max TokensModel HintParse as JSONAPI Endpoint
Wrap any HTTP endpoint as an instrument. Hefty calls the endpoint with the parameters you define and passes the response back to the cognition pipeline.
MethodURLHeadersBodyResponse MappingTimeoutMCP Client
Connect to an MCP (Model Context Protocol) server. The server's capabilities become available as instruments instantly.
TransportEndpoint URLCommandArgsRSS Feed
Monitor an RSS or Atom feed. Hefty periodically fetches new items and makes them available as instrument output.
Feed URLMax ItemsRefresh IntervalDynamic instruments can be deleted from the detail panel when no longer needed.
Plugin Marketplace
The Browse tab in the Instruments Dialog is Hefty's plugin marketplace — a catalog of third-party instrument packages you can install to extend Hefty's capabilities. Plugins add new instruments without restarting the application.
The marketplace provides a search bar with debounced search. Type keywords to filter the catalog, and results update as you type without needing to press Enter or submit a query.
Each plugin card in the catalog displays the following information:
- Name — the plugin's display name
- Description — a short summary of what the plugin does
- Author — who created the plugin
- Category — the plugin's assigned category
- Instruments — the list of instruments the plugin provides
- Install count — how many times the plugin has been installed
To install a plugin, click the Install button on its card. The button enters a loading state while the plugin is being downloaded. Once installation completes, the plugin is marked with an Installed badge and its instruments become available immediately in the All Instruments tab. Download sizes may be shown before installing.
Plugins already installed on your instance show an Installed badge on their card, so you can tell at a glance what you already have.
Managing Installed Plugins
The Installed tab in the Instruments Dialog shows all plugins currently installed on your Hefty instance. From here you can manage plugin lifecycle — enable or disable individual plugins, check versions, apply updates, and uninstall.
Each installed plugin entry displays the following details:
- Enable / Disable — toggle a plugin on or off. Disabled plugins remain installed but their instruments are unavailable until re-enabled.
- Version info — the currently installed version number.
- Instrument count — how many instruments this plugin provides.
- Update badge — a visual indicator when a newer version is available in the marketplace. Click to update.
- Uninstall — remove the plugin and all its instruments entirely.
When an update badge appears, clicking it downloads and applies the newest version. The plugin's instruments are temporarily unavailable during the update and return once complete.
The Installed tab also includes a Browse More link that navigates to the Browse tab for discovering additional plugins.
Plugin Configuration
Some plugins define configuration options using a JSON Schema. When a plugin has a config schema, a configuration form becomes available. This form is accessed from the Installed tab (via a configure action on the plugin) or from an instrument's detail panel.
The form is automatically generated from the plugin's JSON Schema definition — fields, types, labels, and validation rules are all driven by the schema with no manual form definition required. The schema defines what settings are available, their types (string, number, boolean, etc.), default values, and any constraints.
Configuration changes are saved immediately and take effect without restarting Hefty.
Instrument Timeouts
Every instrument has an execution timeout — the maximum time Hefty will wait for an instrument to complete before canceling it. Administrators can view and override these timeouts through the instrument detail panel.
Three timeout values are shown:
- Default timeout — the hardcoded default value defined by the instrument's implementation.
- Effective timeout — the actual timeout in use after any overrides are applied. This is what Hefty enforces.
- Override — an editable field where admin users can set a custom timeout value, overriding the default for this specific instrument.
To change a timeout, open the instrument's detail panel, locate the timeout table, and edit the override value. Clear the override to revert to the default.